==> Building on centiskorch ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list ./ .SRCINFO 1,836 100% 0.00kB/s 0:00:00 1,836 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=6/8) .nvchecker.toml 183 100% 178.71kB/s 0:00:00 183 100% 178.71kB/s 0:00:00 (xfr#2, to-chk=5/8) PKGBUILD 2,100 38% 2.00MB/s 0:00:00 5,466 100% 5.21MB/s 0:00:00 (xfr#3, to-chk=4/8) curl-8.15.0-1.log 457 100% 446.29kB/s 0:00:00 457 100% 446.29kB/s 0:00:00 (xfr#4, to-chk=3/8) keys/ keys/pgp/ keys/pgp/27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2.asc 700 41% 683.59kB/s 0:00:00 1,680 100% 1.60MB/s 0:00:00 (xfr#5, to-chk=0/8) sent 2,218 bytes received 216 bytes 4,868.00 bytes/sec total size is 9,363 speedup is 3.85 ==> Ensuring required PGP keys are present...  -> Checking for 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2... ==> Patching arch to riscv64... ==> Running pkgctl build --arch riscv64 --repo extra on remote host... ==> WARNING: unsupported architecture: riscv64 ==> Building curl  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building curl for [extra] (riscv64) ]2;🔵 Container arch-nspawn-397924 on centiskorch.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Locking clean chroot [/var/lib/archbuild/extra-riscv64/root]...done ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: curl 8.15.0-1 (Fri Jul 18 05:23:15 2025) ==> Retrieving sources...  -> Updating curl git repo... From https://github.com/curl/curl - [deleted] (none) -> bagder/cookies-capped-expire - [deleted] (none) -> bagder/dump-header-stderr - [deleted] (none) -> bagder/exit-on-non-DISABLED - [deleted] (none) -> bagder/ftp-tests-quit - [deleted] (none) -> bagder/help-option - [deleted] (none) -> bagder/helpscan-longer-lines - [deleted] (none) -> bagder/maxline - [deleted] (none) -> dfandrich/parallelci - [deleted] (none) -> refs/pull/12220/merge - [deleted] (none) -> refs/pull/12406/merge - [deleted] (none) -> refs/pull/12980/merge - [deleted] (none) -> refs/pull/13098/merge - [deleted] (none) -> refs/pull/13522/merge - [deleted] (none) -> refs/pull/13543/merge - [deleted] (none) -> refs/pull/13589/merge - [deleted] (none) -> refs/pull/13977/merge - [deleted] (none) -> refs/pull/14135/merge - [deleted] (none) -> refs/pull/14189/merge - [deleted] (none) -> refs/pull/14202/merge - [deleted] (none) -> refs/pull/14214/merge - [deleted] (none) -> refs/pull/14294/merge - [deleted] (none) -> refs/pull/14311/merge - [deleted] (none) -> refs/pull/14313/merge - [deleted] (none) -> refs/pull/14319/merge - [deleted] (none) -> refs/pull/14332/merge - [deleted] (none) -> refs/pull/14383/merge - [deleted] (none) -> refs/pull/14388/merge - [deleted] (none) -> refs/pull/14397/merge - [deleted] (none) -> refs/pull/14400/merge - [deleted] (none) -> refs/pull/14404/merge - [deleted] (none) -> refs/pull/14406/merge - [deleted] (none) -> refs/pull/14407/merge - [deleted] (none) -> refs/pull/14408/merge - [deleted] (none) -> refs/pull/14411/merge - [deleted] (none) -> refs/pull/14413/merge - [deleted] (none) -> refs/pull/14416/merge - [deleted] (none) -> refs/pull/14417/merge - [deleted] (none) -> refs/pull/14419/merge - [deleted] (none) -> refs/pull/14420/merge - [deleted] (none) -> refs/pull/14421/merge - [deleted] (none) -> refs/pull/14422/merge - [deleted] (none) -> refs/pull/14423/merge - [deleted] (none) -> Curl_easy_1-1-7 - [deleted] (none) -> Curl_easy_1-1-8 remote: Enumerating objects: 84243, done. remote: Counting objects: 0% (1/30847) remote: Counting objects: 1% (309/30847) remote: Counting objects: 2% (617/30847) remote: Counting objects: 3% (926/30847) remote: Counting objects: 4% (1234/30847) remote: Counting objects: 5% (1543/30847) remote: Counting objects: 6% (1851/30847) remote: Counting objects: 7% (2160/30847) remote: Counting objects: 8% (2468/30847) remote: Counting objects: 9% (2777/30847) remote: Counting objects: 10% (3085/30847) remote: Counting objects: 11% (3394/30847) remote: Counting objects: 12% (3702/30847) remote: Counting objects: 13% (4011/30847) remote: Counting objects: 14% (4319/30847) remote: Counting objects: 15% (4628/30847) remote: Counting objects: 16% (4936/30847) remote: Counting objects: 17% (5244/30847) remote: Counting objects: 18% (5553/30847) remote: Counting objects: 19% (5861/30847) remote: Counting objects: 20% (6170/30847) remote: Counting objects: 21% (6478/30847) remote: Counting objects: 22% (6787/30847) remote: Counting objects: 23% (7095/30847) remote: Counting objects: 24% (7404/30847) remote: Counting objects: 25% (7712/30847) remote: Counting objects: 26% (8021/30847) remote: Counting objects: 27% (8329/30847) remote: Counting objects: 28% (8638/30847) remote: Counting objects: 29% (8946/30847) remote: Counting objects: 30% (9255/30847) remote: Counting objects: 31% (9563/30847) remote: Counting objects: 32% (9872/30847) remote: Counting objects: 33% (10180/30847) remote: Counting objects: 34% (10488/30847) remote: Counting objects: 35% (10797/30847) remote: Counting objects: 36% (11105/30847) remote: Counting objects: 37% (11414/30847) remote: Counting objects: 38% (11722/30847) remote: Counting objects: 39% (12031/30847) remote: Counting objects: 40% (12339/30847) remote: Counting objects: 41% (12648/30847) remote: Counting objects: 42% (12956/30847) remote: Counting objects: 43% (13265/30847) remote: Counting objects: 44% (13573/30847) remote: Counting objects: 45% (13882/30847) remote: Counting objects: 46% (14190/30847) remote: Counting objects: 47% (14499/30847) remote: Counting objects: 48% (14807/30847) remote: Counting objects: 49% (15116/30847) remote: Counting objects: 50% (15424/30847) remote: Counting objects: 51% (15732/30847) remote: Counting objects: 52% (16041/30847) remote: Counting objects: 53% (16349/30847) remote: Counting objects: 54% (16658/30847) remote: Counting objects: 55% (16966/30847) remote: Counting objects: 56% (17275/30847) remote: Counting objects: 57% (17583/30847) remote: Counting objects: 58% (17892/30847) remote: Counting objects: 59% (18200/30847) remote: Counting objects: 60% (18509/30847) remote: Counting objects: 61% (18817/30847) remote: Counting objects: 62% (19126/30847) remote: Counting objects: 63% (19434/30847) remote: Counting objects: 64% (19743/30847) remote: Counting objects: 65% (20051/30847) remote: Counting objects: 66% (20360/30847) remote: Counting objects: 67% (20668/30847) remote: Counting objects: 68% (20976/30847) remote: Counting objects: 69% (21285/30847) remote: Counting objects: 70% (21593/30847) remote: Counting objects: 71% (21902/30847) remote: Counting objects: 72% (22210/30847) remote: Counting objects: 73% (22519/30847) remote: Counting objects: 74% (22827/30847) remote: Counting objects: 75% (23136/30847) remote: Counting objects: 76% (23444/30847) remote: Counting objects: 77% (23753/30847) remote: Counting objects: 78% (24061/30847) remote: Counting objects: 79% (24370/30847) remote: Counting objects: 80% (24678/30847) remote: Counting objects: 81% (24987/30847) remote: Counting objects: 82% (25295/30847) remote: Counting objects: 83% (25604/30847) remote: Counting objects: 84% (25912/30847) remote: Counting objects: 85% (26220/30847) remote: Counting objects: 86% (26529/30847) remote: Counting objects: 87% (26837/30847) remote: Counting objects: 88% (27146/30847) remote: Counting objects: 89% (27454/30847) remote: Counting objects: 90% (27763/30847) remote: Counting objects: 91% (28071/30847) remote: Counting objects: 92% (28380/30847) remote: Counting objects: 93% (28688/30847) remote: Counting objects: 94% (28997/30847) remote: Counting objects: 95% (29305/30847) remote: Counting objects: 96% (29614/30847) remote: Counting objects: 97% (29922/30847) remote: Counting objects: 98% (30231/30847) remote: Counting objects: 99% (30539/30847) remote: Counting objects: 100% (30847/30847) remote: Counting objects: 100% (30847/30847), done. remote: Compressing objects: 0% (1/582) remote: Compressing objects: 1% (6/582) remote: Compressing objects: 2% (12/582) remote: Compressing objects: 3% (18/582) remote: Compressing objects: 4% (24/582) remote: Compressing objects: 5% (30/582) remote: Compressing objects: 6% (35/582) remote: Compressing objects: 7% (41/582) remote: Compressing objects: 8% (47/582) remote: Compressing objects: 9% (53/582) remote: Compressing objects: 10% (59/582) remote: Compressing objects: 11% (65/582) remote: Compressing objects: 12% (70/582) remote: Compressing objects: 13% (76/582) remote: Compressing objects: 14% (82/582) remote: Compressing objects: 15% (88/582) remote: Compressing objects: 16% (94/582) remote: Compressing objects: 17% (99/582) remote: Compressing objects: 18% (105/582) remote: Compressing objects: 19% (111/582) remote: Compressing objects: 20% (117/582) remote: Compressing objects: 21% (123/582) remote: Compressing objects: 22% (129/582) remote: Compressing objects: 23% (134/582) remote: Compressing objects: 24% (140/582) remote: Compressing objects: 25% (146/582) remote: Compressing objects: 26% (152/582) remote: Compressing objects: 27% (158/582) remote: Compressing objects: 28% (163/582) remote: Compressing objects: 29% (169/582) remote: Compressing objects: 30% (175/582) remote: Compressing objects: 31% (181/582) remote: Compressing objects: 32% (187/582) remote: Compressing objects: 33% (193/582) remote: Compressing objects: 34% (198/582) remote: Compressing objects: 35% (204/582) remote: Compressing objects: 36% (210/582) remote: Compressing objects: 37% (216/582) remote: Compressing objects: 38% (222/582) remote: Compressing objects: 39% (227/582) remote: Compressing objects: 40% (233/582) remote: Compressing objects: 41% (239/582) remote: Compressing objects: 42% (245/582) remote: Compressing objects: 43% (251/582) remote: Compressing objects: 44% (257/582) remote: Compressing objects: 45% (262/582) remote: Compressing objects: 46% (268/582) remote: Compressing objects: 47% (274/582) remote: Compressing objects: 48% (280/582) remote: Compressing objects: 49% (286/582) remote: Compressing objects: 50% (291/582) remote: Compressing objects: 51% (297/582) remote: Compressing objects: 52% (303/582) remote: Compressing objects: 53% (309/582) remote: Compressing objects: 54% (315/582) remote: Compressing objects: 55% (321/582) remote: Compressing objects: 56% (326/582) remote: Compressing objects: 57% (332/582) remote: Compressing objects: 58% (338/582) remote: Compressing objects: 59% (344/582) remote: Compressing objects: 60% (350/582) remote: Compressing objects: 61% (356/582) remote: Compressing objects: 62% (361/582) remote: Compressing objects: 63% (367/582) remote: Compressing objects: 64% (373/582) remote: Compressing objects: 65% (379/582) remote: Compressing objects: 66% (385/582) remote: Compressing objects: 67% (390/582) remote: Compressing objects: 68% (396/582) remote: Compressing objects: 69% (402/582) remote: Compressing objects: 70% (408/582) remote: Compressing objects: 71% (414/582) remote: Compressing objects: 72% (420/582) remote: Compressing objects: 73% (425/582) remote: Compressing objects: 74% (431/582) remote: Compressing objects: 75% (437/582) remote: Compressing objects: 76% (443/582) remote: Compressing objects: 77% (449/582) remote: Compressing objects: 78% (454/582) remote: Compressing objects: 79% (460/582) remote: Compressing objects: 80% (466/582) remote: Compressing objects: 81% (472/582) remote: Compressing objects: 82% (478/582) remote: Compressing objects: 83% (484/582) remote: Compressing objects: 84% (489/582) remote: Compressing objects: 85% (495/582) remote: Compressing objects: 86% (501/582) remote: Compressing objects: 87% (507/582) remote: Compressing objects: 88% (513/582) remote: Compressing objects: 89% (518/582) remote: Compressing objects: 90% (524/582) remote: Compressing objects: 91% (530/582) remote: Compressing objects: 92% (536/582) remote: Compressing objects: 93% (542/582) remote: Compressing objects: 94% (548/582) remote: Compressing objects: 95% (553/582) remote: Compressing objects: 96% (559/582) remote: Compressing objects: 97% (565/582) remote: Compressing objects: 98% (571/582) remote: Compressing objects: 99% (577/582) remote: Compressing objects: 100% (582/582) remote: Compressing objects: 100% (582/582), done. Receiving objects: 0% (1/84243) Receiving objects: 1% (843/84243), 268.00 KiB | 496.00 KiB/s Receiving objects: 1% (914/84243), 588.00 KiB | 547.00 KiB/s Receiving objects: 2% (1685/84243), 588.00 KiB | 547.00 KiB/s Receiving objects: 3% (2528/84243), 1.07 MiB | 688.00 KiB/s Receiving objects: 3% (2532/84243), 1.07 MiB | 688.00 KiB/s Receiving objects: 4% (3370/84243), 2.39 MiB | 931.00 KiB/s Receiving objects: 4% (3555/84243), 2.39 MiB | 931.00 KiB/s Receiving objects: 5% (4213/84243), 3.20 MiB | 1.02 MiB/s Receiving objects: 6% (5055/84243), 3.20 MiB | 1.02 MiB/s Receiving objects: 7% (5898/84243), 3.20 MiB | 1.02 MiB/s Receiving objects: 8% (6740/84243), 4.22 MiB | 1.15 MiB/s Receiving objects: 8% (7373/84243), 4.22 MiB | 1.15 MiB/s Receiving objects: 9% (7582/84243), 4.22 MiB | 1.15 MiB/s Receiving objects: 10% (8425/84243), 4.22 MiB | 1.15 MiB/s Receiving objects: 11% (9267/84243), 5.34 MiB | 1.28 MiB/s Receiving objects: 12% (10110/84243), 5.34 MiB | 1.28 MiB/s Receiving objects: 13% (10952/84243), 5.34 MiB | 1.28 MiB/s Receiving objects: 14% (11795/84243), 5.34 MiB | 1.28 MiB/s Receiving objects: 15% (12637/84243), 5.34 MiB | 1.28 MiB/s Receiving objects: 16% (13479/84243), 5.34 MiB | 1.28 MiB/s Receiving objects: 17% (14322/84243), 6.26 MiB | 1.33 MiB/s Receiving objects: 18% (15164/84243), 6.26 MiB | 1.33 MiB/s Receiving objects: 18% (15794/84243), 6.26 MiB | 1.33 MiB/s Receiving objects: 19% (16007/84243), 6.26 MiB | 1.33 MiB/s Receiving objects: 20% (16849/84243), 6.26 MiB | 1.33 MiB/s Receiving objects: 21% (17692/84243), 7.72 MiB | 1.59 MiB/s Receiving objects: 22% (18534/84243), 7.72 MiB | 1.59 MiB/s Receiving objects: 23% (19376/84243), 7.72 MiB | 1.59 MiB/s Receiving objects: 24% (20219/84243), 7.72 MiB | 1.59 MiB/s Receiving objects: 25% (21061/84243), 7.72 MiB | 1.59 MiB/s Receiving objects: 26% (21904/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 27% (22746/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 28% (23589/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 29% (24431/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 29% (24892/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 30% (25273/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 31% (26116/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 32% (26958/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 33% (27801/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 34% (28643/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 35% (29486/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 36% (30328/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 37% (31170/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 38% (32013/84243), 9.49 MiB | 1.92 MiB/s Receiving objects: 39% (32855/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 40% (33698/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 41% (34540/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 42% (35383/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 43% (36225/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 44% (37067/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 45% (37910/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 46% (38752/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 47% (39595/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 48% (40437/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 49% (41280/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 50% (42122/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 51% (42964/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 52% (43807/84243), 11.43 MiB | 2.24 MiB/s Receiving objects: 53% (44649/84243), 13.65 MiB | 2.58 MiB/s Receiving objects: 54% (45492/84243), 13.65 MiB | 2.58 MiB/s Receiving objects: 55% (46334/84243), 13.65 MiB | 2.58 MiB/s Receiving objects: 56% (47177/84243), 13.65 MiB | 2.58 MiB/s Receiving objects: 57% (48019/84243), 13.65 MiB | 2.58 MiB/s Receiving objects: 58% (48861/84243), 13.65 MiB | 2.58 MiB/s Receiving objects: 59% (49704/84243), 13.65 MiB | 2.58 MiB/s Receiving objects: 59% (50074/84243), 16.59 MiB | 3.08 MiB/s Receiving objects: 59% (50082/84243), 19.68 MiB | 3.58 MiB/s Receiving objects: 60% (50546/84243), 22.43 MiB | 3.98 MiB/s Receiving objects: 61% (51389/84243), 22.43 MiB | 3.98 MiB/s Receiving objects: 62% (52231/84243), 22.43 MiB | 3.98 MiB/s Receiving objects: 63% (53074/84243), 22.43 MiB | 3.98 MiB/s Receiving objects: 64% (53916/84243), 22.43 MiB | 3.98 MiB/s Receiving objects: 65% (54758/84243), 22.43 MiB | 3.98 MiB/s Receiving objects: 66% (55601/84243), 22.43 MiB | 3.98 MiB/s Receiving objects: 67% (56443/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 68% (57286/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 69% (58128/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 70% (58971/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 71% (59813/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 72% (60655/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 73% (61498/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 74% (62340/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 75% (63183/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 76% (64025/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 76% (64565/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 77% (64868/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 78% (65710/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 79% (66552/84243), 26.50 MiB | 4.63 MiB/s Receiving objects: 80% (67395/84243), 30.94 MiB | 5.43 MiB/s Receiving objects: 81% (68237/84243), 30.94 MiB | 5.43 MiB/s Receiving objects: 82% (69080/84243), 30.94 MiB | 5.43 MiB/s Receiving objects: 83% (69922/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 84% (70765/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 85% (71607/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 86% (72449/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 86% (73224/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 87% (73292/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 88% (74134/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 89% (74977/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 90% (75819/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 91% (76662/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 92% (77504/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 93% (78346/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 94% (79189/84243), 35.85 MiB | 6.20 MiB/s Receiving objects: 95% (80031/84243), 40.59 MiB | 6.87 MiB/s Receiving objects: 96% (80874/84243), 40.59 MiB | 6.87 MiB/s Receiving objects: 97% (81716/84243), 40.59 MiB | 6.87 MiB/s Receiving objects: 98% (82559/84243), 40.59 MiB | 6.87 MiB/s Receiving objects: 99% (83401/84243), 40.59 MiB | 6.87 MiB/s remote: Total 84243 (delta 30663), reused 30266 (delta 30265), pack-reused 53396 (from 4) Receiving objects: 100% (84243/84243), 40.59 MiB | 6.87 MiB/s Receiving objects: 100% (84243/84243), 42.78 MiB | 4.08 MiB/s, done. Resolving deltas: 0% (0/68293) Resolving deltas: 1% (683/68293) Resolving deltas: 2% (1367/68293) Resolving deltas: 3% (2050/68293) Resolving deltas: 4% (2733/68293) Resolving deltas: 5% (3415/68293) Resolving deltas: 6% (4100/68293) Resolving deltas: 7% (4783/68293) Resolving deltas: 8% (5469/68293) Resolving deltas: 9% (6150/68293) Resolving deltas: 10% (6830/68293) Resolving deltas: 11% (7513/68293) Resolving deltas: 12% (8196/68293) Resolving deltas: 13% (8879/68293) Resolving deltas: 14% (9564/68293) Resolving deltas: 15% (10246/68293) Resolving deltas: 16% (10929/68293) Resolving deltas: 17% (11610/68293) Resolving deltas: 18% (12297/68293) Resolving deltas: 19% (12977/68293) Resolving deltas: 20% (13659/68293) Resolving deltas: 21% (14342/68293) Resolving deltas: 22% (15026/68293) Resolving deltas: 23% (15709/68293) Resolving deltas: 24% (16391/68293) Resolving deltas: 25% (17074/68293) Resolving deltas: 26% (17757/68293) Resolving deltas: 27% (18441/68293) Resolving deltas: 28% (19124/68293) Resolving deltas: 29% (19805/68293) Resolving deltas: 30% (20489/68293) Resolving deltas: 31% (21173/68293) Resolving deltas: 32% (21856/68293) Resolving deltas: 33% (22537/68293) Resolving deltas: 34% (23222/68293) Resolving deltas: 35% (23903/68293) Resolving deltas: 36% (24586/68293) Resolving deltas: 37% (25269/68293) Resolving deltas: 38% (25952/68293) Resolving deltas: 39% (26640/68293) Resolving deltas: 40% (27319/68293) Resolving deltas: 41% (28001/68293) Resolving deltas: 42% (28684/68293) Resolving deltas: 43% (29366/68293) Resolving deltas: 44% (30049/68293) Resolving deltas: 45% (30732/68293) Resolving deltas: 46% (31415/68293) Resolving deltas: 47% (32098/68293) Resolving deltas: 48% (32782/68293) Resolving deltas: 49% (33464/68293) Resolving deltas: 50% (34148/68293) Resolving deltas: 51% (34830/68293) Resolving deltas: 52% (35514/68293) Resolving deltas: 53% (36196/68293) Resolving deltas: 53% (36828/68293) Resolving deltas: 54% (36879/68293) Resolving deltas: 55% (37562/68293) Resolving deltas: 56% (38246/68293) Resolving deltas: 57% (38928/68293) Resolving deltas: 58% (39610/68293) Resolving deltas: 59% (40293/68293) Resolving deltas: 60% (40976/68293) Resolving deltas: 61% (41659/68293) Resolving deltas: 62% (42342/68293) Resolving deltas: 63% (43025/68293) Resolving deltas: 64% (43708/68293) Resolving deltas: 65% (44391/68293) Resolving deltas: 66% (45074/68293) Resolving deltas: 67% (45757/68293) Resolving deltas: 68% (46440/68293) Resolving deltas: 68% (46838/68293) Resolving deltas: 69% (47123/68293) Resolving deltas: 70% (47806/68293) Resolving deltas: 71% (48489/68293) Resolving deltas: 72% (49171/68293) Resolving deltas: 73% (49854/68293) Resolving deltas: 73% (50306/68293) Resolving deltas: 74% (50537/68293) Resolving deltas: 75% (51220/68293) Resolving deltas: 75% (51834/68293) Resolving deltas: 76% (51903/68293) Resolving deltas: 77% (52586/68293) Resolving deltas: 77% (53070/68293) Resolving deltas: 78% (53269/68293) Resolving deltas: 79% (53952/68293) Resolving deltas: 80% (54635/68293) Resolving deltas: 81% (55318/68293) Resolving deltas: 82% (56001/68293) Resolving deltas: 83% (56684/68293) Resolving deltas: 84% (57367/68293) Resolving deltas: 84% (57622/68293) Resolving deltas: 85% (58050/68293) Resolving deltas: 86% (58732/68293) Resolving deltas: 87% (59415/68293) Resolving deltas: 88% (60098/68293) Resolving deltas: 88% (60189/68293) Resolving deltas: 89% (60781/68293) Resolving deltas: 90% (61464/68293) Resolving deltas: 90% (61745/68293) Resolving deltas: 91% (62147/68293) Resolving deltas: 92% (62830/68293) Resolving deltas: 93% (63513/68293) Resolving deltas: 93% (63857/68293) Resolving deltas: 94% (64196/68293) Resolving deltas: 95% (64879/68293) Resolving deltas: 96% (65562/68293) Resolving deltas: 96% (66043/68293) Resolving deltas: 97% (66245/68293) Resolving deltas: 98% (66928/68293) Resolving deltas: 99% (67611/68293) Resolving deltas: 100% (68293/68293) Resolving deltas: 100% (68293/68293), completed with 3166 local objects. * [new branch] bagder/NETRC -> bagder/NETRC * [new branch] bagder/curl-options-equals -> bagder/curl-options-equals * [new branch] bagder/meta-assert -> bagder/meta-assert * [new branch] bagder/nmake-strip -> bagder/nmake-strip * [new branch] bagder/protocol-done-needs-do -> bagder/protocol-done-needs-do * [new branch] bagder/reject-bad-socks5-auth -> bagder/reject-bad-socks5-auth * [new branch] bagder/request-mode -> bagder/request-mode * [new branch] bagder/rm-msh3 -> bagder/rm-msh3 * [new branch] bagder/rm-non-tls13 -> bagder/rm-non-tls13 * [new branch] bagder/runtests-no-verify -> bagder/runtests-no-verify * [new branch] bagder/setopt-bool -> bagder/setopt-bool * [new branch] bagder/spell-check-symbols -> bagder/spell-check-symbols * [new branch] bagder/src-curlx -> bagder/src-curlx * [new branch] bagder/strtoofft-checks -> bagder/strtoofft-checks * [new branch] bagder/test650-deprecate -> bagder/test650-deprecate * [new branch] bagder/tests-require-ipfs-for-ipfs -> bagder/tests-require-ipfs-for-ipfs * [new branch] bagder/tls-1.2-default -> bagder/tls-1.2-default * [new branch] bagder/transfer-enc -> bagder/transfer-enc * [new branch] bagder/typecheck -> bagder/typecheck * [new branch] bagder/url-path-lf -> bagder/url-path-lf * [new branch] bagder/vuln-7 -> bagder/vuln-7 * [new branch] cm2/withldap -> cm2/withldap + 4366360071...6268caee83 dfandrich/ci -> dfandrich/ci (forced update) dcc5209520..e9a4f5cad0 master -> master * [new branch] minor-pytest-tweaks -> minor-pytest-tweaks + 052f94330f...1986415492 refs/pull/12220/head -> refs/pull/12220/head (forced update) e8d0cd0e95..54ce9ee4eb refs/pull/12980/head -> refs/pull/12980/head + 3c771e4447...be3512c3c4 refs/pull/13098/head -> refs/pull/13098/head (forced update) + 9f664e1462...e360095a9a refs/pull/13465/merge -> refs/pull/13465/merge (forced update) + 66d5128ca1...18650ea011 refs/pull/13522/head -> refs/pull/13522/head (forced update) + 74636351ca...58f4070a82 refs/pull/13947/head -> refs/pull/13947/head (forced update) + 0e7b5ae169...6f97fc9347 refs/pull/14135/head -> refs/pull/14135/head (forced update) + 73eb2ce96c...9c8830dacc refs/pull/14189/head -> refs/pull/14189/head (forced update) + 1b41364cf7...f8e04d11d5 refs/pull/14202/head -> refs/pull/14202/head (forced update) + 57788777b1...04eef2c836 refs/pull/14311/head -> refs/pull/14311/head (forced update) + 1b0ee4451d...c6f8cf1c0e refs/pull/14313/head -> refs/pull/14313/head (forced update) 37eece5455..ea78a78fc3 refs/pull/14319/head -> refs/pull/14319/head + a0ae92a0ac...632b39bca7 refs/pull/14383/head -> refs/pull/14383/head (forced update) + 2f21a23102...1d4ca743cc refs/pull/14388/head -> refs/pull/14388/head (forced update) + 065202fafd...925c0f46b1 refs/pull/14407/head -> refs/pull/14407/head (forced update) + 05d7c67afa...8ebfcea464 refs/pull/14408/head -> refs/pull/14408/head (forced update) 71406c9997..205eb9b287 refs/pull/14419/head -> refs/pull/14419/head + c8e31ca3a4...249cbcd71f refs/pull/14423/head -> refs/pull/14423/head (forced update) * [new ref] refs/pull/14424/head -> refs/pull/14424/head * [new ref] refs/pull/14425/head -> refs/pull/14425/head * [new ref] refs/pull/14426/head -> refs/pull/14426/head * [new ref] refs/pull/14427/head -> refs/pull/14427/head * [new ref] refs/pull/14428/head -> refs/pull/14428/head * [new ref] refs/pull/14429/head -> refs/pull/14429/head * [new ref] refs/pull/14430/head -> refs/pull/14430/head * [new ref] refs/pull/14431/head -> refs/pull/14431/head * [new ref] refs/pull/14433/head -> refs/pull/14433/head * [new ref] refs/pull/14434/head -> refs/pull/14434/head * [new ref] refs/pull/14435/head -> refs/pull/14435/head * [new ref] refs/pull/14436/head -> refs/pull/14436/head * [new ref] refs/pull/14437/head -> refs/pull/14437/head * [new ref] refs/pull/14438/head -> refs/pull/14438/head * [new ref] refs/pull/14439/head -> refs/pull/14439/head * [new ref] refs/pull/14441/head -> refs/pull/14441/head * [new ref] refs/pull/14442/head -> refs/pull/14442/head * [new ref] refs/pull/14443/head -> refs/pull/14443/head * [new ref] refs/pull/14444/head -> refs/pull/14444/head * [new ref] refs/pull/14445/head -> refs/pull/14445/head * [new ref] refs/pull/14447/head -> refs/pull/14447/head * [new ref] refs/pull/14449/head -> refs/pull/14449/head * [new ref] refs/pull/14450/head -> refs/pull/14450/head * [new ref] refs/pull/14451/head -> refs/pull/14451/head * [new ref] refs/pull/14452/head -> refs/pull/14452/head * [new ref] refs/pull/14453/head -> refs/pull/14453/head * [new ref] refs/pull/14454/head -> refs/pull/14454/head * [new ref] refs/pull/14455/head -> refs/pull/14455/head * [new ref] refs/pull/14456/head -> refs/pull/14456/head * [new ref] refs/pull/14457/head -> refs/pull/14457/head * [new ref] refs/pull/14458/head -> refs/pull/14458/head * [new ref] refs/pull/14459/head -> refs/pull/14459/head * [new ref] refs/pull/14460/head -> refs/pull/14460/head * [new ref] refs/pull/14461/head -> refs/pull/14461/head * [new ref] refs/pull/14462/head -> refs/pull/14462/head * [new ref] refs/pull/14463/head -> refs/pull/14463/head * [new ref] refs/pull/14464/head -> refs/pull/14464/head * [new ref] refs/pull/14465/head -> refs/pull/14465/head * [new ref] refs/pull/14466/head -> refs/pull/14466/head * [new ref] refs/pull/14467/head -> refs/pull/14467/head * [new ref] refs/pull/14468/head -> refs/pull/14468/head * [new ref] refs/pull/14469/head -> refs/pull/14469/head * [new ref] refs/pull/14471/head -> refs/pull/14471/head * [new ref] refs/pull/14472/head -> refs/pull/14472/head * [new ref] refs/pull/14473/head -> refs/pull/14473/head * [new ref] refs/pull/14474/head -> refs/pull/14474/head * [new ref] refs/pull/14476/head -> refs/pull/14476/head * [new ref] refs/pull/14477/head -> refs/pull/14477/head * [new ref] refs/pull/14478/head -> refs/pull/14478/head * [new ref] refs/pull/14479/head -> refs/pull/14479/head * [new ref] refs/pull/14480/head -> refs/pull/14480/head * [new ref] refs/pull/14483/head -> refs/pull/14483/head * [new ref] refs/pull/14484/head -> refs/pull/14484/head * [new ref] refs/pull/14485/head -> refs/pull/14485/head * [new ref] refs/pull/14486/head -> refs/pull/14486/head * [new ref] refs/pull/14488/head -> refs/pull/14488/head * [new ref] refs/pull/14490/head -> refs/pull/14490/head * [new ref] refs/pull/14491/head -> refs/pull/14491/head * [new ref] refs/pull/14492/head -> refs/pull/14492/head * [new ref] refs/pull/14494/head -> refs/pull/14494/head * [new ref] refs/pull/14495/head -> refs/pull/14495/head * [new ref] refs/pull/14496/head -> refs/pull/14496/head * [new ref] refs/pull/14497/head -> refs/pull/14497/head * [new ref] refs/pull/14499/head -> refs/pull/14499/head * [new ref] refs/pull/14500/head -> refs/pull/14500/head * [new ref] refs/pull/14501/head -> refs/pull/14501/head * [new ref] refs/pull/14502/head -> refs/pull/14502/head * [new ref] refs/pull/14503/head -> refs/pull/14503/head * [new ref] refs/pull/14504/head -> refs/pull/14504/head * [new ref] refs/pull/14505/head -> refs/pull/14505/head * [new ref] refs/pull/14506/head -> refs/pull/14506/head * [new ref] refs/pull/14507/head -> refs/pull/14507/head * [new ref] refs/pull/14508/head -> refs/pull/14508/head * [new ref] refs/pull/14509/head -> refs/pull/14509/head * [new ref] refs/pull/14510/head -> refs/pull/14510/head * [new ref] refs/pull/14511/head -> refs/pull/14511/head * [new ref] refs/pull/14512/head -> refs/pull/14512/head * [new ref] refs/pull/14513/head -> refs/pull/14513/head * [new ref] refs/pull/14514/head -> refs/pull/14514/head * [new ref] refs/pull/14515/head -> refs/pull/14515/head * [new ref] refs/pull/14516/head -> refs/pull/14516/head * [new ref] refs/pull/14518/head -> refs/pull/14518/head * [new ref] refs/pull/14519/head -> refs/pull/14519/head * [new ref] refs/pull/14523/head -> refs/pull/14523/head * [new ref] refs/pull/14524/head -> refs/pull/14524/head * [new ref] refs/pull/14525/head -> refs/pull/14525/head * [new ref] refs/pull/14526/head -> refs/pull/14526/head * [new ref] refs/pull/14528/head -> refs/pull/14528/head * [new ref] refs/pull/14529/head -> refs/pull/14529/head * [new ref] refs/pull/14530/head -> refs/pull/14530/head * [new ref] refs/pull/14531/head -> refs/pull/14531/head * [new ref] refs/pull/14532/head -> refs/pull/14532/head * [new ref] refs/pull/14533/head -> refs/pull/14533/head * [new ref] refs/pull/14534/head -> refs/pull/14534/head * [new ref] refs/pull/14535/head -> refs/pull/14535/head * [new ref] refs/pull/14537/head -> refs/pull/14537/head * [new ref] refs/pull/14538/head -> refs/pull/14538/head * [new ref] refs/pull/14539/head -> refs/pull/14539/head * [new ref] refs/pull/14540/head -> refs/pull/14540/head * [new ref] refs/pull/14541/head -> refs/pull/14541/head * [new ref] refs/pull/14542/head -> refs/pull/14542/head * [new ref] refs/pull/14543/head -> refs/pull/14543/head * [new ref] refs/pull/14544/head -> refs/pull/14544/head * [new ref] refs/pull/14545/head -> refs/pull/14545/head * [new ref] refs/pull/14546/head -> refs/pull/14546/head * [new ref] refs/pull/14548/head -> refs/pull/14548/head * [new ref] refs/pull/14549/head -> refs/pull/14549/head * [new ref] refs/pull/14551/head -> refs/pull/14551/head * [new ref] refs/pull/14552/head -> refs/pull/14552/head * [new ref] refs/pull/14553/head -> refs/pull/14553/head * [new ref] refs/pull/14554/head -> refs/pull/14554/head * [new ref] refs/pull/14555/head -> refs/pull/14555/head * [new ref] refs/pull/14556/head -> refs/pull/14556/head * [new ref] refs/pull/14557/head -> refs/pull/14557/head * [new ref] refs/pull/14558/head -> refs/pull/14558/head * [new ref] refs/pull/14559/head -> refs/pull/14559/head * [new ref] refs/pull/14560/head -> refs/pull/14560/head * [new ref] refs/pull/14561/head -> refs/pull/14561/head * [new ref] refs/pull/14562/head -> refs/pull/14562/head * [new ref] refs/pull/14563/head -> refs/pull/14563/head * [new ref] refs/pull/14564/head -> refs/pull/14564/head * [new ref] refs/pull/14566/head -> refs/pull/14566/head * [new ref] refs/pull/14567/head -> refs/pull/14567/head * [new ref] refs/pull/14568/head -> refs/pull/14568/head * [new ref] refs/pull/14569/head -> refs/pull/14569/head * [new ref] refs/pull/14570/head -> refs/pull/14570/head * [new ref] refs/pull/14571/head -> refs/pull/14571/head * [new ref] refs/pull/14572/head -> refs/pull/14572/head * [new ref] refs/pull/14573/head -> refs/pull/14573/head * [new ref] refs/pull/14574/head -> refs/pull/14574/head * [new ref] refs/pull/14575/head -> refs/pull/14575/head * [new ref] refs/pull/14576/head -> refs/pull/14576/head * [new ref] refs/pull/14579/head -> refs/pull/14579/head * [new ref] refs/pull/14581/head -> refs/pull/14581/head * [new ref] refs/pull/14582/head -> refs/pull/14582/head * [new ref] refs/pull/14583/head -> refs/pull/14583/head * [new ref] refs/pull/14584/head -> refs/pull/14584/head * [new ref] refs/pull/14585/head -> refs/pull/14585/head * [new ref] refs/pull/14586/head -> refs/pull/14586/head * [new ref] refs/pull/14587/head -> refs/pull/14587/head * [new ref] refs/pull/14588/head -> refs/pull/14588/head * [new ref] refs/pull/14589/head -> refs/pull/14589/head * [new ref] refs/pull/14590/head -> refs/pull/14590/head * [new ref] refs/pull/14591/head -> refs/pull/14591/head * [new ref] refs/pull/14593/head -> refs/pull/14593/head * [new ref] refs/pull/14594/head -> refs/pull/14594/head * [new ref] refs/pull/14595/head -> refs/pull/14595/head * [new ref] refs/pull/14596/head -> refs/pull/14596/head * [new ref] refs/pull/14597/head -> refs/pull/14597/head * [new ref] refs/pull/14598/head -> refs/pull/14598/head * [new ref] refs/pull/14599/head -> refs/pull/14599/head * [new ref] refs/pull/14600/head -> refs/pull/14600/head * [new ref] refs/pull/14601/head -> refs/pull/14601/head * [new ref] refs/pull/14602/head -> refs/pull/14602/head * [new ref] refs/pull/14603/head -> refs/pull/14603/head * [new ref] refs/pull/14604/head -> refs/pull/14604/head * [new ref] refs/pull/14605/head -> refs/pull/14605/head * [new ref] refs/pull/14606/head -> refs/pull/14606/head * [new ref] refs/pull/14607/head -> refs/pull/14607/head * [new ref] refs/pull/14608/head -> refs/pull/14608/head * [new ref] refs/pull/14609/head -> refs/pull/14609/head * [new ref] refs/pull/14610/head -> refs/pull/14610/head * [new ref] refs/pull/14611/head -> refs/pull/14611/head * [new ref] refs/pull/14612/head -> refs/pull/14612/head * [new ref] refs/pull/14613/head -> refs/pull/14613/head * [new ref] refs/pull/14614/head -> refs/pull/14614/head * [new ref] refs/pull/14615/head -> refs/pull/14615/head * [new ref] refs/pull/14616/head -> refs/pull/14616/head * [new ref] refs/pull/14617/head -> refs/pull/14617/head * [new ref] refs/pull/14618/head -> refs/pull/14618/head * [new ref] refs/pull/14619/head -> refs/pull/14619/head * [new ref] refs/pull/14621/head -> refs/pull/14621/head * [new ref] refs/pull/14622/head -> refs/pull/14622/head * [new ref] refs/pull/14623/head -> refs/pull/14623/head * [new ref] refs/pull/14624/head -> refs/pull/14624/head * [new ref] refs/pull/14625/head -> refs/pull/14625/head * [new ref] refs/pull/14626/head -> refs/pull/14626/head * [new ref] refs/pull/14628/head -> refs/pull/14628/head * [new ref] refs/pull/14629/head -> refs/pull/14629/head * [new ref] refs/pull/14630/head -> refs/pull/14630/head * [new ref] refs/pull/14631/head -> refs/pull/14631/head * [new ref] refs/pull/14632/head -> refs/pull/14632/head * [new ref] refs/pull/14633/head -> refs/pull/14633/head * [new ref] refs/pull/14634/head -> refs/pull/14634/head * [new ref] refs/pull/14635/head -> refs/pull/14635/head * [new ref] refs/pull/14636/head -> refs/pull/14636/head * [new ref] refs/pull/14637/head -> refs/pull/14637/head * [new ref] refs/pull/14638/head -> refs/pull/14638/head * [new ref] refs/pull/14639/head -> refs/pull/14639/head * [new ref] refs/pull/14640/head -> refs/pull/14640/head * [new ref] refs/pull/14642/head -> refs/pull/14642/head * [new ref] refs/pull/14643/head -> refs/pull/14643/head * [new ref] refs/pull/14644/head -> refs/pull/14644/head * [new ref] refs/pull/14645/head -> refs/pull/14645/head * [new ref] refs/pull/14646/head -> refs/pull/14646/head * [new ref] refs/pull/14647/head -> refs/pull/14647/head * [new ref] refs/pull/14648/head -> refs/pull/14648/head * [new ref] refs/pull/14649/head -> refs/pull/14649/head * [new ref] refs/pull/14650/head -> refs/pull/14650/head * [new ref] refs/pull/14651/head -> refs/pull/14651/head * [new ref] refs/pull/14652/head -> refs/pull/14652/head * [new ref] refs/pull/14654/head -> refs/pull/14654/head * [new ref] refs/pull/14655/head -> refs/pull/14655/head * [new ref] refs/pull/14657/head -> refs/pull/14657/head * [new ref] refs/pull/14658/head -> refs/pull/14658/head * [new ref] refs/pull/14660/head -> refs/pull/14660/head * [new ref] refs/pull/14661/head -> refs/pull/14661/head * [new ref] refs/pull/14662/head -> refs/pull/14662/head * [new ref] refs/pull/14663/head -> refs/pull/14663/head * [new ref] refs/pull/14664/head -> refs/pull/14664/head * [new ref] refs/pull/14665/head -> refs/pull/14665/head * [new ref] refs/pull/14666/head -> refs/pull/14666/head * [new ref] refs/pull/14667/head -> refs/pull/14667/head * [new ref] refs/pull/14668/head -> refs/pull/14668/head * [new ref] refs/pull/14669/head -> refs/pull/14669/head * [new ref] refs/pull/14671/head -> refs/pull/14671/head * [new ref] refs/pull/14672/head -> refs/pull/14672/head * [new ref] refs/pull/14673/head -> refs/pull/14673/head * [new ref] refs/pull/14674/head -> refs/pull/14674/head * [new ref] refs/pull/14675/head -> refs/pull/14675/head * [new ref] refs/pull/14676/head -> refs/pull/14676/head * [new ref] refs/pull/14678/head -> refs/pull/14678/head * [new ref] refs/pull/14680/head -> refs/pull/14680/head * [new ref] refs/pull/14681/head -> refs/pull/14681/head * [new ref] refs/pull/14682/head -> refs/pull/14682/head * [new ref] refs/pull/14684/head -> refs/pull/14684/head * [new ref] refs/pull/14685/head -> refs/pull/14685/head * [new ref] refs/pull/14686/head -> refs/pull/14686/head * [new ref] refs/pull/14688/head -> refs/pull/14688/head * [new ref] refs/pull/14689/head -> refs/pull/14689/head * [new ref] refs/pull/14690/head -> refs/pull/14690/head * [new ref] refs/pull/14691/head -> refs/pull/14691/head * [new ref] refs/pull/14692/head -> refs/pull/14692/head * [new ref] refs/pull/14693/head -> refs/pull/14693/head * [new ref] refs/pull/14694/head -> refs/pull/14694/head * [new ref] refs/pull/14695/head -> refs/pull/14695/head * [new ref] refs/pull/14696/head -> refs/pull/14696/head * [new ref] refs/pull/14697/head -> refs/pull/14697/head * [new ref] refs/pull/14698/head -> refs/pull/14698/head * [new ref] refs/pull/14699/head -> refs/pull/14699/head * [new ref] refs/pull/14700/head -> refs/pull/14700/head * [new ref] refs/pull/14701/head -> refs/pull/14701/head * [new ref] refs/pull/14702/head -> refs/pull/14702/head * [new ref] refs/pull/14703/head -> refs/pull/14703/head * [new ref] refs/pull/14705/head -> refs/pull/14705/head * [new ref] refs/pull/14706/head -> refs/pull/14706/head * [new ref] refs/pull/14707/head -> refs/pull/14707/head * [new ref] refs/pull/14708/head -> refs/pull/14708/head * [new ref] refs/pull/14709/head -> refs/pull/14709/head * [new ref] refs/pull/14710/head -> refs/pull/14710/head * [new ref] refs/pull/14711/head -> refs/pull/14711/head * [new ref] refs/pull/14712/head -> refs/pull/14712/head * [new ref] refs/pull/14715/head -> refs/pull/14715/head * [new ref] refs/pull/14717/head -> refs/pull/14717/head * [new ref] refs/pull/14718/head -> refs/pull/14718/head * [new ref] refs/pull/14719/head -> refs/pull/14719/head * [new ref] refs/pull/14721/head -> refs/pull/14721/head * [new ref] refs/pull/14722/head -> refs/pull/14722/head * [new ref] refs/pull/14724/head -> refs/pull/14724/head * [new ref] refs/pull/14725/head -> refs/pull/14725/head * [new ref] refs/pull/14727/head -> refs/pull/14727/head * [new ref] refs/pull/14728/head -> refs/pull/14728/head * [new ref] refs/pull/14730/head -> refs/pull/14730/head * [new ref] refs/pull/14731/head -> refs/pull/14731/head * [new ref] refs/pull/14732/head -> refs/pull/14732/head * [new ref] refs/pull/14733/head -> refs/pull/14733/head * [new ref] refs/pull/14734/head -> refs/pull/14734/head * [new ref] refs/pull/14735/head -> refs/pull/14735/head * [new ref] refs/pull/14736/head -> refs/pull/14736/head * [new ref] refs/pull/14737/head -> refs/pull/14737/head * [new ref] refs/pull/14738/head -> refs/pull/14738/head * [new ref] refs/pull/14739/head -> refs/pull/14739/head * [new ref] refs/pull/14741/head -> refs/pull/14741/head * [new ref] refs/pull/14743/head -> refs/pull/14743/head * [new ref] refs/pull/14744/head -> refs/pull/14744/head * [new ref] refs/pull/14745/head -> refs/pull/14745/head * [new ref] refs/pull/14746/head -> refs/pull/14746/head * [new ref] refs/pull/14748/head -> refs/pull/14748/head * [new ref] refs/pull/14749/head -> refs/pull/14749/head * [new ref] refs/pull/14750/head -> refs/pull/14750/head * [new ref] refs/pull/14751/head -> refs/pull/14751/head * [new ref] refs/pull/14752/head -> refs/pull/14752/head * [new ref] refs/pull/14753/head -> refs/pull/14753/head * [new ref] refs/pull/14754/head -> refs/pull/14754/head * [new ref] refs/pull/14756/head -> refs/pull/14756/head * [new ref] refs/pull/14758/head -> refs/pull/14758/head * [new ref] refs/pull/14759/head -> refs/pull/14759/head * [new ref] refs/pull/14760/head -> refs/pull/14760/head * [new ref] refs/pull/14762/head -> refs/pull/14762/head * [new ref] refs/pull/14763/head -> refs/pull/14763/head * [new ref] refs/pull/14764/head -> refs/pull/14764/head * [new ref] refs/pull/14765/head -> refs/pull/14765/head * [new ref] refs/pull/14766/head -> refs/pull/14766/head * [new ref] refs/pull/14768/head -> refs/pull/14768/head * [new ref] refs/pull/14769/head -> refs/pull/14769/head * [new ref] refs/pull/14770/head -> refs/pull/14770/head * [new ref] refs/pull/14772/head -> refs/pull/14772/head * [new ref] refs/pull/14773/head -> refs/pull/14773/head * [new ref] refs/pull/14775/head -> refs/pull/14775/head * [new ref] refs/pull/14776/head -> refs/pull/14776/head * [new ref] refs/pull/14777/head -> refs/pull/14777/head * [new ref] refs/pull/14778/head -> refs/pull/14778/head * [new ref] refs/pull/14780/head -> refs/pull/14780/head * [new ref] refs/pull/14783/head -> refs/pull/14783/head * [new ref] refs/pull/14784/head -> refs/pull/14784/head * [new ref] refs/pull/14785/head -> refs/pull/14785/head * [new ref] refs/pull/14786/head -> refs/pull/14786/head * [new ref] refs/pull/14788/head -> refs/pull/14788/head * [new ref] refs/pull/14789/head -> refs/pull/14789/head * [new ref] refs/pull/14790/head -> refs/pull/14790/head * [new ref] refs/pull/14791/head -> refs/pull/14791/head * [new ref] refs/pull/14793/head -> refs/pull/14793/head * [new ref] refs/pull/14794/head -> refs/pull/14794/head * [new ref] refs/pull/14795/head -> refs/pull/14795/head * [new ref] refs/pull/14796/head -> refs/pull/14796/head * [new ref] refs/pull/14797/head -> refs/pull/14797/head * [new ref] refs/pull/14798/head -> refs/pull/14798/head * [new ref] refs/pull/14799/head -> refs/pull/14799/head * [new ref] refs/pull/14802/head -> refs/pull/14802/head * [new ref] refs/pull/14803/head -> refs/pull/14803/head * [new ref] refs/pull/14804/head -> refs/pull/14804/head * [new ref] refs/pull/14806/head -> refs/pull/14806/head * [new ref] refs/pull/14808/head -> refs/pull/14808/head * [new ref] refs/pull/14809/head -> refs/pull/14809/head * [new ref] refs/pull/14810/head -> refs/pull/14810/head * [new ref] refs/pull/14811/head -> refs/pull/14811/head * [new ref] refs/pull/14812/head -> refs/pull/14812/head * [new ref] refs/pull/14813/head -> refs/pull/14813/head * [new ref] refs/pull/14814/head -> refs/pull/14814/head * [new ref] refs/pull/14815/head -> refs/pull/14815/head * [new ref] refs/pull/14816/head -> refs/pull/14816/head * [new ref] refs/pull/14817/head -> refs/pull/14817/head * [new ref] refs/pull/14818/head -> refs/pull/14818/head * [new ref] refs/pull/14819/head -> refs/pull/14819/head * [new ref] refs/pull/14820/head -> refs/pull/14820/head * [new ref] refs/pull/14821/head -> refs/pull/14821/head * [new ref] refs/pull/14822/head -> refs/pull/14822/head * [new ref] refs/pull/14823/head -> refs/pull/14823/head * [new ref] refs/pull/14826/head -> refs/pull/14826/head * [new ref] refs/pull/14827/head -> refs/pull/14827/head * [new ref] refs/pull/14828/head -> refs/pull/14828/head * [new ref] refs/pull/14829/head -> refs/pull/14829/head * [new ref] refs/pull/14830/head -> refs/pull/14830/head * [new ref] refs/pull/14831/head -> refs/pull/14831/head * [new ref] refs/pull/14832/head -> refs/pull/14832/head * [new ref] refs/pull/14833/head -> refs/pull/14833/head * [new ref] refs/pull/14834/head -> refs/pull/14834/head * [new ref] refs/pull/14835/head -> refs/pull/14835/head * [new ref] refs/pull/14836/head -> refs/pull/14836/head * [new ref] refs/pull/14837/head -> refs/pull/14837/head * [new ref] refs/pull/14839/head -> refs/pull/14839/head * [new ref] refs/pull/14840/head -> refs/pull/14840/head * [new ref] refs/pull/14841/head -> refs/pull/14841/head * [new ref] refs/pull/14844/head -> refs/pull/14844/head * [new ref] refs/pull/14846/head -> refs/pull/14846/head * [new ref] refs/pull/14847/head -> refs/pull/14847/head * [new ref] refs/pull/14848/head -> refs/pull/14848/head * [new ref] refs/pull/14850/head -> refs/pull/14850/head * [new ref] refs/pull/14851/head -> refs/pull/14851/head * [new ref] refs/pull/14852/head -> refs/pull/14852/head * [new ref] refs/pull/14853/head -> refs/pull/14853/head * [new ref] refs/pull/14855/head -> refs/pull/14855/head * [new ref] refs/pull/14857/head -> refs/pull/14857/head * [new ref] refs/pull/14858/head -> refs/pull/14858/head * [new ref] refs/pull/14859/head -> refs/pull/14859/head * [new ref] refs/pull/14861/head -> refs/pull/14861/head * [new ref] refs/pull/14862/head -> refs/pull/14862/head * [new ref] refs/pull/14863/head -> refs/pull/14863/head * [new ref] refs/pull/14864/head -> refs/pull/14864/head * [new ref] refs/pull/14867/head -> refs/pull/14867/head * [new ref] refs/pull/14868/head -> refs/pull/14868/head * [new ref] refs/pull/14872/head -> refs/pull/14872/head * [new ref] refs/pull/14875/head -> refs/pull/14875/head * [new ref] refs/pull/14876/head -> refs/pull/14876/head * [new ref] refs/pull/14877/head -> refs/pull/14877/head * [new ref] refs/pull/14880/head -> refs/pull/14880/head * [new ref] refs/pull/14881/head -> refs/pull/14881/head * [new ref] refs/pull/14882/head -> refs/pull/14882/head * [new ref] refs/pull/14883/head -> refs/pull/14883/head * [new ref] refs/pull/14884/head -> refs/pull/14884/head * [new ref] refs/pull/14886/head -> refs/pull/14886/head * [new ref] refs/pull/14887/head -> refs/pull/14887/head * [new ref] refs/pull/14888/head -> refs/pull/14888/head * [new ref] refs/pull/14889/head -> refs/pull/14889/head * [new ref] refs/pull/14895/head -> refs/pull/14895/head * [new ref] refs/pull/14897/head -> refs/pull/14897/head * [new ref] refs/pull/14900/head -> refs/pull/14900/head * [new ref] refs/pull/14901/head -> refs/pull/14901/head * [new ref] refs/pull/14904/head -> refs/pull/14904/head * [new ref] refs/pull/14905/head -> refs/pull/14905/head * [new ref] refs/pull/14906/head -> refs/pull/14906/head * [new ref] refs/pull/14907/head -> refs/pull/14907/head * [new ref] refs/pull/14909/head -> refs/pull/14909/head * [new ref] refs/pull/14910/head -> refs/pull/14910/head * [new ref] refs/pull/14911/head -> refs/pull/14911/head * [new ref] refs/pull/14912/head -> refs/pull/14912/head * [new ref] refs/pull/14913/head -> refs/pull/14913/head * [new ref] refs/pull/14914/head -> refs/pull/14914/head * [new ref] refs/pull/14917/head -> refs/pull/14917/head * [new ref] refs/pull/14918/head -> refs/pull/14918/head * [new ref] refs/pull/14919/head -> refs/pull/14919/head * [new ref] refs/pull/14920/head -> refs/pull/14920/head * [new ref] refs/pull/14921/head -> refs/pull/14921/head * [new ref] refs/pull/14922/head -> refs/pull/14922/head * [new ref] refs/pull/14924/head -> refs/pull/14924/head * [new ref] refs/pull/14927/head -> refs/pull/14927/head * [new ref] refs/pull/14928/head -> refs/pull/14928/head * [new ref] refs/pull/14929/head -> refs/pull/14929/head * [new ref] refs/pull/14930/head -> refs/pull/14930/head * [new ref] refs/pull/14932/head -> refs/pull/14932/head * [new ref] refs/pull/14933/head -> refs/pull/14933/head * [new ref] refs/pull/14934/head -> refs/pull/14934/head * [new ref] refs/pull/14935/head -> refs/pull/14935/head * [new ref] refs/pull/14936/head -> refs/pull/14936/head * [new ref] refs/pull/14937/head -> refs/pull/14937/head * [new ref] refs/pull/14940/head -> refs/pull/14940/head * [new ref] refs/pull/14943/head -> refs/pull/14943/head * [new ref] refs/pull/14944/head -> refs/pull/14944/head * [new ref] refs/pull/14945/head -> refs/pull/14945/head * [new ref] refs/pull/14946/head -> refs/pull/14946/head * [new ref] refs/pull/14947/head -> refs/pull/14947/head * [new ref] refs/pull/14949/head -> refs/pull/14949/head * [new ref] refs/pull/14950/head -> refs/pull/14950/head * [new ref] refs/pull/14953/head -> refs/pull/14953/head * [new ref] refs/pull/14954/head -> refs/pull/14954/head * [new ref] refs/pull/14955/head -> refs/pull/14955/head * [new ref] refs/pull/14957/head -> refs/pull/14957/head * [new ref] refs/pull/14958/head -> refs/pull/14958/head * [new ref] refs/pull/14959/head -> refs/pull/14959/head * [new ref] refs/pull/14960/head -> refs/pull/14960/head * [new ref] refs/pull/14962/head -> refs/pull/14962/head * [new ref] refs/pull/14963/head -> refs/pull/14963/head * [new ref] refs/pull/14964/head -> refs/pull/14964/head * [new ref] refs/pull/14965/head -> refs/pull/14965/head * [new ref] refs/pull/14966/head -> refs/pull/14966/head * [new ref] refs/pull/14967/head -> refs/pull/14967/head * [new ref] refs/pull/14968/head -> refs/pull/14968/head * [new ref] refs/pull/14969/head -> refs/pull/14969/head * [new ref] refs/pull/14970/head -> refs/pull/14970/head * [new ref] refs/pull/14971/head -> refs/pull/14971/head * [new ref] refs/pull/14972/head -> refs/pull/14972/head * [new ref] refs/pull/14974/head -> refs/pull/14974/head * [new ref] refs/pull/14975/head -> refs/pull/14975/head * [new ref] refs/pull/14977/head -> refs/pull/14977/head * [new ref] refs/pull/14978/head -> refs/pull/14978/head * [new ref] refs/pull/14979/head -> refs/pull/14979/head * [new ref] refs/pull/14980/head -> refs/pull/14980/head * [new ref] refs/pull/14981/head -> refs/pull/14981/head * [new ref] refs/pull/14982/head -> refs/pull/14982/head * [new ref] refs/pull/14983/head -> refs/pull/14983/head * [new ref] refs/pull/14984/head -> refs/pull/14984/head * [new ref] refs/pull/14985/head -> refs/pull/14985/head * [new ref] refs/pull/14986/head -> refs/pull/14986/head * [new ref] refs/pull/14987/head -> refs/pull/14987/head * [new ref] refs/pull/14988/head -> refs/pull/14988/head * [new ref] refs/pull/14990/head -> refs/pull/14990/head * [new ref] refs/pull/14991/head -> refs/pull/14991/head * [new ref] refs/pull/14992/head -> refs/pull/14992/head * [new ref] refs/pull/14995/head -> refs/pull/14995/head * [new ref] refs/pull/14996/head -> refs/pull/14996/head * [new ref] refs/pull/14997/head -> refs/pull/14997/head * [new ref] refs/pull/14998/head -> refs/pull/14998/head * [new ref] refs/pull/14999/head -> refs/pull/14999/head * [new ref] refs/pull/15000/head -> refs/pull/15000/head * [new ref] refs/pull/15001/head -> refs/pull/15001/head * [new ref] refs/pull/15002/head -> refs/pull/15002/head * [new ref] refs/pull/15003/head -> refs/pull/15003/head * [new ref] refs/pull/15004/head -> refs/pull/15004/head * [new ref] refs/pull/15005/head -> refs/pull/15005/head * [new ref] refs/pull/15006/head -> refs/pull/15006/head * [new ref] refs/pull/15007/head -> refs/pull/15007/head * [new ref] refs/pull/15009/head -> refs/pull/15009/head * [new ref] refs/pull/15010/head -> refs/pull/15010/head * [new ref] refs/pull/15011/head -> refs/pull/15011/head * [new ref] refs/pull/15012/head -> refs/pull/15012/head * [new ref] refs/pull/15016/head -> refs/pull/15016/head * [new ref] refs/pull/15017/head -> refs/pull/15017/head * [new ref] refs/pull/15018/head -> refs/pull/15018/head * [new ref] refs/pull/15019/head -> refs/pull/15019/head * [new ref] refs/pull/15020/head -> refs/pull/15020/head * [new ref] refs/pull/15021/head -> refs/pull/15021/head * [new ref] refs/pull/15022/head -> refs/pull/15022/head * [new ref] refs/pull/15023/head -> refs/pull/15023/head * [new ref] refs/pull/15026/head -> refs/pull/15026/head * [new ref] refs/pull/15027/head -> refs/pull/15027/head * [new ref] refs/pull/15028/head -> refs/pull/15028/head * [new ref] refs/pull/15029/head -> refs/pull/15029/head * [new ref] refs/pull/15030/head -> refs/pull/15030/head * [new ref] refs/pull/15031/head -> refs/pull/15031/head * [new ref] refs/pull/15032/head -> refs/pull/15032/head * [new ref] refs/pull/15033/head -> refs/pull/15033/head * [new ref] refs/pull/15034/head -> refs/pull/15034/head * [new ref] refs/pull/15035/head -> refs/pull/15035/head * [new ref] refs/pull/15037/head -> refs/pull/15037/head * [new ref] refs/pull/15039/head -> refs/pull/15039/head * [new ref] refs/pull/15040/head -> refs/pull/15040/head * [new ref] refs/pull/15042/head -> refs/pull/15042/head * [new ref] refs/pull/15044/head -> refs/pull/15044/head * [new ref] refs/pull/15045/head -> refs/pull/15045/head * [new ref] refs/pull/15046/head -> refs/pull/15046/head * [new ref] refs/pull/15047/head -> refs/pull/15047/head * [new ref] refs/pull/15049/head -> refs/pull/15049/head * [new ref] refs/pull/15050/head -> refs/pull/15050/head * [new ref] refs/pull/15051/head -> refs/pull/15051/head * [new ref] refs/pull/15052/head -> refs/pull/15052/head * [new ref] refs/pull/15053/head -> refs/pull/15053/head * [new ref] refs/pull/15054/head -> refs/pull/15054/head * [new ref] refs/pull/15055/head -> refs/pull/15055/head * [new ref] refs/pull/15056/head -> refs/pull/15056/head * [new ref] refs/pull/15057/head -> refs/pull/15057/head * [new ref] refs/pull/15058/head -> refs/pull/15058/head * [new ref] refs/pull/15059/head -> refs/pull/15059/head * [new ref] refs/pull/15060/head -> refs/pull/15060/head * [new ref] refs/pull/15061/head -> refs/pull/15061/head * [new ref] refs/pull/15062/head -> refs/pull/15062/head * [new ref] refs/pull/15063/head -> refs/pull/15063/head * [new ref] refs/pull/15064/head -> refs/pull/15064/head * [new ref] refs/pull/15065/head -> refs/pull/15065/head * [new ref] refs/pull/15066/head -> refs/pull/15066/head * [new ref] refs/pull/15067/head -> refs/pull/15067/head * [new ref] refs/pull/15068/head -> refs/pull/15068/head * [new ref] refs/pull/15069/head -> refs/pull/15069/head * [new ref] refs/pull/15070/head -> refs/pull/15070/head * [new ref] refs/pull/15071/head -> refs/pull/15071/head * [new ref] refs/pull/15072/head -> refs/pull/15072/head * [new ref] refs/pull/15074/head -> refs/pull/15074/head * [new ref] refs/pull/15075/head -> refs/pull/15075/head * [new ref] refs/pull/15076/head -> refs/pull/15076/head * [new ref] refs/pull/15078/head -> refs/pull/15078/head * [new ref] refs/pull/15081/head -> refs/pull/15081/head * [new ref] refs/pull/15082/head -> refs/pull/15082/head * [new ref] refs/pull/15083/head -> refs/pull/15083/head * [new ref] refs/pull/15085/head -> refs/pull/15085/head * [new ref] refs/pull/15086/head -> refs/pull/15086/head * [new ref] refs/pull/15087/head -> refs/pull/15087/head * [new ref] refs/pull/15088/head -> refs/pull/15088/head * [new ref] refs/pull/15089/head -> refs/pull/15089/head * [new ref] refs/pull/15090/head -> refs/pull/15090/head * [new ref] refs/pull/15091/head -> refs/pull/15091/head * [new ref] refs/pull/15092/head -> refs/pull/15092/head * [new ref] refs/pull/15094/head -> refs/pull/15094/head * [new ref] refs/pull/15095/head -> refs/pull/15095/head * [new ref] refs/pull/15096/head -> refs/pull/15096/head * [new ref] refs/pull/15097/head -> refs/pull/15097/head * [new ref] refs/pull/15098/head -> refs/pull/15098/head * [new ref] refs/pull/15102/head -> refs/pull/15102/head * [new ref] refs/pull/15103/head -> refs/pull/15103/head * [new ref] refs/pull/15104/head -> refs/pull/15104/head * [new ref] refs/pull/15105/head -> refs/pull/15105/head * [new ref] refs/pull/15106/head -> refs/pull/15106/head * [new ref] refs/pull/15107/head -> refs/pull/15107/head * [new ref] refs/pull/15108/head -> refs/pull/15108/head * [new ref] refs/pull/15109/head -> refs/pull/15109/head * [new ref] refs/pull/15110/head -> refs/pull/15110/head * [new ref] refs/pull/15111/head -> refs/pull/15111/head * [new ref] refs/pull/15112/head -> refs/pull/15112/head * [new ref] refs/pull/15113/head -> refs/pull/15113/head * [new ref] refs/pull/15114/head -> refs/pull/15114/head * [new ref] refs/pull/15115/head -> refs/pull/15115/head * [new ref] refs/pull/15116/head -> refs/pull/15116/head * [new ref] refs/pull/15117/head -> refs/pull/15117/head * [new ref] refs/pull/15119/head -> refs/pull/15119/head * [new ref] refs/pull/15120/head -> refs/pull/15120/head * [new ref] refs/pull/15121/head -> refs/pull/15121/head * [new ref] refs/pull/15122/head -> refs/pull/15122/head * [new ref] refs/pull/15123/head -> refs/pull/15123/head * [new ref] refs/pull/15124/head -> refs/pull/15124/head * [new ref] refs/pull/15125/head -> refs/pull/15125/head * [new ref] refs/pull/15126/head -> refs/pull/15126/head * [new ref] refs/pull/15128/head -> refs/pull/15128/head * [new ref] refs/pull/15129/head -> refs/pull/15129/head * [new ref] refs/pull/15130/head -> refs/pull/15130/head * [new ref] refs/pull/15131/head -> refs/pull/15131/head * [new ref] refs/pull/15133/head -> refs/pull/15133/head * [new ref] refs/pull/15134/head -> refs/pull/15134/head * [new ref] refs/pull/15135/head -> refs/pull/15135/head * [new ref] refs/pull/15136/head -> refs/pull/15136/head * [new ref] refs/pull/15137/head -> refs/pull/15137/head * [new ref] refs/pull/15138/head -> refs/pull/15138/head * [new ref] refs/pull/15140/head -> refs/pull/15140/head * [new ref] refs/pull/15141/head -> refs/pull/15141/head * [new ref] refs/pull/15142/head -> refs/pull/15142/head * [new ref] refs/pull/15143/head -> refs/pull/15143/head * [new ref] refs/pull/15144/head -> refs/pull/15144/head * [new ref] refs/pull/15145/head -> refs/pull/15145/head * [new ref] refs/pull/15147/head -> refs/pull/15147/head * [new ref] refs/pull/15148/head -> refs/pull/15148/head * [new ref] refs/pull/15150/head -> refs/pull/15150/head * [new ref] refs/pull/15152/head -> refs/pull/15152/head * [new ref] refs/pull/15153/head -> refs/pull/15153/head * [new ref] refs/pull/15155/head -> refs/pull/15155/head * [new ref] refs/pull/15157/head -> refs/pull/15157/head * [new ref] refs/pull/15160/head -> refs/pull/15160/head * [new ref] refs/pull/15161/head -> refs/pull/15161/head * [new ref] refs/pull/15162/head -> refs/pull/15162/head * [new ref] refs/pull/15163/head -> refs/pull/15163/head * [new ref] refs/pull/15164/head -> refs/pull/15164/head * [new ref] refs/pull/15165/head -> refs/pull/15165/head * [new ref] refs/pull/15166/head -> refs/pull/15166/head * [new ref] refs/pull/15167/head -> refs/pull/15167/head * [new ref] refs/pull/15168/head -> refs/pull/15168/head * [new ref] refs/pull/15169/head -> refs/pull/15169/head * [new ref] refs/pull/15170/head -> refs/pull/15170/head * [new ref] refs/pull/15171/head -> refs/pull/15171/head * [new ref] refs/pull/15172/head -> refs/pull/15172/head * [new ref] refs/pull/15173/head -> refs/pull/15173/head * [new ref] refs/pull/15174/head -> refs/pull/15174/head * [new ref] refs/pull/15175/head -> refs/pull/15175/head * [new ref] refs/pull/15176/head -> refs/pull/15176/head * [new ref] refs/pull/15177/head -> refs/pull/15177/head * [new ref] refs/pull/15178/head -> refs/pull/15178/head * [new ref] refs/pull/15179/head -> refs/pull/15179/head * [new ref] refs/pull/15180/head -> refs/pull/15180/head * [new ref] refs/pull/15181/head -> refs/pull/15181/head * [new ref] refs/pull/15182/head -> refs/pull/15182/head * [new ref] refs/pull/15183/head -> refs/pull/15183/head * [new ref] refs/pull/15184/head -> refs/pull/15184/head * [new ref] refs/pull/15186/head -> refs/pull/15186/head * [new ref] refs/pull/15187/head -> refs/pull/15187/head * [new ref] refs/pull/15188/head -> refs/pull/15188/head * [new ref] refs/pull/15190/head -> refs/pull/15190/head * [new ref] refs/pull/15191/head -> refs/pull/15191/head * [new ref] refs/pull/15192/head -> refs/pull/15192/head * [new ref] refs/pull/15193/head -> refs/pull/15193/head * [new ref] refs/pull/15194/head -> refs/pull/15194/head * [new ref] refs/pull/15195/head -> refs/pull/15195/head * [new ref] refs/pull/15196/head -> refs/pull/15196/head * [new ref] refs/pull/15197/head -> refs/pull/15197/head * [new ref] refs/pull/15198/head -> refs/pull/15198/head * [new ref] refs/pull/15199/head -> refs/pull/15199/head * [new ref] refs/pull/15200/head -> refs/pull/15200/head * [new ref] refs/pull/15203/head -> refs/pull/15203/head * [new ref] refs/pull/15204/head -> refs/pull/15204/head * [new ref] refs/pull/15205/head -> refs/pull/15205/head * [new ref] refs/pull/15206/head -> refs/pull/15206/head * [new ref] refs/pull/15207/head -> refs/pull/15207/head * [new ref] refs/pull/15208/head -> refs/pull/15208/head * [new ref] refs/pull/15209/head -> refs/pull/15209/head * [new ref] refs/pull/15210/head -> refs/pull/15210/head * [new ref] refs/pull/15211/head -> refs/pull/15211/head * [new ref] refs/pull/15212/head -> refs/pull/15212/head * [new ref] refs/pull/15213/head -> refs/pull/15213/head * [new ref] refs/pull/15214/head -> refs/pull/15214/head * [new ref] refs/pull/15215/head -> refs/pull/15215/head * [new ref] refs/pull/15217/head -> refs/pull/15217/head * [new ref] refs/pull/15218/head -> refs/pull/15218/head * [new ref] refs/pull/15219/head -> refs/pull/15219/head * [new ref] refs/pull/15220/head -> refs/pull/15220/head * [new ref] refs/pull/15221/head -> refs/pull/15221/head * [new ref] refs/pull/15222/head -> refs/pull/15222/head * [new ref] refs/pull/15223/head -> refs/pull/15223/head * [new ref] refs/pull/15224/head -> refs/pull/15224/head * [new ref] refs/pull/15225/head -> refs/pull/15225/head * [new ref] refs/pull/15226/head -> refs/pull/15226/head * [new ref] refs/pull/15227/head -> refs/pull/15227/head * [new ref] refs/pull/15228/head -> refs/pull/15228/head * [new ref] refs/pull/15229/head -> refs/pull/15229/head * [new ref] refs/pull/15230/head -> refs/pull/15230/head * [new ref] refs/pull/15231/head -> refs/pull/15231/head * [new ref] refs/pull/15232/head -> refs/pull/15232/head * [new ref] refs/pull/15233/head -> refs/pull/15233/head * [new ref] refs/pull/15234/head -> refs/pull/15234/head * [new ref] refs/pull/15235/head -> refs/pull/15235/head * [new ref] refs/pull/15236/head -> refs/pull/15236/head * [new ref] refs/pull/15237/head -> refs/pull/15237/head * [new ref] refs/pull/15238/head -> refs/pull/15238/head * [new ref] refs/pull/15240/head -> refs/pull/15240/head * [new ref] refs/pull/15241/head -> refs/pull/15241/head * [new ref] refs/pull/15242/head -> refs/pull/15242/head * [new ref] refs/pull/15243/head -> refs/pull/15243/head * [new ref] refs/pull/15244/head -> refs/pull/15244/head * [new ref] refs/pull/15245/head -> refs/pull/15245/head * [new ref] refs/pull/15246/head -> refs/pull/15246/head * [new ref] refs/pull/15247/head -> refs/pull/15247/head * [new ref] refs/pull/15249/head -> refs/pull/15249/head * [new ref] refs/pull/15250/head -> refs/pull/15250/head * [new ref] refs/pull/15251/head -> refs/pull/15251/head * [new ref] refs/pull/15252/head -> refs/pull/15252/head * [new ref] refs/pull/15253/head -> refs/pull/15253/head * [new ref] refs/pull/15255/head -> refs/pull/15255/head * [new ref] refs/pull/15256/head -> refs/pull/15256/head * [new ref] refs/pull/15257/head -> refs/pull/15257/head * [new ref] refs/pull/15259/head -> refs/pull/15259/head * [new ref] refs/pull/15260/head -> refs/pull/15260/head * [new ref] refs/pull/15263/head -> refs/pull/15263/head * [new ref] refs/pull/15264/head -> refs/pull/15264/head * [new ref] refs/pull/15265/head -> refs/pull/15265/head * [new ref] refs/pull/15266/head -> refs/pull/15266/head * [new ref] refs/pull/15268/head -> refs/pull/15268/head * [new ref] refs/pull/15271/head -> refs/pull/15271/head * [new ref] refs/pull/15273/head -> refs/pull/15273/head * [new ref] refs/pull/15274/head -> refs/pull/15274/head * [new ref] refs/pull/15275/head -> refs/pull/15275/head * [new ref] refs/pull/15278/head -> refs/pull/15278/head * [new ref] refs/pull/15279/head -> refs/pull/15279/head * [new ref] refs/pull/15280/head -> refs/pull/15280/head * [new ref] refs/pull/15281/head -> refs/pull/15281/head * [new ref] refs/pull/15282/head -> refs/pull/15282/head * [new ref] refs/pull/15283/head -> refs/pull/15283/head * [new ref] refs/pull/15284/head -> refs/pull/15284/head * [new ref] refs/pull/15285/head -> refs/pull/15285/head * [new ref] refs/pull/15286/head -> refs/pull/15286/head * [new ref] refs/pull/15287/head -> refs/pull/15287/head * [new ref] refs/pull/15289/head -> refs/pull/15289/head * [new ref] refs/pull/15290/head -> refs/pull/15290/head * [new ref] refs/pull/15291/head -> refs/pull/15291/head * [new ref] refs/pull/15292/head -> refs/pull/15292/head * [new ref] refs/pull/15293/head -> refs/pull/15293/head * [new ref] refs/pull/15296/head -> refs/pull/15296/head * [new ref] refs/pull/15297/head -> refs/pull/15297/head * [new ref] refs/pull/15299/head -> refs/pull/15299/head * [new ref] refs/pull/15301/head -> refs/pull/15301/head * [new ref] refs/pull/15303/head -> refs/pull/15303/head * [new ref] refs/pull/15306/head -> refs/pull/15306/head * [new ref] refs/pull/15307/head -> refs/pull/15307/head * [new ref] refs/pull/15308/head -> refs/pull/15308/head * [new ref] refs/pull/15309/head -> refs/pull/15309/head * [new ref] refs/pull/15310/head -> refs/pull/15310/head * [new ref] refs/pull/15312/head -> refs/pull/15312/head * [new ref] refs/pull/15313/head -> refs/pull/15313/head * [new ref] refs/pull/15314/head -> refs/pull/15314/head * [new ref] refs/pull/15315/head -> refs/pull/15315/head * [new ref] refs/pull/15317/head -> refs/pull/15317/head * [new ref] refs/pull/15318/head -> refs/pull/15318/head * [new ref] refs/pull/15319/head -> refs/pull/15319/head * [new ref] refs/pull/15320/head -> refs/pull/15320/head * [new ref] refs/pull/15321/head -> refs/pull/15321/head * [new ref] refs/pull/15322/head -> refs/pull/15322/head * [new ref] refs/pull/15323/head -> refs/pull/15323/head * [new ref] refs/pull/15324/head -> refs/pull/15324/head * [new ref] refs/pull/15325/head -> refs/pull/15325/head * [new ref] refs/pull/15326/head -> refs/pull/15326/head * [new ref] refs/pull/15327/head -> refs/pull/15327/head * [new ref] refs/pull/15329/head -> refs/pull/15329/head * [new ref] refs/pull/15330/head -> refs/pull/15330/head * [new ref] refs/pull/15331/head -> refs/pull/15331/head * [new ref] refs/pull/15333/head -> refs/pull/15333/head * [new ref] refs/pull/15334/head -> refs/pull/15334/head * [new ref] refs/pull/15335/head -> refs/pull/15335/head * [new ref] refs/pull/15337/head -> refs/pull/15337/head * [new ref] refs/pull/15338/head -> refs/pull/15338/head * [new ref] refs/pull/15341/head -> refs/pull/15341/head * [new ref] refs/pull/15342/head -> refs/pull/15342/head * [new ref] refs/pull/15343/head -> refs/pull/15343/head * [new ref] refs/pull/15344/head -> refs/pull/15344/head * [new ref] refs/pull/15346/head -> refs/pull/15346/head * [new ref] refs/pull/15347/head -> refs/pull/15347/head * [new ref] refs/pull/15348/head -> refs/pull/15348/head * [new ref] refs/pull/15349/head -> refs/pull/15349/head * [new ref] refs/pull/15352/head -> refs/pull/15352/head * [new ref] refs/pull/15353/head -> refs/pull/15353/head * [new ref] refs/pull/15354/head -> refs/pull/15354/head * [new ref] refs/pull/15355/head -> refs/pull/15355/head * [new ref] refs/pull/15356/head -> refs/pull/15356/head * [new ref] refs/pull/15358/head -> refs/pull/15358/head * [new ref] refs/pull/15359/head -> refs/pull/15359/head * [new ref] refs/pull/15360/head -> refs/pull/15360/head * [new ref] refs/pull/15361/head -> refs/pull/15361/head * [new ref] refs/pull/15362/head -> refs/pull/15362/head * [new ref] refs/pull/15363/head -> refs/pull/15363/head * [new ref] refs/pull/15364/head -> refs/pull/15364/head * [new ref] refs/pull/15365/head -> refs/pull/15365/head * [new ref] refs/pull/15366/head -> refs/pull/15366/head * [new ref] refs/pull/15367/head -> refs/pull/15367/head * [new ref] refs/pull/15368/head -> refs/pull/15368/head * [new ref] refs/pull/15369/head -> refs/pull/15369/head * [new ref] refs/pull/15370/head -> refs/pull/15370/head * [new ref] refs/pull/15371/head -> refs/pull/15371/head * [new ref] refs/pull/15372/head -> refs/pull/15372/head * [new ref] refs/pull/15373/head -> refs/pull/15373/head * [new ref] refs/pull/15374/head -> refs/pull/15374/head * [new ref] refs/pull/15376/head -> refs/pull/15376/head * [new ref] refs/pull/15377/head -> refs/pull/15377/head * [new ref] refs/pull/15379/head -> refs/pull/15379/head * [new ref] refs/pull/15380/head -> refs/pull/15380/head * [new ref] refs/pull/15381/head -> refs/pull/15381/head * [new ref] refs/pull/15382/head -> refs/pull/15382/head * [new ref] refs/pull/15383/head -> refs/pull/15383/head * [new ref] refs/pull/15384/head -> refs/pull/15384/head * [new ref] refs/pull/15385/head -> refs/pull/15385/head * [new ref] refs/pull/15387/head -> refs/pull/15387/head * [new ref] refs/pull/15388/head -> refs/pull/15388/head * [new ref] refs/pull/15391/head -> refs/pull/15391/head * [new ref] refs/pull/15392/head -> refs/pull/15392/head * [new ref] refs/pull/15393/head -> refs/pull/15393/head * [new ref] refs/pull/15394/head -> refs/pull/15394/head * [new ref] refs/pull/15395/head -> refs/pull/15395/head * [new ref] refs/pull/15396/head -> refs/pull/15396/head * [new ref] refs/pull/15397/head -> refs/pull/15397/head * [new ref] refs/pull/15398/head -> refs/pull/15398/head * [new ref] refs/pull/15399/head -> refs/pull/15399/head * [new ref] refs/pull/15400/head -> refs/pull/15400/head * [new ref] refs/pull/15402/head -> refs/pull/15402/head * [new ref] refs/pull/15403/head -> refs/pull/15403/head * [new ref] refs/pull/15404/head -> refs/pull/15404/head * [new ref] refs/pull/15405/head -> refs/pull/15405/head * [new ref] refs/pull/15407/head -> refs/pull/15407/head * [new ref] refs/pull/15408/head -> refs/pull/15408/head * [new ref] refs/pull/15409/head -> refs/pull/15409/head * [new ref] refs/pull/15410/head -> refs/pull/15410/head * [new ref] refs/pull/15411/head -> refs/pull/15411/head * [new ref] refs/pull/15412/head -> refs/pull/15412/head * [new ref] refs/pull/15413/head -> refs/pull/15413/head * [new ref] refs/pull/15414/head -> refs/pull/15414/head * [new ref] refs/pull/15415/head -> refs/pull/15415/head * [new ref] refs/pull/15416/head -> refs/pull/15416/head * [new ref] refs/pull/15417/head -> refs/pull/15417/head * [new ref] refs/pull/15418/head -> refs/pull/15418/head * [new ref] refs/pull/15419/head -> refs/pull/15419/head * [new ref] refs/pull/15420/head -> refs/pull/15420/head * [new ref] refs/pull/15421/head -> refs/pull/15421/head * [new ref] refs/pull/15422/head -> refs/pull/15422/head * [new ref] refs/pull/15423/head -> refs/pull/15423/head * [new ref] refs/pull/15424/head -> refs/pull/15424/head * [new ref] refs/pull/15427/head -> refs/pull/15427/head * [new ref] refs/pull/15429/head -> refs/pull/15429/head * [new ref] refs/pull/15430/head -> refs/pull/15430/head * [new ref] refs/pull/15431/head -> refs/pull/15431/head * [new ref] refs/pull/15433/head -> refs/pull/15433/head * [new ref] refs/pull/15434/head -> refs/pull/15434/head * [new ref] refs/pull/15435/head -> refs/pull/15435/head * [new ref] refs/pull/15436/head -> refs/pull/15436/head * [new ref] refs/pull/15437/head -> refs/pull/15437/head * [new ref] refs/pull/15438/head -> refs/pull/15438/head * [new ref] refs/pull/15439/head -> refs/pull/15439/head * [new ref] refs/pull/15440/head -> refs/pull/15440/head * [new ref] refs/pull/15441/head -> refs/pull/15441/head * [new ref] refs/pull/15442/head -> refs/pull/15442/head * [new ref] refs/pull/15443/head -> refs/pull/15443/head * [new ref] refs/pull/15444/head -> refs/pull/15444/head * [new ref] refs/pull/15446/head -> refs/pull/15446/head * [new ref] refs/pull/15449/head -> refs/pull/15449/head * [new ref] refs/pull/15450/head -> refs/pull/15450/head * [new ref] refs/pull/15451/head -> refs/pull/15451/head * [new ref] refs/pull/15452/head -> refs/pull/15452/head * [new ref] refs/pull/15453/head -> refs/pull/15453/head * [new ref] refs/pull/15454/head -> refs/pull/15454/head * [new ref] refs/pull/15456/head -> refs/pull/15456/head * [new ref] refs/pull/15457/head -> refs/pull/15457/head * [new ref] refs/pull/15461/head -> refs/pull/15461/head * [new ref] refs/pull/15462/head -> refs/pull/15462/head * [new ref] refs/pull/15463/head -> refs/pull/15463/head * [new ref] refs/pull/15464/head -> refs/pull/15464/head * [new ref] refs/pull/15465/head -> refs/pull/15465/head * [new ref] refs/pull/15466/head -> refs/pull/15466/head * [new ref] refs/pull/15468/head -> refs/pull/15468/head * [new ref] refs/pull/15470/head -> refs/pull/15470/head * [new ref] refs/pull/15471/head -> refs/pull/15471/head * [new ref] refs/pull/15474/head -> refs/pull/15474/head * [new ref] refs/pull/15475/head -> refs/pull/15475/head * [new ref] refs/pull/15476/head -> refs/pull/15476/head * [new ref] refs/pull/15478/head -> refs/pull/15478/head * [new ref] refs/pull/15479/head -> refs/pull/15479/head * [new ref] refs/pull/15480/head -> refs/pull/15480/head * [new ref] refs/pull/15481/head -> refs/pull/15481/head * [new ref] refs/pull/15486/head -> refs/pull/15486/head * [new ref] refs/pull/15487/head -> refs/pull/15487/head * [new ref] refs/pull/15488/head -> refs/pull/15488/head * [new ref] refs/pull/15490/head -> refs/pull/15490/head * [new ref] refs/pull/15491/head -> refs/pull/15491/head * [new ref] refs/pull/15493/head -> refs/pull/15493/head * [new ref] refs/pull/15494/head -> refs/pull/15494/head * [new ref] refs/pull/15495/head -> refs/pull/15495/head * [new ref] refs/pull/15497/head -> refs/pull/15497/head * [new ref] refs/pull/15498/head -> refs/pull/15498/head * [new ref] refs/pull/15499/head -> refs/pull/15499/head * [new ref] refs/pull/15501/head -> refs/pull/15501/head * [new ref] refs/pull/15503/head -> refs/pull/15503/head * [new ref] refs/pull/15504/head -> refs/pull/15504/head * [new ref] refs/pull/15505/head -> refs/pull/15505/head * [new ref] refs/pull/15508/head -> refs/pull/15508/head * [new ref] refs/pull/15510/head -> refs/pull/15510/head * [new ref] refs/pull/15512/head -> refs/pull/15512/head * [new ref] refs/pull/15514/head -> refs/pull/15514/head * [new ref] refs/pull/15515/head -> refs/pull/15515/head * [new ref] refs/pull/15516/head -> refs/pull/15516/head * [new ref] refs/pull/15517/head -> refs/pull/15517/head * [new ref] refs/pull/15518/head -> refs/pull/15518/head * [new ref] refs/pull/15519/head -> refs/pull/15519/head * [new ref] refs/pull/15521/head -> refs/pull/15521/head * [new ref] refs/pull/15523/head -> refs/pull/15523/head * [new ref] refs/pull/15524/head -> refs/pull/15524/head * [new ref] refs/pull/15526/head -> refs/pull/15526/head * [new ref] refs/pull/15527/head -> refs/pull/15527/head * [new ref] refs/pull/15528/head -> refs/pull/15528/head * [new ref] refs/pull/15529/head -> refs/pull/15529/head * [new ref] refs/pull/15530/head -> refs/pull/15530/head * [new ref] refs/pull/15531/head -> refs/pull/15531/head * [new ref] refs/pull/15533/head -> refs/pull/15533/head * [new ref] refs/pull/15534/head -> refs/pull/15534/head * [new ref] refs/pull/15534/merge -> refs/pull/15534/merge * [new ref] refs/pull/15535/head -> refs/pull/15535/head * [new ref] refs/pull/15536/head -> refs/pull/15536/head * [new ref] refs/pull/15538/head -> refs/pull/15538/head * [new ref] refs/pull/15540/head -> refs/pull/15540/head * [new ref] refs/pull/15542/head -> refs/pull/15542/head * [new ref] refs/pull/15543/head -> refs/pull/15543/head * [new ref] refs/pull/15545/head -> refs/pull/15545/head * [new ref] refs/pull/15546/head -> refs/pull/15546/head * [new ref] refs/pull/15549/head -> refs/pull/15549/head * [new ref] refs/pull/15550/head -> refs/pull/15550/head * [new ref] refs/pull/15552/head -> refs/pull/15552/head * [new ref] refs/pull/15555/head -> refs/pull/15555/head * [new ref] refs/pull/15556/head -> refs/pull/15556/head * [new ref] refs/pull/15558/head -> refs/pull/15558/head * [new ref] refs/pull/15559/head -> refs/pull/15559/head * [new ref] refs/pull/15560/head -> refs/pull/15560/head * [new ref] refs/pull/15561/head -> refs/pull/15561/head * [new ref] refs/pull/15562/head -> refs/pull/15562/head * [new ref] refs/pull/15563/head -> refs/pull/15563/head * [new ref] refs/pull/15564/head -> refs/pull/15564/head * [new ref] refs/pull/15565/head -> refs/pull/15565/head * [new ref] refs/pull/15572/head -> refs/pull/15572/head * [new ref] refs/pull/15573/head -> refs/pull/15573/head * [new ref] refs/pull/15574/head -> refs/pull/15574/head * [new ref] refs/pull/15575/head -> refs/pull/15575/head * [new ref] refs/pull/15576/head -> refs/pull/15576/head * [new ref] refs/pull/15577/head -> refs/pull/15577/head * [new ref] refs/pull/15578/head -> refs/pull/15578/head * [new ref] refs/pull/15579/head -> refs/pull/15579/head * [new ref] refs/pull/15581/head -> refs/pull/15581/head * [new ref] refs/pull/15583/head -> refs/pull/15583/head * [new ref] refs/pull/15584/head -> refs/pull/15584/head * [new ref] refs/pull/15585/head -> refs/pull/15585/head * [new ref] refs/pull/15586/head -> refs/pull/15586/head * [new ref] refs/pull/15587/head -> refs/pull/15587/head * [new ref] refs/pull/15594/head -> refs/pull/15594/head * [new ref] refs/pull/15596/head -> refs/pull/15596/head * [new ref] refs/pull/15597/head -> refs/pull/15597/head * [new ref] refs/pull/15598/head -> refs/pull/15598/head * [new ref] refs/pull/15600/head -> refs/pull/15600/head * [new ref] refs/pull/15601/head -> refs/pull/15601/head * [new ref] refs/pull/15602/head -> refs/pull/15602/head * [new ref] refs/pull/15603/head -> refs/pull/15603/head * [new ref] refs/pull/15606/head -> refs/pull/15606/head * [new ref] refs/pull/15607/head -> refs/pull/15607/head * [new ref] refs/pull/15608/head -> refs/pull/15608/head * [new ref] refs/pull/15609/head -> refs/pull/15609/head * [new ref] refs/pull/15613/head -> refs/pull/15613/head * [new ref] refs/pull/15615/head -> refs/pull/15615/head * [new ref] refs/pull/15616/head -> refs/pull/15616/head * [new ref] refs/pull/15617/head -> refs/pull/15617/head * [new ref] refs/pull/15618/head -> refs/pull/15618/head * [new ref] refs/pull/15618/merge -> refs/pull/15618/merge * [new ref] refs/pull/15619/head -> refs/pull/15619/head * [new ref] refs/pull/15620/head -> refs/pull/15620/head * [new ref] refs/pull/15621/head -> refs/pull/15621/head * [new ref] refs/pull/15622/head -> refs/pull/15622/head * [new ref] refs/pull/15623/head -> refs/pull/15623/head * [new ref] refs/pull/15625/head -> refs/pull/15625/head * [new ref] refs/pull/15626/head -> refs/pull/15626/head * [new ref] refs/pull/15627/head -> refs/pull/15627/head * [new ref] refs/pull/15629/head -> refs/pull/15629/head * [new ref] refs/pull/15630/head -> refs/pull/15630/head * [new ref] refs/pull/15631/head -> refs/pull/15631/head * [new ref] refs/pull/15632/head -> refs/pull/15632/head * [new ref] refs/pull/15635/head -> refs/pull/15635/head * [new ref] refs/pull/15637/head -> refs/pull/15637/head * [new ref] refs/pull/15638/head -> refs/pull/15638/head * [new ref] refs/pull/15640/head -> refs/pull/15640/head * [new ref] refs/pull/15641/head -> refs/pull/15641/head * [new ref] refs/pull/15642/head -> refs/pull/15642/head * [new ref] refs/pull/15643/head -> refs/pull/15643/head * [new ref] refs/pull/15644/head -> refs/pull/15644/head * [new ref] refs/pull/15647/head -> refs/pull/15647/head * [new ref] refs/pull/15648/head -> refs/pull/15648/head * [new ref] refs/pull/15649/head -> refs/pull/15649/head * [new ref] refs/pull/15650/head -> refs/pull/15650/head * [new ref] refs/pull/15651/head -> refs/pull/15651/head * [new ref] refs/pull/15652/head -> refs/pull/15652/head * [new ref] refs/pull/15656/head -> refs/pull/15656/head * [new ref] refs/pull/15657/head -> refs/pull/15657/head * [new ref] refs/pull/15659/head -> refs/pull/15659/head * [new ref] refs/pull/15660/head -> refs/pull/15660/head * [new ref] refs/pull/15661/head -> refs/pull/15661/head * [new ref] refs/pull/15662/head -> refs/pull/15662/head * [new ref] refs/pull/15663/head -> refs/pull/15663/head * [new ref] refs/pull/15665/head -> refs/pull/15665/head * [new ref] refs/pull/15666/head -> refs/pull/15666/head * [new ref] refs/pull/15667/head -> refs/pull/15667/head * [new ref] refs/pull/15668/head -> refs/pull/15668/head * [new ref] refs/pull/15670/head -> refs/pull/15670/head * [new ref] refs/pull/15671/head -> refs/pull/15671/head * [new ref] refs/pull/15672/head -> refs/pull/15672/head * [new ref] refs/pull/15673/head -> refs/pull/15673/head * [new ref] refs/pull/15674/head -> refs/pull/15674/head * [new ref] refs/pull/15675/head -> refs/pull/15675/head * [new ref] refs/pull/15676/head -> refs/pull/15676/head * [new ref] refs/pull/15677/head -> refs/pull/15677/head * [new ref] refs/pull/15679/head -> refs/pull/15679/head * [new ref] refs/pull/15680/head -> refs/pull/15680/head * [new ref] refs/pull/15681/head -> refs/pull/15681/head * [new ref] refs/pull/15682/head -> refs/pull/15682/head * [new ref] refs/pull/15683/head -> refs/pull/15683/head * [new ref] refs/pull/15686/head -> refs/pull/15686/head * [new ref] refs/pull/15687/head -> refs/pull/15687/head * [new ref] refs/pull/15690/head -> refs/pull/15690/head * [new ref] refs/pull/15691/head -> refs/pull/15691/head * [new ref] refs/pull/15692/head -> refs/pull/15692/head * [new ref] refs/pull/15694/head -> refs/pull/15694/head * [new ref] refs/pull/15695/head -> refs/pull/15695/head * [new ref] refs/pull/15696/head -> refs/pull/15696/head * [new ref] refs/pull/15698/head -> refs/pull/15698/head * [new ref] refs/pull/15699/head -> refs/pull/15699/head * [new ref] refs/pull/15702/head -> refs/pull/15702/head * [new ref] refs/pull/15704/head -> refs/pull/15704/head * [new ref] refs/pull/15706/head -> refs/pull/15706/head * [new ref] refs/pull/15707/head -> refs/pull/15707/head * [new ref] refs/pull/15708/head -> refs/pull/15708/head * [new ref] refs/pull/15709/head -> refs/pull/15709/head * [new ref] refs/pull/15712/head -> refs/pull/15712/head * [new ref] refs/pull/15714/head -> refs/pull/15714/head * [new ref] refs/pull/15715/head -> refs/pull/15715/head * [new ref] refs/pull/15716/head -> refs/pull/15716/head * [new ref] refs/pull/15719/head -> refs/pull/15719/head * [new ref] refs/pull/15720/head -> refs/pull/15720/head * [new ref] refs/pull/15721/head -> refs/pull/15721/head * [new ref] refs/pull/15722/head -> refs/pull/15722/head * [new ref] refs/pull/15724/head -> refs/pull/15724/head * [new ref] refs/pull/15727/head -> refs/pull/15727/head * [new ref] refs/pull/15731/head -> refs/pull/15731/head * [new ref] refs/pull/15732/head -> refs/pull/15732/head * [new ref] refs/pull/15735/head -> refs/pull/15735/head * [new ref] refs/pull/15737/head -> refs/pull/15737/head * [new ref] refs/pull/15739/head -> refs/pull/15739/head * [new ref] refs/pull/15740/head -> refs/pull/15740/head * [new ref] refs/pull/15741/head -> refs/pull/15741/head * [new ref] refs/pull/15742/head -> refs/pull/15742/head * [new ref] refs/pull/15743/head -> refs/pull/15743/head * [new ref] refs/pull/15745/head -> refs/pull/15745/head * [new ref] refs/pull/15746/head -> refs/pull/15746/head * [new ref] refs/pull/15748/head -> refs/pull/15748/head * [new ref] refs/pull/15751/head -> refs/pull/15751/head * [new ref] refs/pull/15752/head -> refs/pull/15752/head * [new ref] refs/pull/15753/head -> refs/pull/15753/head * [new ref] refs/pull/15755/head -> refs/pull/15755/head * [new ref] refs/pull/15758/head -> refs/pull/15758/head * [new ref] refs/pull/15760/head -> refs/pull/15760/head * [new ref] refs/pull/15762/head -> refs/pull/15762/head * [new ref] refs/pull/15763/head -> refs/pull/15763/head * [new ref] refs/pull/15764/head -> refs/pull/15764/head * [new ref] refs/pull/15765/head -> refs/pull/15765/head * [new ref] refs/pull/15766/head -> refs/pull/15766/head * [new ref] refs/pull/15768/head -> refs/pull/15768/head * [new ref] refs/pull/15769/head -> refs/pull/15769/head * [new ref] refs/pull/15770/head -> refs/pull/15770/head * [new ref] refs/pull/15771/head -> refs/pull/15771/head * [new ref] refs/pull/15772/head -> refs/pull/15772/head * [new ref] refs/pull/15773/head -> refs/pull/15773/head * [new ref] refs/pull/15774/head -> refs/pull/15774/head * [new ref] refs/pull/15775/head -> refs/pull/15775/head * [new ref] refs/pull/15776/head -> refs/pull/15776/head * [new ref] refs/pull/15777/head -> refs/pull/15777/head * [new ref] refs/pull/15778/head -> refs/pull/15778/head * [new ref] refs/pull/15779/head -> refs/pull/15779/head * [new ref] refs/pull/15781/head -> refs/pull/15781/head * [new ref] refs/pull/15782/head -> refs/pull/15782/head * [new ref] refs/pull/15783/head -> refs/pull/15783/head * [new ref] refs/pull/15784/head -> refs/pull/15784/head * [new ref] refs/pull/15785/head -> refs/pull/15785/head * [new ref] refs/pull/15786/head -> refs/pull/15786/head * [new ref] refs/pull/15787/head -> refs/pull/15787/head * [new ref] refs/pull/15788/head -> refs/pull/15788/head * [new ref] refs/pull/15789/head -> refs/pull/15789/head * [new ref] refs/pull/15790/head -> refs/pull/15790/head * [new ref] refs/pull/15791/head -> refs/pull/15791/head * [new ref] refs/pull/15792/head -> refs/pull/15792/head * [new ref] refs/pull/15793/head -> refs/pull/15793/head * [new ref] refs/pull/15794/head -> refs/pull/15794/head * [new ref] refs/pull/15796/head -> refs/pull/15796/head * [new ref] refs/pull/15797/head -> refs/pull/15797/head * [new ref] refs/pull/15798/head -> refs/pull/15798/head * [new ref] refs/pull/15799/head -> refs/pull/15799/head * [new ref] refs/pull/15800/head -> refs/pull/15800/head * [new ref] refs/pull/15803/head -> refs/pull/15803/head * [new ref] refs/pull/15805/head -> refs/pull/15805/head * [new ref] refs/pull/15806/head -> refs/pull/15806/head * [new ref] refs/pull/15807/head -> refs/pull/15807/head * [new ref] refs/pull/15808/head -> refs/pull/15808/head * [new ref] refs/pull/15809/head -> refs/pull/15809/head * [new ref] refs/pull/15810/head -> refs/pull/15810/head * [new ref] refs/pull/15812/head -> refs/pull/15812/head * [new ref] refs/pull/15813/head -> refs/pull/15813/head * [new ref] refs/pull/15814/head -> refs/pull/15814/head * [new ref] refs/pull/15815/head -> refs/pull/15815/head * [new ref] refs/pull/15816/head -> refs/pull/15816/head * [new ref] refs/pull/15817/head -> refs/pull/15817/head * [new ref] refs/pull/15819/head -> refs/pull/15819/head * [new ref] refs/pull/15820/head -> refs/pull/15820/head * [new ref] refs/pull/15823/head -> refs/pull/15823/head * [new ref] refs/pull/15824/head -> refs/pull/15824/head * [new ref] refs/pull/15825/head -> refs/pull/15825/head * [new ref] refs/pull/15826/head -> refs/pull/15826/head * [new ref] refs/pull/15827/head -> refs/pull/15827/head * [new ref] refs/pull/15828/head -> refs/pull/15828/head * [new ref] refs/pull/15829/head -> refs/pull/15829/head * [new ref] refs/pull/15830/head -> refs/pull/15830/head * [new ref] refs/pull/15832/head -> refs/pull/15832/head * [new ref] refs/pull/15833/head -> refs/pull/15833/head * [new ref] refs/pull/15834/head -> refs/pull/15834/head * [new ref] refs/pull/15835/head -> refs/pull/15835/head * [new ref] refs/pull/15837/head -> refs/pull/15837/head * [new ref] refs/pull/15839/head -> refs/pull/15839/head * [new ref] refs/pull/15840/head -> refs/pull/15840/head * [new ref] refs/pull/15841/head -> refs/pull/15841/head * [new ref] refs/pull/15843/head -> refs/pull/15843/head * [new ref] refs/pull/15845/head -> refs/pull/15845/head * [new ref] refs/pull/15846/head -> refs/pull/15846/head * [new ref] refs/pull/15848/head -> refs/pull/15848/head * [new ref] refs/pull/15850/head -> refs/pull/15850/head * [new ref] refs/pull/15851/head -> refs/pull/15851/head * [new ref] refs/pull/15852/head -> refs/pull/15852/head * [new ref] refs/pull/15853/head -> refs/pull/15853/head * [new ref] refs/pull/15854/head -> refs/pull/15854/head * [new ref] refs/pull/15855/head -> refs/pull/15855/head * [new ref] refs/pull/15858/head -> refs/pull/15858/head * [new ref] refs/pull/15859/head -> refs/pull/15859/head * [new ref] refs/pull/15860/head -> refs/pull/15860/head * [new ref] refs/pull/15861/head -> refs/pull/15861/head * [new ref] refs/pull/15862/head -> refs/pull/15862/head * [new ref] refs/pull/15863/head -> refs/pull/15863/head * [new ref] refs/pull/15864/head -> refs/pull/15864/head * [new ref] refs/pull/15867/head -> refs/pull/15867/head * [new ref] refs/pull/15868/head -> refs/pull/15868/head * [new ref] refs/pull/15869/head -> refs/pull/15869/head * [new ref] refs/pull/15871/head -> refs/pull/15871/head * [new ref] refs/pull/15872/head -> refs/pull/15872/head * [new ref] refs/pull/15873/head -> refs/pull/15873/head * [new ref] refs/pull/15874/head -> refs/pull/15874/head * [new ref] refs/pull/15875/head -> refs/pull/15875/head * [new ref] refs/pull/15876/head -> refs/pull/15876/head * [new ref] refs/pull/15877/head -> refs/pull/15877/head * [new ref] refs/pull/15879/head -> refs/pull/15879/head * [new ref] refs/pull/15880/head -> refs/pull/15880/head * [new ref] refs/pull/15880/merge -> refs/pull/15880/merge * [new ref] refs/pull/15881/head -> refs/pull/15881/head * [new ref] refs/pull/15882/head -> refs/pull/15882/head * [new ref] refs/pull/15883/head -> refs/pull/15883/head * [new ref] refs/pull/15884/head -> refs/pull/15884/head * [new ref] refs/pull/15885/head -> refs/pull/15885/head * [new ref] refs/pull/15886/head -> refs/pull/15886/head * [new ref] refs/pull/15887/head -> refs/pull/15887/head * [new ref] refs/pull/15888/head -> refs/pull/15888/head * [new ref] refs/pull/15889/head -> refs/pull/15889/head * [new ref] refs/pull/15890/head -> refs/pull/15890/head * [new ref] refs/pull/15891/head -> refs/pull/15891/head * [new ref] refs/pull/15892/head -> refs/pull/15892/head * [new ref] refs/pull/15893/head -> refs/pull/15893/head * [new ref] refs/pull/15894/head -> refs/pull/15894/head * [new ref] refs/pull/15895/head -> refs/pull/15895/head * [new ref] refs/pull/15897/head -> refs/pull/15897/head * [new ref] refs/pull/15898/head -> refs/pull/15898/head * [new ref] refs/pull/15899/head -> refs/pull/15899/head * [new ref] refs/pull/15900/head -> refs/pull/15900/head * [new ref] refs/pull/15901/head -> refs/pull/15901/head * [new ref] refs/pull/15902/head -> refs/pull/15902/head * [new ref] refs/pull/15903/head -> refs/pull/15903/head * [new ref] refs/pull/15905/head -> refs/pull/15905/head * [new ref] refs/pull/15906/head -> refs/pull/15906/head * [new ref] refs/pull/15908/head -> refs/pull/15908/head * [new ref] refs/pull/15909/head -> refs/pull/15909/head * [new ref] refs/pull/15910/head -> refs/pull/15910/head * [new ref] refs/pull/15911/head -> refs/pull/15911/head * [new ref] refs/pull/15912/head -> refs/pull/15912/head * [new ref] refs/pull/15913/head -> refs/pull/15913/head * [new ref] refs/pull/15915/head -> refs/pull/15915/head * [new ref] refs/pull/15916/head -> refs/pull/15916/head * [new ref] refs/pull/15917/head -> refs/pull/15917/head * [new ref] refs/pull/15918/head -> refs/pull/15918/head * [new ref] refs/pull/15919/head -> refs/pull/15919/head * [new ref] refs/pull/15920/head -> refs/pull/15920/head * [new ref] refs/pull/15921/head -> refs/pull/15921/head * [new ref] refs/pull/15922/head -> refs/pull/15922/head * [new ref] refs/pull/15923/head -> refs/pull/15923/head * [new ref] refs/pull/15924/head -> refs/pull/15924/head * [new ref] refs/pull/15925/head -> refs/pull/15925/head * [new ref] refs/pull/15926/head -> refs/pull/15926/head * [new ref] refs/pull/15927/head -> refs/pull/15927/head * [new ref] refs/pull/15928/head -> refs/pull/15928/head * [new ref] refs/pull/15929/head -> refs/pull/15929/head * [new ref] refs/pull/15930/head -> refs/pull/15930/head * [new ref] refs/pull/15931/head -> refs/pull/15931/head * [new ref] refs/pull/15932/head -> refs/pull/15932/head * [new ref] refs/pull/15933/head -> refs/pull/15933/head * [new ref] refs/pull/15934/head -> refs/pull/15934/head * [new ref] refs/pull/15935/head -> refs/pull/15935/head * [new ref] refs/pull/15936/head -> refs/pull/15936/head * [new ref] refs/pull/15937/head -> refs/pull/15937/head * [new ref] refs/pull/15939/head -> refs/pull/15939/head * [new ref] refs/pull/15940/head -> refs/pull/15940/head * [new ref] refs/pull/15943/head -> refs/pull/15943/head * [new ref] refs/pull/15944/head -> refs/pull/15944/head * [new ref] refs/pull/15945/head -> refs/pull/15945/head * [new ref] refs/pull/15946/head -> refs/pull/15946/head * [new ref] refs/pull/15948/head -> refs/pull/15948/head * [new ref] refs/pull/15949/head -> refs/pull/15949/head * [new ref] refs/pull/15950/head -> refs/pull/15950/head * [new ref] refs/pull/15951/head -> refs/pull/15951/head * [new ref] refs/pull/15952/head -> refs/pull/15952/head * [new ref] refs/pull/15953/head -> refs/pull/15953/head * [new ref] refs/pull/15954/head -> refs/pull/15954/head * [new ref] refs/pull/15955/head -> refs/pull/15955/head * [new ref] refs/pull/15956/head -> refs/pull/15956/head * [new ref] refs/pull/15957/head -> refs/pull/15957/head * [new ref] refs/pull/15958/head -> refs/pull/15958/head * [new ref] refs/pull/15959/head -> refs/pull/15959/head * [new ref] refs/pull/15960/head -> refs/pull/15960/head * [new ref] refs/pull/15962/head -> refs/pull/15962/head * [new ref] refs/pull/15964/head -> refs/pull/15964/head * [new ref] refs/pull/15965/head -> refs/pull/15965/head * [new ref] refs/pull/15966/head -> refs/pull/15966/head * [new ref] refs/pull/15967/head -> refs/pull/15967/head * [new ref] refs/pull/15968/head -> refs/pull/15968/head * [new ref] refs/pull/15969/head -> refs/pull/15969/head * [new ref] refs/pull/15970/head -> refs/pull/15970/head * [new ref] refs/pull/15971/head -> refs/pull/15971/head * [new ref] refs/pull/15973/head -> refs/pull/15973/head * [new ref] refs/pull/15974/head -> refs/pull/15974/head * [new ref] refs/pull/15975/head -> refs/pull/15975/head * [new ref] refs/pull/15978/head -> refs/pull/15978/head * [new ref] refs/pull/15979/head -> refs/pull/15979/head * [new ref] refs/pull/15980/head -> refs/pull/15980/head * [new ref] refs/pull/15981/head -> refs/pull/15981/head * [new ref] refs/pull/15982/head -> refs/pull/15982/head * [new ref] refs/pull/15983/head -> refs/pull/15983/head * [new ref] refs/pull/15985/head -> refs/pull/15985/head * [new ref] refs/pull/15986/head -> refs/pull/15986/head * [new ref] refs/pull/15987/head -> refs/pull/15987/head * [new ref] refs/pull/15988/head -> refs/pull/15988/head * [new ref] refs/pull/15989/head -> refs/pull/15989/head * [new ref] refs/pull/15990/head -> refs/pull/15990/head * [new ref] refs/pull/15991/head -> refs/pull/15991/head * [new ref] refs/pull/15992/head -> refs/pull/15992/head * [new ref] refs/pull/15993/head -> refs/pull/15993/head * [new ref] refs/pull/15994/head -> refs/pull/15994/head * [new ref] refs/pull/15996/head -> refs/pull/15996/head * [new ref] refs/pull/15997/head -> refs/pull/15997/head * [new ref] refs/pull/15998/head -> refs/pull/15998/head * [new ref] refs/pull/15999/head -> refs/pull/15999/head * [new ref] refs/pull/16000/head -> refs/pull/16000/head * [new ref] refs/pull/16001/head -> refs/pull/16001/head * [new ref] refs/pull/16002/head -> refs/pull/16002/head * [new ref] refs/pull/16003/head -> refs/pull/16003/head * [new ref] refs/pull/16004/head -> refs/pull/16004/head * [new ref] refs/pull/16007/head -> refs/pull/16007/head * [new ref] refs/pull/16008/head -> refs/pull/16008/head * [new ref] refs/pull/16009/head -> refs/pull/16009/head * [new ref] refs/pull/16010/head -> refs/pull/16010/head * [new ref] refs/pull/16012/head -> refs/pull/16012/head * [new ref] refs/pull/16013/head -> refs/pull/16013/head * [new ref] refs/pull/16014/head -> refs/pull/16014/head * [new ref] refs/pull/16016/head -> refs/pull/16016/head * [new ref] refs/pull/16017/head -> refs/pull/16017/head * [new ref] refs/pull/16019/head -> refs/pull/16019/head * [new ref] refs/pull/16020/head -> refs/pull/16020/head * [new ref] refs/pull/16021/head -> refs/pull/16021/head * [new ref] refs/pull/16022/head -> refs/pull/16022/head * [new ref] refs/pull/16023/head -> refs/pull/16023/head * [new ref] refs/pull/16024/head -> refs/pull/16024/head * [new ref] refs/pull/16025/head -> refs/pull/16025/head * [new ref] refs/pull/16027/head -> refs/pull/16027/head * [new ref] refs/pull/16028/head -> refs/pull/16028/head * [new ref] refs/pull/16029/head -> refs/pull/16029/head * [new ref] refs/pull/16030/head -> refs/pull/16030/head * [new ref] refs/pull/16032/head -> refs/pull/16032/head * [new ref] refs/pull/16033/head -> refs/pull/16033/head * [new ref] refs/pull/16034/head -> refs/pull/16034/head * [new ref] refs/pull/16035/head -> refs/pull/16035/head * [new ref] refs/pull/16036/head -> refs/pull/16036/head * [new ref] refs/pull/16037/head -> refs/pull/16037/head * [new ref] refs/pull/16038/head -> refs/pull/16038/head * [new ref] refs/pull/16039/head -> refs/pull/16039/head * [new ref] refs/pull/16040/head -> refs/pull/16040/head * [new ref] refs/pull/16041/head -> refs/pull/16041/head * [new ref] refs/pull/16042/head -> refs/pull/16042/head * [new ref] refs/pull/16043/head -> refs/pull/16043/head * [new ref] refs/pull/16044/head -> refs/pull/16044/head * [new ref] refs/pull/16045/head -> refs/pull/16045/head * [new ref] refs/pull/16046/head -> refs/pull/16046/head * [new ref] refs/pull/16048/head -> refs/pull/16048/head * [new ref] refs/pull/16049/head -> refs/pull/16049/head * [new ref] refs/pull/16050/head -> refs/pull/16050/head * [new ref] refs/pull/16051/head -> refs/pull/16051/head * [new ref] refs/pull/16052/head -> refs/pull/16052/head * [new ref] refs/pull/16053/head -> refs/pull/16053/head * [new ref] refs/pull/16054/head -> refs/pull/16054/head * [new ref] refs/pull/16056/head -> refs/pull/16056/head * [new ref] refs/pull/16057/head -> refs/pull/16057/head * [new ref] refs/pull/16058/head -> refs/pull/16058/head * [new ref] refs/pull/16059/head -> refs/pull/16059/head * [new ref] refs/pull/16062/head -> refs/pull/16062/head * [new ref] refs/pull/16063/head -> refs/pull/16063/head * [new ref] refs/pull/16064/head -> refs/pull/16064/head * [new ref] refs/pull/16066/head -> refs/pull/16066/head * [new ref] refs/pull/16067/head -> refs/pull/16067/head * [new ref] refs/pull/16068/head -> refs/pull/16068/head * [new ref] refs/pull/16069/head -> refs/pull/16069/head * [new ref] refs/pull/16071/head -> refs/pull/16071/head * [new ref] refs/pull/16073/head -> refs/pull/16073/head * [new ref] refs/pull/16075/head -> refs/pull/16075/head * [new ref] refs/pull/16077/head -> refs/pull/16077/head * [new ref] refs/pull/16078/head -> refs/pull/16078/head * [new ref] refs/pull/16079/head -> refs/pull/16079/head * [new ref] refs/pull/16081/head -> refs/pull/16081/head * [new ref] refs/pull/16082/head -> refs/pull/16082/head * [new ref] refs/pull/16085/head -> refs/pull/16085/head * [new ref] refs/pull/16086/head -> refs/pull/16086/head * [new ref] refs/pull/16087/head -> refs/pull/16087/head * [new ref] refs/pull/16088/head -> refs/pull/16088/head * [new ref] refs/pull/16089/head -> refs/pull/16089/head * [new ref] refs/pull/16090/head -> refs/pull/16090/head * [new ref] refs/pull/16091/head -> refs/pull/16091/head * [new ref] refs/pull/16092/head -> refs/pull/16092/head * [new ref] refs/pull/16093/head -> refs/pull/16093/head * [new ref] refs/pull/16094/head -> refs/pull/16094/head * [new ref] refs/pull/16095/head -> refs/pull/16095/head * [new ref] refs/pull/16096/head -> refs/pull/16096/head * [new ref] refs/pull/16097/head -> refs/pull/16097/head * [new ref] refs/pull/16098/head -> refs/pull/16098/head * [new ref] refs/pull/16099/head -> refs/pull/16099/head * [new ref] refs/pull/16100/head -> refs/pull/16100/head * [new ref] refs/pull/16101/head -> refs/pull/16101/head * [new ref] refs/pull/16102/head -> refs/pull/16102/head * [new ref] refs/pull/16103/head -> refs/pull/16103/head * [new ref] refs/pull/16104/head -> refs/pull/16104/head * [new ref] refs/pull/16105/head -> refs/pull/16105/head * [new ref] refs/pull/16107/head -> refs/pull/16107/head * [new ref] refs/pull/16108/head -> refs/pull/16108/head * [new ref] refs/pull/16109/head -> refs/pull/16109/head * [new ref] refs/pull/16110/head -> refs/pull/16110/head * [new ref] refs/pull/16111/head -> refs/pull/16111/head * [new ref] refs/pull/16113/head -> refs/pull/16113/head * [new ref] refs/pull/16114/head -> refs/pull/16114/head * [new ref] refs/pull/16115/head -> refs/pull/16115/head * [new ref] refs/pull/16116/head -> refs/pull/16116/head * [new ref] refs/pull/16117/head -> refs/pull/16117/head * [new ref] refs/pull/16118/head -> refs/pull/16118/head * [new ref] refs/pull/16120/head -> refs/pull/16120/head * [new ref] refs/pull/16121/head -> refs/pull/16121/head * [new ref] refs/pull/16122/head -> refs/pull/16122/head * [new ref] refs/pull/16123/head -> refs/pull/16123/head * [new ref] refs/pull/16126/head -> refs/pull/16126/head * [new ref] refs/pull/16127/head -> refs/pull/16127/head * [new ref] refs/pull/16129/head -> refs/pull/16129/head * [new ref] refs/pull/16131/head -> refs/pull/16131/head * [new ref] refs/pull/16132/head -> refs/pull/16132/head * [new ref] refs/pull/16133/head -> refs/pull/16133/head * [new ref] refs/pull/16134/head -> refs/pull/16134/head * [new ref] refs/pull/16136/head -> refs/pull/16136/head * [new ref] refs/pull/16137/head -> refs/pull/16137/head * [new ref] refs/pull/16138/head -> refs/pull/16138/head * [new ref] refs/pull/16140/head -> refs/pull/16140/head * [new ref] refs/pull/16141/head -> refs/pull/16141/head * [new ref] refs/pull/16142/head -> refs/pull/16142/head * [new ref] refs/pull/16144/head -> refs/pull/16144/head * [new ref] refs/pull/16146/head -> refs/pull/16146/head * [new ref] refs/pull/16149/head -> refs/pull/16149/head * [new ref] refs/pull/16150/head -> refs/pull/16150/head * [new ref] refs/pull/16151/head -> refs/pull/16151/head * [new ref] refs/pull/16152/head -> refs/pull/16152/head * [new ref] refs/pull/16153/head -> refs/pull/16153/head * [new ref] refs/pull/16156/head -> refs/pull/16156/head * [new ref] refs/pull/16157/head -> refs/pull/16157/head * [new ref] refs/pull/16158/head -> refs/pull/16158/head * [new ref] refs/pull/16159/head -> refs/pull/16159/head * [new ref] refs/pull/16162/head -> refs/pull/16162/head * [new ref] refs/pull/16164/head -> refs/pull/16164/head * [new ref] refs/pull/16165/head -> refs/pull/16165/head * [new ref] refs/pull/16167/head -> refs/pull/16167/head * [new ref] refs/pull/16168/head -> refs/pull/16168/head * [new ref] refs/pull/16169/head -> refs/pull/16169/head * [new ref] refs/pull/16170/head -> refs/pull/16170/head * [new ref] refs/pull/16171/head -> refs/pull/16171/head * [new ref] refs/pull/16172/head -> refs/pull/16172/head * [new ref] refs/pull/16173/head -> refs/pull/16173/head * [new ref] refs/pull/16175/head -> refs/pull/16175/head * [new ref] refs/pull/16176/head -> refs/pull/16176/head * [new ref] refs/pull/16177/head -> refs/pull/16177/head * [new ref] refs/pull/16178/head -> refs/pull/16178/head * [new ref] refs/pull/16179/head -> refs/pull/16179/head * [new ref] refs/pull/16181/head -> refs/pull/16181/head * [new ref] refs/pull/16182/head -> refs/pull/16182/head * [new ref] refs/pull/16183/head -> refs/pull/16183/head * [new ref] refs/pull/16185/head -> refs/pull/16185/head * [new ref] refs/pull/16187/head -> refs/pull/16187/head * [new ref] refs/pull/16188/head -> refs/pull/16188/head * [new ref] refs/pull/16190/head -> refs/pull/16190/head * [new ref] refs/pull/16191/head -> refs/pull/16191/head * [new ref] refs/pull/16194/head -> refs/pull/16194/head * [new ref] refs/pull/16195/head -> refs/pull/16195/head * [new ref] refs/pull/16196/head -> refs/pull/16196/head * [new ref] refs/pull/16198/head -> refs/pull/16198/head * [new ref] refs/pull/16199/head -> refs/pull/16199/head * [new ref] refs/pull/16200/head -> refs/pull/16200/head * [new ref] refs/pull/16202/head -> refs/pull/16202/head * [new ref] refs/pull/16203/head -> refs/pull/16203/head * [new ref] refs/pull/16204/head -> refs/pull/16204/head * [new ref] refs/pull/16205/head -> refs/pull/16205/head * [new ref] refs/pull/16206/head -> refs/pull/16206/head * [new ref] refs/pull/16207/head -> refs/pull/16207/head * [new ref] refs/pull/16208/head -> refs/pull/16208/head * [new ref] refs/pull/16210/head -> refs/pull/16210/head * [new ref] refs/pull/16211/head -> refs/pull/16211/head * [new ref] refs/pull/16212/head -> refs/pull/16212/head * [new ref] refs/pull/16213/head -> refs/pull/16213/head * [new ref] refs/pull/16215/head -> refs/pull/16215/head * [new ref] refs/pull/16217/head -> refs/pull/16217/head * [new ref] refs/pull/16219/head -> refs/pull/16219/head * [new ref] refs/pull/16220/head -> refs/pull/16220/head * [new ref] refs/pull/16221/head -> refs/pull/16221/head * [new ref] refs/pull/16222/head -> refs/pull/16222/head * [new ref] refs/pull/16223/head -> refs/pull/16223/head * [new ref] refs/pull/16224/head -> refs/pull/16224/head * [new ref] refs/pull/16225/head -> refs/pull/16225/head * [new ref] refs/pull/16226/head -> refs/pull/16226/head * [new ref] refs/pull/16227/head -> refs/pull/16227/head * [new ref] refs/pull/16228/head -> refs/pull/16228/head * [new ref] refs/pull/16230/head -> refs/pull/16230/head * [new ref] refs/pull/16231/head -> refs/pull/16231/head * [new ref] refs/pull/16233/head -> refs/pull/16233/head * [new ref] refs/pull/16234/head -> refs/pull/16234/head * [new ref] refs/pull/16235/head -> refs/pull/16235/head * [new ref] refs/pull/16238/head -> refs/pull/16238/head * [new ref] refs/pull/16239/head -> refs/pull/16239/head * [new ref] refs/pull/16240/head -> refs/pull/16240/head * [new ref] refs/pull/16241/head -> refs/pull/16241/head * [new ref] refs/pull/16242/head -> refs/pull/16242/head * [new ref] refs/pull/16243/head -> refs/pull/16243/head * [new ref] refs/pull/16244/head -> refs/pull/16244/head * [new ref] refs/pull/16245/head -> refs/pull/16245/head * [new ref] refs/pull/16247/head -> refs/pull/16247/head * [new ref] refs/pull/16248/head -> refs/pull/16248/head * [new ref] refs/pull/16251/head -> refs/pull/16251/head * [new ref] refs/pull/16252/head -> refs/pull/16252/head * [new ref] refs/pull/16256/head -> refs/pull/16256/head * [new ref] refs/pull/16257/head -> refs/pull/16257/head * [new ref] refs/pull/16258/head -> refs/pull/16258/head * [new ref] refs/pull/16260/head -> refs/pull/16260/head * [new ref] refs/pull/16261/head -> refs/pull/16261/head * [new ref] refs/pull/16262/head -> refs/pull/16262/head * [new ref] refs/pull/16263/head -> refs/pull/16263/head * [new ref] refs/pull/16265/head -> refs/pull/16265/head * [new ref] refs/pull/16266/head -> refs/pull/16266/head * [new ref] refs/pull/16268/head -> refs/pull/16268/head * [new ref] refs/pull/16270/head -> refs/pull/16270/head * [new ref] refs/pull/16271/head -> refs/pull/16271/head * [new ref] refs/pull/16272/head -> refs/pull/16272/head * [new ref] refs/pull/16273/head -> refs/pull/16273/head * [new ref] refs/pull/16274/head -> refs/pull/16274/head * [new ref] refs/pull/16275/head -> refs/pull/16275/head * [new ref] refs/pull/16277/head -> refs/pull/16277/head * [new ref] refs/pull/16278/head -> refs/pull/16278/head * [new ref] refs/pull/16279/head -> refs/pull/16279/head * [new ref] refs/pull/16281/head -> refs/pull/16281/head * [new ref] refs/pull/16282/head -> refs/pull/16282/head * [new ref] refs/pull/16283/head -> refs/pull/16283/head * [new ref] refs/pull/16284/head -> refs/pull/16284/head * [new ref] refs/pull/16286/head -> refs/pull/16286/head * [new ref] refs/pull/16287/head -> refs/pull/16287/head * [new ref] refs/pull/16289/head -> refs/pull/16289/head * [new ref] refs/pull/16291/head -> refs/pull/16291/head * [new ref] refs/pull/16292/head -> refs/pull/16292/head * [new ref] refs/pull/16293/head -> refs/pull/16293/head * [new ref] refs/pull/16294/head -> refs/pull/16294/head * [new ref] refs/pull/16295/head -> refs/pull/16295/head * [new ref] refs/pull/16296/head -> refs/pull/16296/head * [new ref] refs/pull/16297/head -> refs/pull/16297/head * [new ref] refs/pull/16299/head -> refs/pull/16299/head * [new ref] refs/pull/16300/head -> refs/pull/16300/head * [new ref] refs/pull/16301/head -> refs/pull/16301/head * [new ref] refs/pull/16302/head -> refs/pull/16302/head * [new ref] refs/pull/16303/head -> refs/pull/16303/head * [new ref] refs/pull/16305/head -> refs/pull/16305/head * [new ref] refs/pull/16306/head -> refs/pull/16306/head * [new ref] refs/pull/16307/head -> refs/pull/16307/head * [new ref] refs/pull/16308/head -> refs/pull/16308/head * [new ref] refs/pull/16310/head -> refs/pull/16310/head * [new ref] refs/pull/16311/head -> refs/pull/16311/head * [new ref] refs/pull/16312/head -> refs/pull/16312/head * [new ref] refs/pull/16313/head -> refs/pull/16313/head * [new ref] refs/pull/16314/head -> refs/pull/16314/head * [new ref] refs/pull/16315/head -> refs/pull/16315/head * [new ref] refs/pull/16316/head -> refs/pull/16316/head * [new ref] refs/pull/16317/head -> refs/pull/16317/head * [new ref] refs/pull/16318/head -> refs/pull/16318/head * [new ref] refs/pull/16319/head -> refs/pull/16319/head * [new ref] refs/pull/16320/head -> refs/pull/16320/head * [new ref] refs/pull/16321/head -> refs/pull/16321/head * [new ref] refs/pull/16322/head -> refs/pull/16322/head * [new ref] refs/pull/16323/head -> refs/pull/16323/head * [new ref] refs/pull/16324/head -> refs/pull/16324/head * [new ref] refs/pull/16325/head -> refs/pull/16325/head * [new ref] refs/pull/16327/head -> refs/pull/16327/head * [new ref] refs/pull/16329/head -> refs/pull/16329/head * [new ref] refs/pull/16330/head -> refs/pull/16330/head * [new ref] refs/pull/16331/head -> refs/pull/16331/head * [new ref] refs/pull/16332/head -> refs/pull/16332/head * [new ref] refs/pull/16334/head -> refs/pull/16334/head * [new ref] refs/pull/16335/head -> refs/pull/16335/head * [new ref] refs/pull/16336/head -> refs/pull/16336/head * [new ref] refs/pull/16337/head -> refs/pull/16337/head * [new ref] refs/pull/16338/head -> refs/pull/16338/head * [new ref] refs/pull/16339/head -> refs/pull/16339/head * [new ref] refs/pull/16340/head -> refs/pull/16340/head * [new ref] refs/pull/16342/head -> refs/pull/16342/head * [new ref] refs/pull/16343/head -> refs/pull/16343/head * [new ref] refs/pull/16344/head -> refs/pull/16344/head * [new ref] refs/pull/16345/head -> refs/pull/16345/head * [new ref] refs/pull/16346/head -> refs/pull/16346/head * [new ref] refs/pull/16347/head -> refs/pull/16347/head * [new ref] refs/pull/16348/head -> refs/pull/16348/head * [new ref] refs/pull/16349/head -> refs/pull/16349/head * [new ref] refs/pull/16350/head -> refs/pull/16350/head * [new ref] refs/pull/16351/head -> refs/pull/16351/head * [new ref] refs/pull/16352/head -> refs/pull/16352/head * [new ref] refs/pull/16353/head -> refs/pull/16353/head * [new ref] refs/pull/16354/head -> refs/pull/16354/head * [new ref] refs/pull/16355/head -> refs/pull/16355/head * [new ref] refs/pull/16356/head -> refs/pull/16356/head * [new ref] refs/pull/16358/head -> refs/pull/16358/head * [new ref] refs/pull/16359/head -> refs/pull/16359/head * [new ref] refs/pull/16360/head -> refs/pull/16360/head * [new ref] refs/pull/16362/head -> refs/pull/16362/head * [new ref] refs/pull/16363/head -> refs/pull/16363/head * [new ref] refs/pull/16365/head -> refs/pull/16365/head * [new ref] refs/pull/16366/head -> refs/pull/16366/head * [new ref] refs/pull/16367/head -> refs/pull/16367/head * [new ref] refs/pull/16368/head -> refs/pull/16368/head * [new ref] refs/pull/16369/head -> refs/pull/16369/head * [new ref] refs/pull/16370/head -> refs/pull/16370/head * [new ref] refs/pull/16372/head -> refs/pull/16372/head * [new ref] refs/pull/16373/head -> refs/pull/16373/head * [new ref] refs/pull/16374/head -> refs/pull/16374/head * [new ref] refs/pull/16376/head -> refs/pull/16376/head * [new ref] refs/pull/16377/head -> refs/pull/16377/head * [new ref] refs/pull/16381/head -> refs/pull/16381/head * [new ref] refs/pull/16382/head -> refs/pull/16382/head * [new ref] refs/pull/16383/head -> refs/pull/16383/head * [new ref] refs/pull/16385/head -> refs/pull/16385/head * [new ref] refs/pull/16386/head -> refs/pull/16386/head * [new ref] refs/pull/16387/head -> refs/pull/16387/head * [new ref] refs/pull/16388/head -> refs/pull/16388/head * [new ref] refs/pull/16391/head -> refs/pull/16391/head * [new ref] refs/pull/16392/head -> refs/pull/16392/head * [new ref] refs/pull/16393/head -> refs/pull/16393/head * [new ref] refs/pull/16394/head -> refs/pull/16394/head * [new ref] refs/pull/16397/head -> refs/pull/16397/head * [new ref] refs/pull/16398/head -> refs/pull/16398/head * [new ref] refs/pull/16400/head -> refs/pull/16400/head * [new ref] refs/pull/16401/head -> refs/pull/16401/head * [new ref] refs/pull/16402/head -> refs/pull/16402/head * [new ref] refs/pull/16403/head -> refs/pull/16403/head * [new ref] refs/pull/16404/head -> refs/pull/16404/head * [new ref] refs/pull/16406/head -> refs/pull/16406/head * [new ref] refs/pull/16407/head -> refs/pull/16407/head * [new ref] refs/pull/16408/head -> refs/pull/16408/head * [new ref] refs/pull/16409/head -> refs/pull/16409/head * [new ref] refs/pull/16410/head -> refs/pull/16410/head * [new ref] refs/pull/16411/head -> refs/pull/16411/head * [new ref] refs/pull/16413/head -> refs/pull/16413/head * [new ref] refs/pull/16415/head -> refs/pull/16415/head * [new ref] refs/pull/16416/head -> refs/pull/16416/head * [new ref] refs/pull/16417/head -> refs/pull/16417/head * [new ref] refs/pull/16419/head -> refs/pull/16419/head * [new ref] refs/pull/16420/head -> refs/pull/16420/head * [new ref] refs/pull/16421/head -> refs/pull/16421/head * [new ref] refs/pull/16422/head -> refs/pull/16422/head * [new ref] refs/pull/16423/head -> refs/pull/16423/head * [new ref] refs/pull/16424/head -> refs/pull/16424/head * [new ref] refs/pull/16425/head -> refs/pull/16425/head * [new ref] refs/pull/16426/head -> refs/pull/16426/head * [new ref] refs/pull/16427/head -> refs/pull/16427/head * [new ref] refs/pull/16428/head -> refs/pull/16428/head * [new ref] refs/pull/16429/head -> refs/pull/16429/head * [new ref] refs/pull/16430/head -> refs/pull/16430/head * [new ref] refs/pull/16431/head -> refs/pull/16431/head * [new ref] refs/pull/16434/head -> refs/pull/16434/head * [new ref] refs/pull/16435/head -> refs/pull/16435/head * [new ref] refs/pull/16436/head -> refs/pull/16436/head * [new ref] refs/pull/16438/head -> refs/pull/16438/head * [new ref] refs/pull/16440/head -> refs/pull/16440/head * [new ref] refs/pull/16441/head -> refs/pull/16441/head * [new ref] refs/pull/16442/head -> refs/pull/16442/head * [new ref] refs/pull/16443/head -> refs/pull/16443/head * [new ref] refs/pull/16444/head -> refs/pull/16444/head * [new ref] refs/pull/16446/head -> refs/pull/16446/head * [new ref] refs/pull/16447/head -> refs/pull/16447/head * [new ref] refs/pull/16448/head -> refs/pull/16448/head * [new ref] refs/pull/16449/head -> refs/pull/16449/head * [new ref] refs/pull/16450/head -> refs/pull/16450/head * [new ref] refs/pull/16451/head -> refs/pull/16451/head * [new ref] refs/pull/16452/head -> refs/pull/16452/head * [new ref] refs/pull/16453/head -> refs/pull/16453/head * [new ref] refs/pull/16454/head -> refs/pull/16454/head * [new ref] refs/pull/16455/head -> refs/pull/16455/head * [new ref] refs/pull/16456/head -> refs/pull/16456/head * [new ref] refs/pull/16457/head -> refs/pull/16457/head * [new ref] refs/pull/16458/head -> refs/pull/16458/head * [new ref] refs/pull/16459/head -> refs/pull/16459/head * [new ref] refs/pull/16460/head -> refs/pull/16460/head * [new ref] refs/pull/16461/head -> refs/pull/16461/head * [new ref] refs/pull/16463/head -> refs/pull/16463/head * [new ref] refs/pull/16464/head -> refs/pull/16464/head * [new ref] refs/pull/16465/head -> refs/pull/16465/head * [new ref] refs/pull/16466/head -> refs/pull/16466/head * [new ref] refs/pull/16467/head -> refs/pull/16467/head * [new ref] refs/pull/16469/head -> refs/pull/16469/head * [new ref] refs/pull/16471/head -> refs/pull/16471/head * [new ref] refs/pull/16472/head -> refs/pull/16472/head * [new ref] refs/pull/16473/head -> refs/pull/16473/head * [new ref] refs/pull/16475/head -> refs/pull/16475/head * [new ref] refs/pull/16476/head -> refs/pull/16476/head * [new ref] refs/pull/16477/head -> refs/pull/16477/head * [new ref] refs/pull/16478/head -> refs/pull/16478/head * [new ref] refs/pull/16479/head -> refs/pull/16479/head * [new ref] refs/pull/16480/head -> refs/pull/16480/head * [new ref] refs/pull/16481/head -> refs/pull/16481/head * [new ref] refs/pull/16482/head -> refs/pull/16482/head * [new ref] refs/pull/16484/head -> refs/pull/16484/head * [new ref] refs/pull/16485/head -> refs/pull/16485/head * [new ref] refs/pull/16487/head -> refs/pull/16487/head * [new ref] refs/pull/16488/head -> refs/pull/16488/head * [new ref] refs/pull/16489/head -> refs/pull/16489/head * [new ref] refs/pull/16490/head -> refs/pull/16490/head * [new ref] refs/pull/16491/head -> refs/pull/16491/head * [new ref] refs/pull/16492/head -> refs/pull/16492/head * [new ref] refs/pull/16493/head -> refs/pull/16493/head * [new ref] refs/pull/16494/head -> refs/pull/16494/head * [new ref] refs/pull/16495/head -> refs/pull/16495/head * [new ref] refs/pull/16496/head -> refs/pull/16496/head * [new ref] refs/pull/16498/head -> refs/pull/16498/head * [new ref] refs/pull/16499/head -> refs/pull/16499/head * [new ref] refs/pull/16500/head -> refs/pull/16500/head * [new ref] refs/pull/16501/head -> refs/pull/16501/head * [new ref] refs/pull/16502/head -> refs/pull/16502/head * [new ref] refs/pull/16503/head -> refs/pull/16503/head * [new ref] refs/pull/16504/head -> refs/pull/16504/head * [new ref] refs/pull/16505/head -> refs/pull/16505/head * [new ref] refs/pull/16506/head -> refs/pull/16506/head * [new ref] refs/pull/16507/head -> refs/pull/16507/head * [new ref] refs/pull/16508/head -> refs/pull/16508/head * [new ref] refs/pull/16509/head -> refs/pull/16509/head * [new ref] refs/pull/16510/head -> refs/pull/16510/head * [new ref] refs/pull/16511/head -> refs/pull/16511/head * [new ref] refs/pull/16512/head -> refs/pull/16512/head * [new ref] refs/pull/16513/head -> refs/pull/16513/head * [new ref] refs/pull/16514/head -> refs/pull/16514/head * [new ref] refs/pull/16515/head -> refs/pull/16515/head * [new ref] refs/pull/16516/head -> refs/pull/16516/head * [new ref] refs/pull/16517/head -> refs/pull/16517/head * [new ref] refs/pull/16518/head -> refs/pull/16518/head * [new ref] refs/pull/16519/head -> refs/pull/16519/head * [new ref] refs/pull/16520/head -> refs/pull/16520/head * [new ref] refs/pull/16521/head -> refs/pull/16521/head * [new ref] refs/pull/16522/head -> refs/pull/16522/head * [new ref] refs/pull/16523/head -> refs/pull/16523/head * [new ref] refs/pull/16524/head -> refs/pull/16524/head * [new ref] refs/pull/16525/head -> refs/pull/16525/head * [new ref] refs/pull/16527/head -> refs/pull/16527/head * [new ref] refs/pull/16528/head -> refs/pull/16528/head * [new ref] refs/pull/16530/head -> refs/pull/16530/head * [new ref] refs/pull/16532/head -> refs/pull/16532/head * [new ref] refs/pull/16534/head -> refs/pull/16534/head * [new ref] refs/pull/16536/head -> refs/pull/16536/head * [new ref] refs/pull/16537/head -> refs/pull/16537/head * [new ref] refs/pull/16538/head -> refs/pull/16538/head * [new ref] refs/pull/16539/head -> refs/pull/16539/head * [new ref] refs/pull/16540/head -> refs/pull/16540/head * [new ref] refs/pull/16541/head -> refs/pull/16541/head * [new ref] refs/pull/16542/head -> refs/pull/16542/head * [new ref] refs/pull/16543/head -> refs/pull/16543/head * [new ref] refs/pull/16543/merge -> refs/pull/16543/merge * [new ref] refs/pull/16544/head -> refs/pull/16544/head * [new ref] refs/pull/16545/head -> refs/pull/16545/head * [new ref] refs/pull/16546/head -> refs/pull/16546/head * [new ref] refs/pull/16547/head -> refs/pull/16547/head * [new ref] refs/pull/16548/head -> refs/pull/16548/head * [new ref] refs/pull/16550/head -> refs/pull/16550/head * [new ref] refs/pull/16552/head -> refs/pull/16552/head * [new ref] refs/pull/16553/head -> refs/pull/16553/head * [new ref] refs/pull/16555/head -> refs/pull/16555/head * [new ref] refs/pull/16557/head -> refs/pull/16557/head * [new ref] refs/pull/16558/head -> refs/pull/16558/head * [new ref] refs/pull/16559/head -> refs/pull/16559/head * [new ref] refs/pull/16560/head -> refs/pull/16560/head * [new ref] refs/pull/16561/head -> refs/pull/16561/head * [new ref] refs/pull/16563/head -> refs/pull/16563/head * [new ref] refs/pull/16564/head -> refs/pull/16564/head * [new ref] refs/pull/16565/head -> refs/pull/16565/head * [new ref] refs/pull/16566/head -> refs/pull/16566/head * [new ref] refs/pull/16567/head -> refs/pull/16567/head * [new ref] refs/pull/16568/head -> refs/pull/16568/head * [new ref] refs/pull/16569/head -> refs/pull/16569/head * [new ref] refs/pull/16570/head -> refs/pull/16570/head * [new ref] refs/pull/16571/head -> refs/pull/16571/head * [new ref] refs/pull/16572/head -> refs/pull/16572/head * [new ref] refs/pull/16573/head -> refs/pull/16573/head * [new ref] refs/pull/16574/head -> refs/pull/16574/head * [new ref] refs/pull/16576/head -> refs/pull/16576/head * [new ref] refs/pull/16577/head -> refs/pull/16577/head * [new ref] refs/pull/16578/head -> refs/pull/16578/head * [new ref] refs/pull/16579/head -> refs/pull/16579/head * [new ref] refs/pull/16580/head -> refs/pull/16580/head * [new ref] refs/pull/16581/head -> refs/pull/16581/head * [new ref] refs/pull/16582/head -> refs/pull/16582/head * [new ref] refs/pull/16583/head -> refs/pull/16583/head * [new ref] refs/pull/16584/head -> refs/pull/16584/head * [new ref] refs/pull/16585/head -> refs/pull/16585/head * [new ref] refs/pull/16586/head -> refs/pull/16586/head * [new ref] refs/pull/16587/head -> refs/pull/16587/head * [new ref] refs/pull/16588/head -> refs/pull/16588/head * [new ref] refs/pull/16589/head -> refs/pull/16589/head * [new ref] refs/pull/16590/head -> refs/pull/16590/head * [new ref] refs/pull/16591/head -> refs/pull/16591/head * [new ref] refs/pull/16592/head -> refs/pull/16592/head * [new ref] refs/pull/16593/head -> refs/pull/16593/head * [new ref] refs/pull/16594/head -> refs/pull/16594/head * [new ref] refs/pull/16595/head -> refs/pull/16595/head * [new ref] refs/pull/16596/head -> refs/pull/16596/head * [new ref] refs/pull/16598/head -> refs/pull/16598/head * [new ref] refs/pull/16599/head -> refs/pull/16599/head * [new ref] refs/pull/16600/head -> refs/pull/16600/head * [new ref] refs/pull/16601/head -> refs/pull/16601/head * [new ref] refs/pull/16602/head -> refs/pull/16602/head * [new ref] refs/pull/16604/head -> refs/pull/16604/head * [new ref] refs/pull/16605/head -> refs/pull/16605/head * [new ref] refs/pull/16606/head -> refs/pull/16606/head * [new ref] refs/pull/16607/head -> refs/pull/16607/head * [new ref] refs/pull/16608/head -> refs/pull/16608/head * [new ref] refs/pull/16609/head -> refs/pull/16609/head * [new ref] refs/pull/16610/head -> refs/pull/16610/head * [new ref] refs/pull/16611/head -> refs/pull/16611/head * [new ref] refs/pull/16612/head -> refs/pull/16612/head * [new ref] refs/pull/16613/head -> refs/pull/16613/head * [new ref] refs/pull/16614/head -> refs/pull/16614/head * [new ref] refs/pull/16615/head -> refs/pull/16615/head * [new ref] refs/pull/16616/head -> refs/pull/16616/head * [new ref] refs/pull/16617/head -> refs/pull/16617/head * [new ref] refs/pull/16618/head -> refs/pull/16618/head * [new ref] refs/pull/16619/head -> refs/pull/16619/head * [new ref] refs/pull/16620/head -> refs/pull/16620/head * [new ref] refs/pull/16621/head -> refs/pull/16621/head * [new ref] refs/pull/16622/head -> refs/pull/16622/head * [new ref] refs/pull/16623/head -> refs/pull/16623/head * [new ref] refs/pull/16625/head -> refs/pull/16625/head * [new ref] refs/pull/16626/head -> refs/pull/16626/head * [new ref] refs/pull/16627/head -> refs/pull/16627/head * [new ref] refs/pull/16628/head -> refs/pull/16628/head * [new ref] refs/pull/16629/head -> refs/pull/16629/head * [new ref] refs/pull/16630/head -> refs/pull/16630/head * [new ref] refs/pull/16632/head -> refs/pull/16632/head * [new ref] refs/pull/16634/head -> refs/pull/16634/head * [new ref] refs/pull/16635/head -> refs/pull/16635/head * [new ref] refs/pull/16636/head -> refs/pull/16636/head * [new ref] refs/pull/16639/head -> refs/pull/16639/head * [new ref] refs/pull/16640/head -> refs/pull/16640/head * [new ref] refs/pull/16641/head -> refs/pull/16641/head * [new ref] refs/pull/16642/head -> refs/pull/16642/head * [new ref] refs/pull/16643/head -> refs/pull/16643/head * [new ref] refs/pull/16643/merge -> refs/pull/16643/merge * [new ref] refs/pull/16644/head -> refs/pull/16644/head * [new ref] refs/pull/16646/head -> refs/pull/16646/head * [new ref] refs/pull/16647/head -> refs/pull/16647/head * [new ref] refs/pull/16648/head -> refs/pull/16648/head * [new ref] refs/pull/16649/head -> refs/pull/16649/head * [new ref] refs/pull/16650/head -> refs/pull/16650/head * [new ref] refs/pull/16651/head -> refs/pull/16651/head * [new ref] refs/pull/16652/head -> refs/pull/16652/head * [new ref] refs/pull/16653/head -> refs/pull/16653/head * [new ref] refs/pull/16655/head -> refs/pull/16655/head * [new ref] refs/pull/16656/head -> refs/pull/16656/head * [new ref] refs/pull/16657/head -> refs/pull/16657/head * [new ref] refs/pull/16658/head -> refs/pull/16658/head * [new ref] refs/pull/16659/head -> refs/pull/16659/head * [new ref] refs/pull/16660/head -> refs/pull/16660/head * [new ref] refs/pull/16662/head -> refs/pull/16662/head * [new ref] refs/pull/16663/head -> refs/pull/16663/head * [new ref] refs/pull/16664/head -> refs/pull/16664/head * [new ref] refs/pull/16665/head -> refs/pull/16665/head * [new ref] refs/pull/16666/head -> refs/pull/16666/head * [new ref] refs/pull/16667/head -> refs/pull/16667/head * [new ref] refs/pull/16668/head -> refs/pull/16668/head * [new ref] refs/pull/16669/head -> refs/pull/16669/head * [new ref] refs/pull/16670/head -> refs/pull/16670/head * [new ref] refs/pull/16671/head -> refs/pull/16671/head * [new ref] refs/pull/16672/head -> refs/pull/16672/head * [new ref] refs/pull/16673/head -> refs/pull/16673/head * [new ref] refs/pull/16674/head -> refs/pull/16674/head * [new ref] refs/pull/16677/head -> refs/pull/16677/head * [new ref] refs/pull/16678/head -> refs/pull/16678/head * [new ref] refs/pull/16679/head -> refs/pull/16679/head * [new ref] refs/pull/16681/head -> refs/pull/16681/head * [new ref] refs/pull/16682/head -> refs/pull/16682/head * [new ref] refs/pull/16683/head -> refs/pull/16683/head * [new ref] refs/pull/16684/head -> refs/pull/16684/head * [new ref] refs/pull/16685/head -> refs/pull/16685/head * [new ref] refs/pull/16687/head -> refs/pull/16687/head * [new ref] refs/pull/16688/head -> refs/pull/16688/head * [new ref] refs/pull/16689/head -> refs/pull/16689/head * [new ref] refs/pull/16690/head -> refs/pull/16690/head * [new ref] refs/pull/16691/head -> refs/pull/16691/head * [new ref] refs/pull/16694/head -> refs/pull/16694/head * [new ref] refs/pull/16695/head -> refs/pull/16695/head * [new ref] refs/pull/16696/head -> refs/pull/16696/head * [new ref] refs/pull/16697/head -> refs/pull/16697/head * [new ref] refs/pull/16698/head -> refs/pull/16698/head * [new ref] refs/pull/16699/head -> refs/pull/16699/head * [new ref] refs/pull/16700/head -> refs/pull/16700/head * [new ref] refs/pull/16701/head -> refs/pull/16701/head * [new ref] refs/pull/16703/head -> refs/pull/16703/head * [new ref] refs/pull/16704/head -> refs/pull/16704/head * [new ref] refs/pull/16705/head -> refs/pull/16705/head * [new ref] refs/pull/16708/head -> refs/pull/16708/head * [new ref] refs/pull/16709/head -> refs/pull/16709/head * [new ref] refs/pull/16710/head -> refs/pull/16710/head * [new ref] refs/pull/16711/head -> refs/pull/16711/head * [new ref] refs/pull/16712/head -> refs/pull/16712/head * [new ref] refs/pull/16713/head -> refs/pull/16713/head * [new ref] refs/pull/16714/head -> refs/pull/16714/head * [new ref] refs/pull/16716/head -> refs/pull/16716/head * [new ref] refs/pull/16717/head -> refs/pull/16717/head * [new ref] refs/pull/16719/head -> refs/pull/16719/head * [new ref] refs/pull/16720/head -> refs/pull/16720/head * [new ref] refs/pull/16722/head -> refs/pull/16722/head * [new ref] refs/pull/16723/head -> refs/pull/16723/head * [new ref] refs/pull/16724/head -> refs/pull/16724/head * [new ref] refs/pull/16726/head -> refs/pull/16726/head * [new ref] refs/pull/16727/head -> refs/pull/16727/head * [new ref] refs/pull/16728/head -> refs/pull/16728/head * [new ref] refs/pull/16729/head -> refs/pull/16729/head * [new ref] refs/pull/16731/head -> refs/pull/16731/head * [new ref] refs/pull/16733/head -> refs/pull/16733/head * [new ref] refs/pull/16734/head -> refs/pull/16734/head * [new ref] refs/pull/16735/head -> refs/pull/16735/head * [new ref] refs/pull/16736/head -> refs/pull/16736/head * [new ref] refs/pull/16737/head -> refs/pull/16737/head * [new ref] refs/pull/16738/head -> refs/pull/16738/head * [new ref] refs/pull/16739/head -> refs/pull/16739/head * [new ref] refs/pull/16740/head -> refs/pull/16740/head * [new ref] refs/pull/16741/head -> refs/pull/16741/head * [new ref] refs/pull/16742/head -> refs/pull/16742/head * [new ref] refs/pull/16743/head -> refs/pull/16743/head * [new ref] refs/pull/16744/head -> refs/pull/16744/head * [new ref] refs/pull/16745/head -> refs/pull/16745/head * [new ref] refs/pull/16746/head -> refs/pull/16746/head * [new ref] refs/pull/16747/head -> refs/pull/16747/head * [new ref] refs/pull/16748/head -> refs/pull/16748/head * [new ref] refs/pull/16749/head -> refs/pull/16749/head * [new ref] refs/pull/16750/head -> refs/pull/16750/head * [new ref] refs/pull/16751/head -> refs/pull/16751/head * [new ref] refs/pull/16753/head -> refs/pull/16753/head * [new ref] refs/pull/16754/head -> refs/pull/16754/head * [new ref] refs/pull/16755/head -> refs/pull/16755/head * [new ref] refs/pull/16756/head -> refs/pull/16756/head * [new ref] refs/pull/16757/head -> refs/pull/16757/head * [new ref] refs/pull/16758/head -> refs/pull/16758/head * [new ref] refs/pull/16759/head -> refs/pull/16759/head * [new ref] refs/pull/16760/head -> refs/pull/16760/head * [new ref] refs/pull/16761/head -> refs/pull/16761/head * [new ref] refs/pull/16762/head -> refs/pull/16762/head * [new ref] refs/pull/16763/head -> refs/pull/16763/head * [new ref] refs/pull/16764/head -> refs/pull/16764/head * [new ref] refs/pull/16765/head -> refs/pull/16765/head * [new ref] refs/pull/16766/head -> refs/pull/16766/head * [new ref] refs/pull/16767/head -> refs/pull/16767/head * [new ref] refs/pull/16768/head -> refs/pull/16768/head * [new ref] refs/pull/16769/head -> refs/pull/16769/head * [new ref] refs/pull/16770/head -> refs/pull/16770/head * [new ref] refs/pull/16771/head -> refs/pull/16771/head * [new ref] refs/pull/16772/head -> refs/pull/16772/head * [new ref] refs/pull/16773/head -> refs/pull/16773/head * [new ref] refs/pull/16774/head -> refs/pull/16774/head * [new ref] refs/pull/16775/head -> refs/pull/16775/head * [new ref] refs/pull/16777/head -> refs/pull/16777/head * [new ref] refs/pull/16778/head -> refs/pull/16778/head * [new ref] refs/pull/16779/head -> refs/pull/16779/head * [new ref] refs/pull/16781/head -> refs/pull/16781/head * [new ref] refs/pull/16782/head -> refs/pull/16782/head * [new ref] refs/pull/16783/head -> refs/pull/16783/head * [new ref] refs/pull/16784/head -> refs/pull/16784/head * [new ref] refs/pull/16785/head -> refs/pull/16785/head * [new ref] refs/pull/16786/head -> refs/pull/16786/head * [new ref] refs/pull/16787/head -> refs/pull/16787/head * [new ref] refs/pull/16789/head -> refs/pull/16789/head * [new ref] refs/pull/16790/head -> refs/pull/16790/head * [new ref] refs/pull/16791/head -> refs/pull/16791/head * [new ref] refs/pull/16792/head -> refs/pull/16792/head * [new ref] refs/pull/16793/head -> refs/pull/16793/head * [new ref] refs/pull/16796/head -> refs/pull/16796/head * [new ref] refs/pull/16797/head -> refs/pull/16797/head * [new ref] refs/pull/16798/head -> refs/pull/16798/head * [new ref] refs/pull/16800/head -> refs/pull/16800/head * [new ref] refs/pull/16801/head -> refs/pull/16801/head * [new ref] refs/pull/16802/head -> refs/pull/16802/head * [new ref] refs/pull/16803/head -> refs/pull/16803/head * [new ref] refs/pull/16805/head -> refs/pull/16805/head * [new ref] refs/pull/16807/head -> refs/pull/16807/head * [new ref] refs/pull/16808/head -> refs/pull/16808/head * [new ref] refs/pull/16809/head -> refs/pull/16809/head * [new ref] refs/pull/16810/head -> refs/pull/16810/head * [new ref] refs/pull/16811/head -> refs/pull/16811/head * [new ref] refs/pull/16812/head -> refs/pull/16812/head * [new ref] refs/pull/16813/head -> refs/pull/16813/head * [new ref] refs/pull/16814/head -> refs/pull/16814/head * [new ref] refs/pull/16816/head -> refs/pull/16816/head * [new ref] refs/pull/16817/head -> refs/pull/16817/head * [new ref] refs/pull/16818/head -> refs/pull/16818/head * [new ref] refs/pull/16819/head -> refs/pull/16819/head * [new ref] refs/pull/16820/head -> refs/pull/16820/head * [new ref] refs/pull/16821/head -> refs/pull/16821/head * [new ref] refs/pull/16822/head -> refs/pull/16822/head * [new ref] refs/pull/16823/head -> refs/pull/16823/head * [new ref] refs/pull/16824/head -> refs/pull/16824/head * [new ref] refs/pull/16825/head -> refs/pull/16825/head * [new ref] refs/pull/16826/head -> refs/pull/16826/head * [new ref] refs/pull/16827/head -> refs/pull/16827/head * [new ref] refs/pull/16828/head -> refs/pull/16828/head * [new ref] refs/pull/16830/head -> refs/pull/16830/head * [new ref] refs/pull/16831/head -> refs/pull/16831/head * [new ref] refs/pull/16832/head -> refs/pull/16832/head * [new ref] refs/pull/16833/head -> refs/pull/16833/head * [new ref] refs/pull/16834/head -> refs/pull/16834/head * [new ref] refs/pull/16835/head -> refs/pull/16835/head * [new ref] refs/pull/16836/head -> refs/pull/16836/head * [new ref] refs/pull/16837/head -> refs/pull/16837/head * [new ref] refs/pull/16840/head -> refs/pull/16840/head * [new ref] refs/pull/16841/head -> refs/pull/16841/head * [new ref] refs/pull/16845/head -> refs/pull/16845/head * [new ref] refs/pull/16847/head -> refs/pull/16847/head * [new ref] refs/pull/16848/head -> refs/pull/16848/head * [new ref] refs/pull/16849/head -> refs/pull/16849/head * [new ref] refs/pull/16850/head -> refs/pull/16850/head * [new ref] refs/pull/16851/head -> refs/pull/16851/head * [new ref] refs/pull/16852/head -> refs/pull/16852/head * [new ref] refs/pull/16856/head -> refs/pull/16856/head * [new ref] refs/pull/16858/head -> refs/pull/16858/head * [new ref] refs/pull/16859/head -> refs/pull/16859/head * [new ref] refs/pull/16860/head -> refs/pull/16860/head * [new ref] refs/pull/16861/head -> refs/pull/16861/head * [new ref] refs/pull/16862/head -> refs/pull/16862/head * [new ref] refs/pull/16863/head -> refs/pull/16863/head * [new ref] refs/pull/16864/head -> refs/pull/16864/head * [new ref] refs/pull/16865/head -> refs/pull/16865/head * [new ref] refs/pull/16866/head -> refs/pull/16866/head * [new ref] refs/pull/16867/head -> refs/pull/16867/head * [new ref] refs/pull/16868/head -> refs/pull/16868/head * [new ref] refs/pull/16870/head -> refs/pull/16870/head * [new ref] refs/pull/16871/head -> refs/pull/16871/head * [new ref] refs/pull/16872/head -> refs/pull/16872/head * [new ref] refs/pull/16873/head -> refs/pull/16873/head * [new ref] refs/pull/16875/head -> refs/pull/16875/head * [new ref] refs/pull/16876/head -> refs/pull/16876/head * [new ref] refs/pull/16877/head -> refs/pull/16877/head * [new ref] refs/pull/16878/head -> refs/pull/16878/head * [new ref] refs/pull/16879/head -> refs/pull/16879/head * [new ref] refs/pull/16882/head -> refs/pull/16882/head * [new ref] refs/pull/16883/head -> refs/pull/16883/head * [new ref] refs/pull/16884/head -> refs/pull/16884/head * [new ref] refs/pull/16885/head -> refs/pull/16885/head * [new ref] refs/pull/16886/head -> refs/pull/16886/head * [new ref] refs/pull/16887/head -> refs/pull/16887/head * [new ref] refs/pull/16888/head -> refs/pull/16888/head * [new ref] refs/pull/16889/head -> refs/pull/16889/head * [new ref] refs/pull/16891/head -> refs/pull/16891/head * [new ref] refs/pull/16892/head -> refs/pull/16892/head * [new ref] refs/pull/16894/head -> refs/pull/16894/head * [new ref] refs/pull/16895/head -> refs/pull/16895/head * [new ref] refs/pull/16896/head -> refs/pull/16896/head * [new ref] refs/pull/16898/head -> refs/pull/16898/head * [new ref] refs/pull/16899/head -> refs/pull/16899/head * [new ref] refs/pull/16902/head -> refs/pull/16902/head * [new ref] refs/pull/16903/head -> refs/pull/16903/head * [new ref] refs/pull/16904/head -> refs/pull/16904/head * [new ref] refs/pull/16905/head -> refs/pull/16905/head * [new ref] refs/pull/16906/head -> refs/pull/16906/head * [new ref] refs/pull/16907/head -> refs/pull/16907/head * [new ref] refs/pull/16908/head -> refs/pull/16908/head * [new ref] refs/pull/16909/head -> refs/pull/16909/head * [new ref] refs/pull/16910/head -> refs/pull/16910/head * [new ref] refs/pull/16911/head -> refs/pull/16911/head * [new ref] refs/pull/16912/head -> refs/pull/16912/head * [new ref] refs/pull/16913/head -> refs/pull/16913/head * [new ref] refs/pull/16914/head -> refs/pull/16914/head * [new ref] refs/pull/16916/head -> refs/pull/16916/head * [new ref] refs/pull/16917/head -> refs/pull/16917/head * [new ref] refs/pull/16921/head -> refs/pull/16921/head * [new ref] refs/pull/16922/head -> refs/pull/16922/head * [new ref] refs/pull/16923/head -> refs/pull/16923/head * [new ref] refs/pull/16924/head -> refs/pull/16924/head * [new ref] refs/pull/16928/head -> refs/pull/16928/head * [new ref] refs/pull/16929/head -> refs/pull/16929/head * [new ref] refs/pull/16930/head -> refs/pull/16930/head * [new ref] refs/pull/16931/head -> refs/pull/16931/head * [new ref] refs/pull/16933/head -> refs/pull/16933/head * [new ref] refs/pull/16934/head -> refs/pull/16934/head * [new ref] refs/pull/16936/head -> refs/pull/16936/head * [new ref] refs/pull/16937/head -> refs/pull/16937/head * [new ref] refs/pull/16938/head -> refs/pull/16938/head * [new ref] refs/pull/16939/head -> refs/pull/16939/head * [new ref] refs/pull/16941/head -> refs/pull/16941/head * [new ref] refs/pull/16942/head -> refs/pull/16942/head * [new ref] refs/pull/16943/head -> refs/pull/16943/head * [new ref] refs/pull/16944/head -> refs/pull/16944/head * [new ref] refs/pull/16945/head -> refs/pull/16945/head * [new ref] refs/pull/16948/head -> refs/pull/16948/head * [new ref] refs/pull/16950/head -> refs/pull/16950/head * [new ref] refs/pull/16951/head -> refs/pull/16951/head * [new ref] refs/pull/16952/head -> refs/pull/16952/head * [new ref] refs/pull/16953/head -> refs/pull/16953/head * [new ref] refs/pull/16954/head -> refs/pull/16954/head * [new ref] refs/pull/16957/head -> refs/pull/16957/head * [new ref] refs/pull/16959/head -> refs/pull/16959/head * [new ref] refs/pull/16960/head -> refs/pull/16960/head * [new ref] refs/pull/16961/head -> refs/pull/16961/head * [new ref] refs/pull/16962/head -> refs/pull/16962/head * [new ref] refs/pull/16963/head -> refs/pull/16963/head * [new ref] refs/pull/16964/head -> refs/pull/16964/head * [new ref] refs/pull/16965/head -> refs/pull/16965/head * [new ref] refs/pull/16968/head -> refs/pull/16968/head * [new ref] refs/pull/16969/head -> refs/pull/16969/head * [new ref] refs/pull/16972/head -> refs/pull/16972/head * [new ref] refs/pull/16973/head -> refs/pull/16973/head * [new ref] refs/pull/16973/merge -> refs/pull/16973/merge * [new ref] refs/pull/16975/head -> refs/pull/16975/head * [new ref] refs/pull/16977/head -> refs/pull/16977/head * [new ref] refs/pull/16978/head -> refs/pull/16978/head * [new ref] refs/pull/16979/head -> refs/pull/16979/head * [new ref] refs/pull/16980/head -> refs/pull/16980/head * [new ref] refs/pull/16981/head -> refs/pull/16981/head * [new ref] refs/pull/16982/head -> refs/pull/16982/head * [new ref] refs/pull/16983/head -> refs/pull/16983/head * [new ref] refs/pull/16984/head -> refs/pull/16984/head * [new ref] refs/pull/16985/head -> refs/pull/16985/head * [new ref] refs/pull/16986/head -> refs/pull/16986/head * [new ref] refs/pull/16987/head -> refs/pull/16987/head * [new ref] refs/pull/16988/head -> refs/pull/16988/head * [new ref] refs/pull/16990/head -> refs/pull/16990/head * [new ref] refs/pull/16991/head -> refs/pull/16991/head * [new ref] refs/pull/16992/head -> refs/pull/16992/head * [new ref] refs/pull/16993/head -> refs/pull/16993/head * [new ref] refs/pull/16994/head -> refs/pull/16994/head * [new ref] refs/pull/16995/head -> refs/pull/16995/head * [new ref] refs/pull/16997/head -> refs/pull/16997/head * [new ref] refs/pull/16999/head -> refs/pull/16999/head * [new ref] refs/pull/17001/head -> refs/pull/17001/head * [new ref] refs/pull/17002/head -> refs/pull/17002/head * [new ref] refs/pull/17003/head -> refs/pull/17003/head * [new ref] refs/pull/17005/head -> refs/pull/17005/head * [new ref] refs/pull/17006/head -> refs/pull/17006/head * [new ref] refs/pull/17008/head -> refs/pull/17008/head * [new ref] refs/pull/17009/head -> refs/pull/17009/head * [new ref] refs/pull/17010/head -> refs/pull/17010/head * [new ref] refs/pull/17011/head -> refs/pull/17011/head * [new ref] refs/pull/17012/head -> refs/pull/17012/head * [new ref] refs/pull/17014/head -> refs/pull/17014/head * [new ref] refs/pull/17015/head -> refs/pull/17015/head * [new ref] refs/pull/17017/head -> refs/pull/17017/head * [new ref] refs/pull/17018/head -> refs/pull/17018/head * [new ref] refs/pull/17022/head -> refs/pull/17022/head * [new ref] refs/pull/17024/head -> refs/pull/17024/head * [new ref] refs/pull/17025/head -> refs/pull/17025/head * [new ref] refs/pull/17026/head -> refs/pull/17026/head * [new ref] refs/pull/17027/head -> refs/pull/17027/head * [new ref] refs/pull/17028/head -> refs/pull/17028/head * [new ref] refs/pull/17031/head -> refs/pull/17031/head * [new ref] refs/pull/17033/head -> refs/pull/17033/head * [new ref] refs/pull/17035/head -> refs/pull/17035/head * [new ref] refs/pull/17036/head -> refs/pull/17036/head * [new ref] refs/pull/17037/head -> refs/pull/17037/head * [new ref] refs/pull/17039/head -> refs/pull/17039/head * [new ref] refs/pull/17040/head -> refs/pull/17040/head * [new ref] refs/pull/17041/head -> refs/pull/17041/head * [new ref] refs/pull/17043/head -> refs/pull/17043/head * [new ref] refs/pull/17044/head -> refs/pull/17044/head * [new ref] refs/pull/17046/head -> refs/pull/17046/head * [new ref] refs/pull/17047/head -> refs/pull/17047/head * [new ref] refs/pull/17048/head -> refs/pull/17048/head * [new ref] refs/pull/17049/head -> refs/pull/17049/head * [new ref] refs/pull/17050/head -> refs/pull/17050/head * [new ref] refs/pull/17051/head -> refs/pull/17051/head * [new ref] refs/pull/17053/head -> refs/pull/17053/head * [new ref] refs/pull/17054/head -> refs/pull/17054/head * [new ref] refs/pull/17055/head -> refs/pull/17055/head * [new ref] refs/pull/17056/head -> refs/pull/17056/head * [new ref] refs/pull/17057/head -> refs/pull/17057/head * [new ref] refs/pull/17058/head -> refs/pull/17058/head * [new ref] refs/pull/17059/head -> refs/pull/17059/head * [new ref] refs/pull/17060/head -> refs/pull/17060/head * [new ref] refs/pull/17062/head -> refs/pull/17062/head * [new ref] refs/pull/17063/head -> refs/pull/17063/head * [new ref] refs/pull/17066/head -> refs/pull/17066/head * [new ref] refs/pull/17067/head -> refs/pull/17067/head * [new ref] refs/pull/17068/head -> refs/pull/17068/head * [new ref] refs/pull/17069/head -> refs/pull/17069/head * [new ref] refs/pull/17070/head -> refs/pull/17070/head * [new ref] refs/pull/17071/head -> refs/pull/17071/head * [new ref] refs/pull/17072/head -> refs/pull/17072/head * [new ref] refs/pull/17073/head -> refs/pull/17073/head * [new ref] refs/pull/17074/head -> refs/pull/17074/head * [new ref] refs/pull/17075/head -> refs/pull/17075/head * [new ref] refs/pull/17077/head -> refs/pull/17077/head * [new ref] refs/pull/17080/head -> refs/pull/17080/head * [new ref] refs/pull/17082/head -> refs/pull/17082/head * [new ref] refs/pull/17083/head -> refs/pull/17083/head * [new ref] refs/pull/17086/head -> refs/pull/17086/head * [new ref] refs/pull/17087/head -> refs/pull/17087/head * [new ref] refs/pull/17088/head -> refs/pull/17088/head * [new ref] refs/pull/17089/head -> refs/pull/17089/head * [new ref] refs/pull/17090/head -> refs/pull/17090/head * [new ref] refs/pull/17091/head -> refs/pull/17091/head * [new ref] refs/pull/17092/head -> refs/pull/17092/head * [new ref] refs/pull/17094/head -> refs/pull/17094/head * [new ref] refs/pull/17095/head -> refs/pull/17095/head * [new ref] refs/pull/17097/head -> refs/pull/17097/head * [new ref] refs/pull/17098/head -> refs/pull/17098/head * [new ref] refs/pull/17099/head -> refs/pull/17099/head * [new ref] refs/pull/17102/head -> refs/pull/17102/head * [new ref] refs/pull/17103/head -> refs/pull/17103/head * [new ref] refs/pull/17105/head -> refs/pull/17105/head * [new ref] refs/pull/17106/head -> refs/pull/17106/head * [new ref] refs/pull/17107/head -> refs/pull/17107/head * [new ref] refs/pull/17108/head -> refs/pull/17108/head * [new ref] refs/pull/17109/head -> refs/pull/17109/head * [new ref] refs/pull/17110/head -> refs/pull/17110/head * [new ref] refs/pull/17111/head -> refs/pull/17111/head * [new ref] refs/pull/17112/head -> refs/pull/17112/head * [new ref] refs/pull/17113/head -> refs/pull/17113/head * [new ref] refs/pull/17114/head -> refs/pull/17114/head * [new ref] refs/pull/17115/head -> refs/pull/17115/head * [new ref] refs/pull/17116/head -> refs/pull/17116/head * [new ref] refs/pull/17117/head -> refs/pull/17117/head * [new ref] refs/pull/17118/head -> refs/pull/17118/head * [new ref] refs/pull/17123/head -> refs/pull/17123/head * [new ref] refs/pull/17125/head -> refs/pull/17125/head * [new ref] refs/pull/17127/head -> refs/pull/17127/head * [new ref] refs/pull/17128/head -> refs/pull/17128/head * [new ref] refs/pull/17129/head -> refs/pull/17129/head * [new ref] refs/pull/17131/head -> refs/pull/17131/head * [new ref] refs/pull/17132/head -> refs/pull/17132/head * [new ref] refs/pull/17133/head -> refs/pull/17133/head * [new ref] refs/pull/17134/head -> refs/pull/17134/head * [new ref] refs/pull/17135/head -> refs/pull/17135/head * [new ref] refs/pull/17136/head -> refs/pull/17136/head * [new ref] refs/pull/17137/head -> refs/pull/17137/head * [new ref] refs/pull/17140/head -> refs/pull/17140/head * [new ref] refs/pull/17141/head -> refs/pull/17141/head * [new ref] refs/pull/17142/head -> refs/pull/17142/head * [new ref] refs/pull/17143/head -> refs/pull/17143/head * [new ref] refs/pull/17145/head -> refs/pull/17145/head * [new ref] refs/pull/17146/head -> refs/pull/17146/head * [new ref] refs/pull/17147/head -> refs/pull/17147/head * [new ref] refs/pull/17148/head -> refs/pull/17148/head * [new ref] refs/pull/17150/head -> refs/pull/17150/head * [new ref] refs/pull/17151/head -> refs/pull/17151/head * [new ref] refs/pull/17152/head -> refs/pull/17152/head * [new ref] refs/pull/17152/merge -> refs/pull/17152/merge * [new ref] refs/pull/17153/head -> refs/pull/17153/head * [new ref] refs/pull/17154/head -> refs/pull/17154/head * [new ref] refs/pull/17155/head -> refs/pull/17155/head * [new ref] refs/pull/17156/head -> refs/pull/17156/head * [new ref] refs/pull/17157/head -> refs/pull/17157/head * [new ref] refs/pull/17158/head -> refs/pull/17158/head * [new ref] refs/pull/17159/head -> refs/pull/17159/head * [new ref] refs/pull/17160/head -> refs/pull/17160/head * [new ref] refs/pull/17161/head -> refs/pull/17161/head * [new ref] refs/pull/17163/head -> refs/pull/17163/head * [new ref] refs/pull/17165/head -> refs/pull/17165/head * [new ref] refs/pull/17167/head -> refs/pull/17167/head * [new ref] refs/pull/17172/head -> refs/pull/17172/head * [new ref] refs/pull/17173/head -> refs/pull/17173/head * [new ref] refs/pull/17174/head -> refs/pull/17174/head * [new ref] refs/pull/17175/head -> refs/pull/17175/head * [new ref] refs/pull/17177/head -> refs/pull/17177/head * [new ref] refs/pull/17178/head -> refs/pull/17178/head * [new ref] refs/pull/17179/head -> refs/pull/17179/head * [new ref] refs/pull/17180/head -> refs/pull/17180/head * [new ref] refs/pull/17181/head -> refs/pull/17181/head * [new ref] refs/pull/17182/head -> refs/pull/17182/head * [new ref] refs/pull/17183/head -> refs/pull/17183/head * [new ref] refs/pull/17184/head -> refs/pull/17184/head * [new ref] refs/pull/17186/head -> refs/pull/17186/head * [new ref] refs/pull/17187/head -> refs/pull/17187/head * [new ref] refs/pull/17189/head -> refs/pull/17189/head * [new ref] refs/pull/17190/head -> refs/pull/17190/head * [new ref] refs/pull/17191/head -> refs/pull/17191/head * [new ref] refs/pull/17192/head -> refs/pull/17192/head * [new ref] refs/pull/17193/head -> refs/pull/17193/head * [new ref] refs/pull/17194/head -> refs/pull/17194/head * [new ref] refs/pull/17195/head -> refs/pull/17195/head * [new ref] refs/pull/17196/head -> refs/pull/17196/head * [new ref] refs/pull/17197/head -> refs/pull/17197/head * [new ref] refs/pull/17199/head -> refs/pull/17199/head * [new ref] refs/pull/17200/head -> refs/pull/17200/head * [new ref] refs/pull/17202/head -> refs/pull/17202/head * [new ref] refs/pull/17203/head -> refs/pull/17203/head * [new ref] refs/pull/17204/head -> refs/pull/17204/head * [new ref] refs/pull/17205/head -> refs/pull/17205/head * [new ref] refs/pull/17206/head -> refs/pull/17206/head * [new ref] refs/pull/17207/head -> refs/pull/17207/head * [new ref] refs/pull/17208/head -> refs/pull/17208/head * [new ref] refs/pull/17209/head -> refs/pull/17209/head * [new ref] refs/pull/17210/head -> refs/pull/17210/head * [new ref] refs/pull/17211/head -> refs/pull/17211/head * [new ref] refs/pull/17212/head -> refs/pull/17212/head * [new ref] refs/pull/17213/head -> refs/pull/17213/head * [new ref] refs/pull/17215/head -> refs/pull/17215/head * [new ref] refs/pull/17217/head -> refs/pull/17217/head * [new ref] refs/pull/17218/head -> refs/pull/17218/head * [new ref] refs/pull/17219/head -> refs/pull/17219/head * [new ref] refs/pull/17220/head -> refs/pull/17220/head * [new ref] refs/pull/17221/head -> refs/pull/17221/head * [new ref] refs/pull/17223/head -> refs/pull/17223/head * [new ref] refs/pull/17224/head -> refs/pull/17224/head * [new ref] refs/pull/17226/head -> refs/pull/17226/head * [new ref] refs/pull/17227/head -> refs/pull/17227/head * [new ref] refs/pull/17229/head -> refs/pull/17229/head * [new ref] refs/pull/17231/head -> refs/pull/17231/head * [new ref] refs/pull/17233/head -> refs/pull/17233/head * [new ref] refs/pull/17234/head -> refs/pull/17234/head * [new ref] refs/pull/17235/head -> refs/pull/17235/head * [new ref] refs/pull/17236/head -> refs/pull/17236/head * [new ref] refs/pull/17237/head -> refs/pull/17237/head * [new ref] refs/pull/17238/head -> refs/pull/17238/head * [new ref] refs/pull/17239/head -> refs/pull/17239/head * [new ref] refs/pull/17240/head -> refs/pull/17240/head * [new ref] refs/pull/17241/head -> refs/pull/17241/head * [new ref] refs/pull/17246/head -> refs/pull/17246/head * [new ref] refs/pull/17247/head -> refs/pull/17247/head * [new ref] refs/pull/17249/head -> refs/pull/17249/head * [new ref] refs/pull/17250/head -> refs/pull/17250/head * [new ref] refs/pull/17251/head -> refs/pull/17251/head * [new ref] refs/pull/17252/head -> refs/pull/17252/head * [new ref] refs/pull/17253/head -> refs/pull/17253/head * [new ref] refs/pull/17254/head -> refs/pull/17254/head * [new ref] refs/pull/17255/head -> refs/pull/17255/head * [new ref] refs/pull/17257/head -> refs/pull/17257/head * [new ref] refs/pull/17258/head -> refs/pull/17258/head * [new ref] refs/pull/17259/head -> refs/pull/17259/head * [new ref] refs/pull/17261/head -> refs/pull/17261/head * [new ref] refs/pull/17263/head -> refs/pull/17263/head * [new ref] refs/pull/17264/head -> refs/pull/17264/head * [new ref] refs/pull/17266/head -> refs/pull/17266/head * [new ref] refs/pull/17268/head -> refs/pull/17268/head * [new ref] refs/pull/17269/head -> refs/pull/17269/head * [new ref] refs/pull/17270/head -> refs/pull/17270/head * [new ref] refs/pull/17271/head -> refs/pull/17271/head * [new ref] refs/pull/17273/head -> refs/pull/17273/head * [new ref] refs/pull/17274/head -> refs/pull/17274/head * [new ref] refs/pull/17275/head -> refs/pull/17275/head * [new ref] refs/pull/17276/head -> refs/pull/17276/head * [new ref] refs/pull/17277/head -> refs/pull/17277/head * [new ref] refs/pull/17278/head -> refs/pull/17278/head * [new ref] refs/pull/17279/head -> refs/pull/17279/head * [new ref] refs/pull/17280/head -> refs/pull/17280/head * [new ref] refs/pull/17281/head -> refs/pull/17281/head * [new ref] refs/pull/17284/head -> refs/pull/17284/head * [new ref] refs/pull/17285/head -> refs/pull/17285/head * [new ref] refs/pull/17286/head -> refs/pull/17286/head * [new ref] refs/pull/17287/head -> refs/pull/17287/head * [new ref] refs/pull/17288/head -> refs/pull/17288/head * [new ref] refs/pull/17289/head -> refs/pull/17289/head * [new ref] refs/pull/17290/head -> refs/pull/17290/head * [new ref] refs/pull/17292/head -> refs/pull/17292/head * [new ref] refs/pull/17293/head -> refs/pull/17293/head * [new ref] refs/pull/17294/head -> refs/pull/17294/head * [new ref] refs/pull/17295/head -> refs/pull/17295/head * [new ref] refs/pull/17296/head -> refs/pull/17296/head * [new ref] refs/pull/17297/head -> refs/pull/17297/head * [new ref] refs/pull/17298/head -> refs/pull/17298/head * [new ref] refs/pull/17299/head -> refs/pull/17299/head * [new ref] refs/pull/17300/head -> refs/pull/17300/head * [new ref] refs/pull/17302/head -> refs/pull/17302/head * [new ref] refs/pull/17303/head -> refs/pull/17303/head * [new ref] refs/pull/17304/head -> refs/pull/17304/head * [new ref] refs/pull/17306/head -> refs/pull/17306/head * [new ref] refs/pull/17307/head -> refs/pull/17307/head * [new ref] refs/pull/17308/head -> refs/pull/17308/head * [new ref] refs/pull/17309/head -> refs/pull/17309/head * [new ref] refs/pull/17311/head -> refs/pull/17311/head * [new ref] refs/pull/17312/head -> refs/pull/17312/head * [new ref] refs/pull/17313/head -> refs/pull/17313/head * [new ref] refs/pull/17316/head -> refs/pull/17316/head * [new ref] refs/pull/17317/head -> refs/pull/17317/head * [new ref] refs/pull/17318/head -> refs/pull/17318/head * [new ref] refs/pull/17319/head -> refs/pull/17319/head * [new ref] refs/pull/17320/head -> refs/pull/17320/head * [new ref] refs/pull/17321/head -> refs/pull/17321/head * [new ref] refs/pull/17322/head -> refs/pull/17322/head * [new ref] refs/pull/17323/head -> refs/pull/17323/head * [new ref] refs/pull/17324/head -> refs/pull/17324/head * [new ref] refs/pull/17325/head -> refs/pull/17325/head * [new ref] refs/pull/17326/head -> refs/pull/17326/head * [new ref] refs/pull/17327/head -> refs/pull/17327/head * [new ref] refs/pull/17328/head -> refs/pull/17328/head * [new ref] refs/pull/17329/head -> refs/pull/17329/head * [new ref] refs/pull/17331/head -> refs/pull/17331/head * [new ref] refs/pull/17332/head -> refs/pull/17332/head * [new ref] refs/pull/17333/head -> refs/pull/17333/head * [new ref] refs/pull/17334/head -> refs/pull/17334/head * [new ref] refs/pull/17335/head -> refs/pull/17335/head * [new ref] refs/pull/17336/head -> refs/pull/17336/head * [new ref] refs/pull/17337/head -> refs/pull/17337/head * [new ref] refs/pull/17338/head -> refs/pull/17338/head * [new ref] refs/pull/17339/head -> refs/pull/17339/head * [new ref] refs/pull/17340/head -> refs/pull/17340/head * [new ref] refs/pull/17341/head -> refs/pull/17341/head * [new ref] refs/pull/17343/head -> refs/pull/17343/head * [new ref] refs/pull/17345/head -> refs/pull/17345/head * [new ref] refs/pull/17346/head -> refs/pull/17346/head * [new ref] refs/pull/17347/head -> refs/pull/17347/head * [new ref] refs/pull/17348/head -> refs/pull/17348/head * [new ref] refs/pull/17350/head -> refs/pull/17350/head * [new ref] refs/pull/17351/head -> refs/pull/17351/head * [new ref] refs/pull/17352/head -> refs/pull/17352/head * [new ref] refs/pull/17354/head -> refs/pull/17354/head * [new ref] refs/pull/17355/head -> refs/pull/17355/head * [new ref] refs/pull/17356/head -> refs/pull/17356/head * [new ref] refs/pull/17357/head -> refs/pull/17357/head * [new ref] refs/pull/17358/head -> refs/pull/17358/head * [new ref] refs/pull/17359/head -> refs/pull/17359/head * [new ref] refs/pull/17360/head -> refs/pull/17360/head * [new ref] refs/pull/17361/head -> refs/pull/17361/head * [new ref] refs/pull/17362/head -> refs/pull/17362/head * [new ref] refs/pull/17364/head -> refs/pull/17364/head * [new ref] refs/pull/17365/head -> refs/pull/17365/head * [new ref] refs/pull/17366/head -> refs/pull/17366/head * [new ref] refs/pull/17367/head -> refs/pull/17367/head * [new ref] refs/pull/17368/head -> refs/pull/17368/head * [new ref] refs/pull/17369/head -> refs/pull/17369/head * [new ref] refs/pull/17370/head -> refs/pull/17370/head * [new ref] refs/pull/17372/head -> refs/pull/17372/head * [new ref] refs/pull/17373/head -> refs/pull/17373/head * [new ref] refs/pull/17374/head -> refs/pull/17374/head * [new ref] refs/pull/17375/head -> refs/pull/17375/head * [new ref] refs/pull/17376/head -> refs/pull/17376/head * [new ref] refs/pull/17377/head -> refs/pull/17377/head * [new ref] refs/pull/17379/head -> refs/pull/17379/head * [new ref] refs/pull/17380/head -> refs/pull/17380/head * [new ref] refs/pull/17381/head -> refs/pull/17381/head * [new ref] refs/pull/17382/head -> refs/pull/17382/head * [new ref] refs/pull/17383/head -> refs/pull/17383/head * [new ref] refs/pull/17384/head -> refs/pull/17384/head * [new ref] refs/pull/17385/head -> refs/pull/17385/head * [new ref] refs/pull/17386/head -> refs/pull/17386/head * [new ref] refs/pull/17387/head -> refs/pull/17387/head * [new ref] refs/pull/17388/head -> refs/pull/17388/head * [new ref] refs/pull/17389/head -> refs/pull/17389/head * [new ref] refs/pull/17391/head -> refs/pull/17391/head * [new ref] refs/pull/17392/head -> refs/pull/17392/head * [new ref] refs/pull/17393/head -> refs/pull/17393/head * [new ref] refs/pull/17396/head -> refs/pull/17396/head * [new ref] refs/pull/17397/head -> refs/pull/17397/head * [new ref] refs/pull/17398/head -> refs/pull/17398/head * [new ref] refs/pull/17400/head -> refs/pull/17400/head * [new ref] refs/pull/17401/head -> refs/pull/17401/head * [new ref] refs/pull/17402/head -> refs/pull/17402/head * [new ref] refs/pull/17403/head -> refs/pull/17403/head * [new ref] refs/pull/17404/head -> refs/pull/17404/head * [new ref] refs/pull/17405/head -> refs/pull/17405/head * [new ref] refs/pull/17406/head -> refs/pull/17406/head * [new ref] refs/pull/17407/head -> refs/pull/17407/head * [new ref] refs/pull/17408/head -> refs/pull/17408/head * [new ref] refs/pull/17409/head -> refs/pull/17409/head * [new ref] refs/pull/17411/head -> refs/pull/17411/head * [new ref] refs/pull/17412/head -> refs/pull/17412/head * [new ref] refs/pull/17413/head -> refs/pull/17413/head * [new ref] refs/pull/17414/head -> refs/pull/17414/head * [new ref] refs/pull/17415/head -> refs/pull/17415/head * [new ref] refs/pull/17416/head -> refs/pull/17416/head * [new ref] refs/pull/17417/head -> refs/pull/17417/head * [new ref] refs/pull/17417/merge -> refs/pull/17417/merge * [new ref] refs/pull/17418/head -> refs/pull/17418/head * [new ref] refs/pull/17419/head -> refs/pull/17419/head * [new ref] refs/pull/17421/head -> refs/pull/17421/head * [new ref] refs/pull/17422/head -> refs/pull/17422/head * [new ref] refs/pull/17423/head -> refs/pull/17423/head * [new ref] refs/pull/17424/head -> refs/pull/17424/head * [new ref] refs/pull/17426/head -> refs/pull/17426/head * [new ref] refs/pull/17427/head -> refs/pull/17427/head * [new ref] refs/pull/17428/head -> refs/pull/17428/head * [new ref] refs/pull/17429/head -> refs/pull/17429/head * [new ref] refs/pull/17430/head -> refs/pull/17430/head * [new ref] refs/pull/17431/head -> refs/pull/17431/head * [new ref] refs/pull/17434/head -> refs/pull/17434/head * [new ref] refs/pull/17435/head -> refs/pull/17435/head * [new ref] refs/pull/17436/head -> refs/pull/17436/head * [new ref] refs/pull/17437/head -> refs/pull/17437/head * [new ref] refs/pull/17440/head -> refs/pull/17440/head * [new ref] refs/pull/17440/merge -> refs/pull/17440/merge * [new ref] refs/pull/17441/head -> refs/pull/17441/head * [new ref] refs/pull/17442/head -> refs/pull/17442/head * [new ref] refs/pull/17443/head -> refs/pull/17443/head * [new ref] refs/pull/17447/head -> refs/pull/17447/head * [new ref] refs/pull/17448/head -> refs/pull/17448/head * [new ref] refs/pull/17449/head -> refs/pull/17449/head * [new ref] refs/pull/17450/head -> refs/pull/17450/head * [new ref] refs/pull/17452/head -> refs/pull/17452/head * [new ref] refs/pull/17453/head -> refs/pull/17453/head * [new ref] refs/pull/17454/head -> refs/pull/17454/head * [new ref] refs/pull/17455/head -> refs/pull/17455/head * [new ref] refs/pull/17456/head -> refs/pull/17456/head * [new ref] refs/pull/17457/head -> refs/pull/17457/head * [new ref] refs/pull/17458/head -> refs/pull/17458/head * [new ref] refs/pull/17459/head -> refs/pull/17459/head * [new ref] refs/pull/17460/head -> refs/pull/17460/head * [new ref] refs/pull/17461/head -> refs/pull/17461/head * [new ref] refs/pull/17462/head -> refs/pull/17462/head * [new ref] refs/pull/17463/head -> refs/pull/17463/head * [new ref] refs/pull/17464/head -> refs/pull/17464/head * [new ref] refs/pull/17465/head -> refs/pull/17465/head * [new ref] refs/pull/17466/head -> refs/pull/17466/head * [new ref] refs/pull/17468/head -> refs/pull/17468/head * [new ref] refs/pull/17470/head -> refs/pull/17470/head * [new ref] refs/pull/17474/head -> refs/pull/17474/head * [new ref] refs/pull/17475/head -> refs/pull/17475/head * [new ref] refs/pull/17476/head -> refs/pull/17476/head * [new ref] refs/pull/17478/head -> refs/pull/17478/head * [new ref] refs/pull/17479/head -> refs/pull/17479/head * [new ref] refs/pull/17480/head -> refs/pull/17480/head * [new ref] refs/pull/17483/head -> refs/pull/17483/head * [new ref] refs/pull/17484/head -> refs/pull/17484/head * [new ref] refs/pull/17485/head -> refs/pull/17485/head * [new ref] refs/pull/17486/head -> refs/pull/17486/head * [new ref] refs/pull/17487/head -> refs/pull/17487/head * [new ref] refs/pull/17488/head -> refs/pull/17488/head * [new ref] refs/pull/17489/head -> refs/pull/17489/head * [new ref] refs/pull/17490/head -> refs/pull/17490/head * [new ref] refs/pull/17491/head -> refs/pull/17491/head * [new ref] refs/pull/17493/head -> refs/pull/17493/head * [new ref] refs/pull/17495/head -> refs/pull/17495/head * [new ref] refs/pull/17496/head -> refs/pull/17496/head * [new ref] refs/pull/17497/head -> refs/pull/17497/head * [new ref] refs/pull/17498/head -> refs/pull/17498/head * [new ref] refs/pull/17499/head -> refs/pull/17499/head * [new ref] refs/pull/17500/head -> refs/pull/17500/head * [new ref] refs/pull/17501/head -> refs/pull/17501/head * [new ref] refs/pull/17502/head -> refs/pull/17502/head * [new ref] refs/pull/17503/head -> refs/pull/17503/head * [new ref] refs/pull/17505/head -> refs/pull/17505/head * [new ref] refs/pull/17506/head -> refs/pull/17506/head * [new ref] refs/pull/17509/head -> refs/pull/17509/head * [new ref] refs/pull/17511/head -> refs/pull/17511/head * [new ref] refs/pull/17514/head -> refs/pull/17514/head * [new ref] refs/pull/17515/head -> refs/pull/17515/head * [new ref] refs/pull/17516/head -> refs/pull/17516/head * [new ref] refs/pull/17517/head -> refs/pull/17517/head * [new ref] refs/pull/17518/head -> refs/pull/17518/head * [new ref] refs/pull/17519/head -> refs/pull/17519/head * [new ref] refs/pull/17520/head -> refs/pull/17520/head * [new ref] refs/pull/17521/head -> refs/pull/17521/head * [new ref] refs/pull/17522/head -> refs/pull/17522/head * [new ref] refs/pull/17523/head -> refs/pull/17523/head * [new ref] refs/pull/17524/head -> refs/pull/17524/head * [new ref] refs/pull/17525/head -> refs/pull/17525/head * [new ref] refs/pull/17525/merge -> refs/pull/17525/merge * [new ref] refs/pull/17526/head -> refs/pull/17526/head * [new ref] refs/pull/17527/head -> refs/pull/17527/head * [new ref] refs/pull/17528/head -> refs/pull/17528/head * [new ref] refs/pull/17530/head -> refs/pull/17530/head * [new ref] refs/pull/17531/head -> refs/pull/17531/head * [new ref] refs/pull/17532/head -> refs/pull/17532/head * [new ref] refs/pull/17533/head -> refs/pull/17533/head * [new ref] refs/pull/17535/head -> refs/pull/17535/head * [new ref] refs/pull/17537/head -> refs/pull/17537/head * [new ref] refs/pull/17538/head -> refs/pull/17538/head * [new ref] refs/pull/17539/head -> refs/pull/17539/head * [new ref] refs/pull/17540/head -> refs/pull/17540/head * [new ref] refs/pull/17541/head -> refs/pull/17541/head * [new ref] refs/pull/17542/head -> refs/pull/17542/head * [new ref] refs/pull/17543/head -> refs/pull/17543/head * [new ref] refs/pull/17544/head -> refs/pull/17544/head * [new ref] refs/pull/17546/head -> refs/pull/17546/head * [new ref] refs/pull/17547/head -> refs/pull/17547/head * [new ref] refs/pull/17548/head -> refs/pull/17548/head * [new ref] refs/pull/17549/head -> refs/pull/17549/head * [new ref] refs/pull/17550/head -> refs/pull/17550/head * [new ref] refs/pull/17551/head -> refs/pull/17551/head * [new ref] refs/pull/17552/head -> refs/pull/17552/head * [new ref] refs/pull/17555/head -> refs/pull/17555/head * [new ref] refs/pull/17556/head -> refs/pull/17556/head * [new ref] refs/pull/17557/head -> refs/pull/17557/head * [new ref] refs/pull/17559/head -> refs/pull/17559/head * [new ref] refs/pull/17560/head -> refs/pull/17560/head * [new ref] refs/pull/17561/head -> refs/pull/17561/head * [new ref] refs/pull/17562/head -> refs/pull/17562/head * [new ref] refs/pull/17563/head -> refs/pull/17563/head * [new ref] refs/pull/17565/head -> refs/pull/17565/head * [new ref] refs/pull/17566/head -> refs/pull/17566/head * [new ref] refs/pull/17569/head -> refs/pull/17569/head * [new ref] refs/pull/17571/head -> refs/pull/17571/head * [new ref] refs/pull/17572/head -> refs/pull/17572/head * [new ref] refs/pull/17573/head -> refs/pull/17573/head * [new ref] refs/pull/17574/head -> refs/pull/17574/head * [new ref] refs/pull/17575/head -> refs/pull/17575/head * [new ref] refs/pull/17576/head -> refs/pull/17576/head * [new ref] refs/pull/17577/head -> refs/pull/17577/head * [new ref] refs/pull/17579/head -> refs/pull/17579/head * [new ref] refs/pull/17580/head -> refs/pull/17580/head * [new ref] refs/pull/17581/head -> refs/pull/17581/head * [new ref] refs/pull/17582/head -> refs/pull/17582/head * [new ref] refs/pull/17583/head -> refs/pull/17583/head * [new ref] refs/pull/17584/head -> refs/pull/17584/head * [new ref] refs/pull/17585/head -> refs/pull/17585/head * [new ref] refs/pull/17586/head -> refs/pull/17586/head * [new ref] refs/pull/17587/head -> refs/pull/17587/head * [new ref] refs/pull/17588/head -> refs/pull/17588/head * [new ref] refs/pull/17590/head -> refs/pull/17590/head * [new ref] refs/pull/17591/head -> refs/pull/17591/head * [new ref] refs/pull/17593/head -> refs/pull/17593/head * [new ref] refs/pull/17594/head -> refs/pull/17594/head * [new ref] refs/pull/17595/head -> refs/pull/17595/head * [new ref] refs/pull/17597/head -> refs/pull/17597/head * [new ref] refs/pull/17598/head -> refs/pull/17598/head * [new ref] refs/pull/17601/head -> refs/pull/17601/head * [new ref] refs/pull/17603/head -> refs/pull/17603/head * [new ref] refs/pull/17604/head -> refs/pull/17604/head * [new ref] refs/pull/17605/head -> refs/pull/17605/head * [new ref] refs/pull/17607/head -> refs/pull/17607/head * [new ref] refs/pull/17608/head -> refs/pull/17608/head * [new ref] refs/pull/17613/head -> refs/pull/17613/head * [new ref] refs/pull/17613/merge -> refs/pull/17613/merge * [new ref] refs/pull/17614/head -> refs/pull/17614/head * [new ref] refs/pull/17615/head -> refs/pull/17615/head * [new ref] refs/pull/17616/head -> refs/pull/17616/head * [new ref] refs/pull/17618/head -> refs/pull/17618/head * [new ref] refs/pull/17619/head -> refs/pull/17619/head * [new ref] refs/pull/17620/head -> refs/pull/17620/head * [new ref] refs/pull/17622/head -> refs/pull/17622/head * [new ref] refs/pull/17623/head -> refs/pull/17623/head * [new ref] refs/pull/17624/head -> refs/pull/17624/head * [new ref] refs/pull/17625/head -> refs/pull/17625/head * [new ref] refs/pull/17627/head -> refs/pull/17627/head * [new ref] refs/pull/17628/head -> refs/pull/17628/head * [new ref] refs/pull/17629/head -> refs/pull/17629/head * [new ref] refs/pull/17630/head -> refs/pull/17630/head * [new ref] refs/pull/17631/head -> refs/pull/17631/head * [new ref] refs/pull/17632/head -> refs/pull/17632/head * [new ref] refs/pull/17633/head -> refs/pull/17633/head * [new ref] refs/pull/17634/head -> refs/pull/17634/head * [new ref] refs/pull/17635/head -> refs/pull/17635/head * [new ref] refs/pull/17636/head -> refs/pull/17636/head * [new ref] refs/pull/17637/head -> refs/pull/17637/head * [new ref] refs/pull/17638/head -> refs/pull/17638/head * [new ref] refs/pull/17639/head -> refs/pull/17639/head * [new ref] refs/pull/17640/head -> refs/pull/17640/head * [new ref] refs/pull/17641/head -> refs/pull/17641/head * [new ref] refs/pull/17642/head -> refs/pull/17642/head * [new ref] refs/pull/17643/head -> refs/pull/17643/head * [new ref] refs/pull/17647/head -> refs/pull/17647/head * [new ref] refs/pull/17648/head -> refs/pull/17648/head * [new ref] refs/pull/17649/head -> refs/pull/17649/head * [new ref] refs/pull/17650/head -> refs/pull/17650/head * [new ref] refs/pull/17651/head -> refs/pull/17651/head * [new ref] refs/pull/17652/head -> refs/pull/17652/head * [new ref] refs/pull/17653/head -> refs/pull/17653/head * [new ref] refs/pull/17654/head -> refs/pull/17654/head * [new ref] refs/pull/17655/head -> refs/pull/17655/head * [new ref] refs/pull/17656/head -> refs/pull/17656/head * [new ref] refs/pull/17657/head -> refs/pull/17657/head * [new ref] refs/pull/17658/head -> refs/pull/17658/head * [new ref] refs/pull/17659/head -> refs/pull/17659/head * [new ref] refs/pull/17660/head -> refs/pull/17660/head * [new ref] refs/pull/17661/head -> refs/pull/17661/head * [new ref] refs/pull/17662/head -> refs/pull/17662/head * [new ref] refs/pull/17664/head -> refs/pull/17664/head * [new ref] refs/pull/17665/head -> refs/pull/17665/head * [new ref] refs/pull/17667/head -> refs/pull/17667/head * [new ref] refs/pull/17668/head -> refs/pull/17668/head * [new ref] refs/pull/17669/head -> refs/pull/17669/head * [new ref] refs/pull/17670/head -> refs/pull/17670/head * [new ref] refs/pull/17671/head -> refs/pull/17671/head * [new ref] refs/pull/17672/head -> refs/pull/17672/head * [new ref] refs/pull/17673/head -> refs/pull/17673/head * [new ref] refs/pull/17674/head -> refs/pull/17674/head * [new ref] refs/pull/17675/head -> refs/pull/17675/head * [new ref] refs/pull/17676/head -> refs/pull/17676/head * [new ref] refs/pull/17677/head -> refs/pull/17677/head * [new ref] refs/pull/17679/head -> refs/pull/17679/head * [new ref] refs/pull/17680/head -> refs/pull/17680/head * [new ref] refs/pull/17682/head -> refs/pull/17682/head * [new ref] refs/pull/17683/head -> refs/pull/17683/head * [new ref] refs/pull/17683/merge -> refs/pull/17683/merge * [new ref] refs/pull/17686/head -> refs/pull/17686/head * [new ref] refs/pull/17687/head -> refs/pull/17687/head * [new ref] refs/pull/17688/head -> refs/pull/17688/head * [new ref] refs/pull/17689/head -> refs/pull/17689/head * [new ref] refs/pull/17690/head -> refs/pull/17690/head * [new ref] refs/pull/17691/head -> refs/pull/17691/head * [new ref] refs/pull/17692/head -> refs/pull/17692/head * [new ref] refs/pull/17693/head -> refs/pull/17693/head * [new ref] refs/pull/17694/head -> refs/pull/17694/head * [new ref] refs/pull/17695/head -> refs/pull/17695/head * [new ref] refs/pull/17696/head -> refs/pull/17696/head * [new ref] refs/pull/17696/merge -> refs/pull/17696/merge * [new ref] refs/pull/17697/head -> refs/pull/17697/head * [new ref] refs/pull/17698/head -> refs/pull/17698/head * [new ref] refs/pull/17700/head -> refs/pull/17700/head * [new ref] refs/pull/17701/head -> refs/pull/17701/head * [new ref] refs/pull/17702/head -> refs/pull/17702/head * [new ref] refs/pull/17703/head -> refs/pull/17703/head * [new ref] refs/pull/17704/head -> refs/pull/17704/head * [new ref] refs/pull/17705/head -> refs/pull/17705/head * [new ref] refs/pull/17706/head -> refs/pull/17706/head * [new ref] refs/pull/17707/head -> refs/pull/17707/head * [new ref] refs/pull/17708/head -> refs/pull/17708/head * [new ref] refs/pull/17709/head -> refs/pull/17709/head * [new ref] refs/pull/17710/head -> refs/pull/17710/head * [new ref] refs/pull/17711/head -> refs/pull/17711/head * [new ref] refs/pull/17712/head -> refs/pull/17712/head * [new ref] refs/pull/17712/merge -> refs/pull/17712/merge * [new ref] refs/pull/17713/head -> refs/pull/17713/head * [new ref] refs/pull/17714/head -> refs/pull/17714/head * [new ref] refs/pull/17715/head -> refs/pull/17715/head * [new ref] refs/pull/17716/head -> refs/pull/17716/head * [new ref] refs/pull/17717/head -> refs/pull/17717/head * [new ref] refs/pull/17718/head -> refs/pull/17718/head * [new ref] refs/pull/17719/head -> refs/pull/17719/head * [new ref] refs/pull/17720/head -> refs/pull/17720/head * [new ref] refs/pull/17721/head -> refs/pull/17721/head * [new ref] refs/pull/17722/head -> refs/pull/17722/head * [new ref] refs/pull/17723/head -> refs/pull/17723/head * [new ref] refs/pull/17724/head -> refs/pull/17724/head * [new ref] refs/pull/17725/head -> refs/pull/17725/head * [new ref] refs/pull/17726/head -> refs/pull/17726/head * [new ref] refs/pull/17727/head -> refs/pull/17727/head * [new ref] refs/pull/17728/head -> refs/pull/17728/head * [new ref] refs/pull/17729/head -> refs/pull/17729/head * [new ref] refs/pull/17729/merge -> refs/pull/17729/merge * [new ref] refs/pull/17730/head -> refs/pull/17730/head * [new ref] refs/pull/17731/head -> refs/pull/17731/head * [new ref] refs/pull/17732/head -> refs/pull/17732/head * [new ref] refs/pull/17733/head -> refs/pull/17733/head * [new ref] refs/pull/17734/head -> refs/pull/17734/head * [new ref] refs/pull/17735/head -> refs/pull/17735/head * [new ref] refs/pull/17736/head -> refs/pull/17736/head * [new ref] refs/pull/17737/head -> refs/pull/17737/head * [new ref] refs/pull/17738/head -> refs/pull/17738/head * [new ref] refs/pull/17739/head -> refs/pull/17739/head * [new ref] refs/pull/17740/head -> refs/pull/17740/head * [new ref] refs/pull/17741/head -> refs/pull/17741/head * [new ref] refs/pull/17742/head -> refs/pull/17742/head * [new ref] refs/pull/17743/head -> refs/pull/17743/head * [new ref] refs/pull/17744/head -> refs/pull/17744/head * [new ref] refs/pull/17745/head -> refs/pull/17745/head * [new ref] refs/pull/17747/head -> refs/pull/17747/head * [new ref] refs/pull/17748/head -> refs/pull/17748/head * [new ref] refs/pull/17750/head -> refs/pull/17750/head * [new ref] refs/pull/17751/head -> refs/pull/17751/head * [new ref] refs/pull/17752/head -> refs/pull/17752/head * [new ref] refs/pull/17753/head -> refs/pull/17753/head * [new ref] refs/pull/17756/head -> refs/pull/17756/head * [new ref] refs/pull/17758/head -> refs/pull/17758/head * [new ref] refs/pull/17759/head -> refs/pull/17759/head * [new ref] refs/pull/17760/head -> refs/pull/17760/head * [new ref] refs/pull/17761/head -> refs/pull/17761/head * [new ref] refs/pull/17762/head -> refs/pull/17762/head * [new ref] refs/pull/17763/head -> refs/pull/17763/head * [new ref] refs/pull/17764/head -> refs/pull/17764/head * [new ref] refs/pull/17765/head -> refs/pull/17765/head * [new ref] refs/pull/17766/head -> refs/pull/17766/head * [new ref] refs/pull/17767/head -> refs/pull/17767/head * [new ref] refs/pull/17768/head -> refs/pull/17768/head * [new ref] refs/pull/17768/merge -> refs/pull/17768/merge * [new ref] refs/pull/17769/head -> refs/pull/17769/head * [new ref] refs/pull/17770/head -> refs/pull/17770/head * [new ref] refs/pull/17771/head -> refs/pull/17771/head * [new ref] refs/pull/17772/head -> refs/pull/17772/head * [new ref] refs/pull/17773/head -> refs/pull/17773/head * [new ref] refs/pull/17775/head -> refs/pull/17775/head * [new ref] refs/pull/17777/head -> refs/pull/17777/head * [new ref] refs/pull/17778/head -> refs/pull/17778/head * [new ref] refs/pull/17780/head -> refs/pull/17780/head * [new ref] refs/pull/17781/head -> refs/pull/17781/head * [new ref] refs/pull/17782/head -> refs/pull/17782/head * [new ref] refs/pull/17783/head -> refs/pull/17783/head * [new ref] refs/pull/17784/head -> refs/pull/17784/head * [new ref] refs/pull/17785/head -> refs/pull/17785/head * [new ref] refs/pull/17786/head -> refs/pull/17786/head * [new ref] refs/pull/17787/head -> refs/pull/17787/head * [new ref] refs/pull/17788/head -> refs/pull/17788/head * [new ref] refs/pull/17789/head -> refs/pull/17789/head * [new ref] refs/pull/17789/merge -> refs/pull/17789/merge * [new ref] refs/pull/17790/head -> refs/pull/17790/head * [new ref] refs/pull/17791/head -> refs/pull/17791/head * [new ref] refs/pull/17791/merge -> refs/pull/17791/merge * [new ref] refs/pull/17792/head -> refs/pull/17792/head * [new ref] refs/pull/17793/head -> refs/pull/17793/head * [new ref] refs/pull/17794/head -> refs/pull/17794/head * [new ref] refs/pull/17795/head -> refs/pull/17795/head * [new ref] refs/pull/17796/head -> refs/pull/17796/head * [new ref] refs/pull/17797/head -> refs/pull/17797/head * [new ref] refs/pull/17797/merge -> refs/pull/17797/merge * [new ref] refs/pull/17798/head -> refs/pull/17798/head * [new ref] refs/pull/17799/head -> refs/pull/17799/head * [new ref] refs/pull/17800/head -> refs/pull/17800/head * [new ref] refs/pull/17800/merge -> refs/pull/17800/merge * [new ref] refs/pull/17803/head -> refs/pull/17803/head * [new ref] refs/pull/17804/head -> refs/pull/17804/head * [new ref] refs/pull/17805/head -> refs/pull/17805/head * [new ref] refs/pull/17806/head -> refs/pull/17806/head * [new ref] refs/pull/17808/head -> refs/pull/17808/head * [new ref] refs/pull/17809/head -> refs/pull/17809/head * [new ref] refs/pull/17810/head -> refs/pull/17810/head * [new ref] refs/pull/17811/head -> refs/pull/17811/head * [new ref] refs/pull/17812/head -> refs/pull/17812/head * [new ref] refs/pull/17813/head -> refs/pull/17813/head * [new ref] refs/pull/17814/head -> refs/pull/17814/head * [new ref] refs/pull/17815/head -> refs/pull/17815/head * [new ref] refs/pull/17816/head -> refs/pull/17816/head * [new ref] refs/pull/17818/head -> refs/pull/17818/head * [new ref] refs/pull/17821/head -> refs/pull/17821/head * [new ref] refs/pull/17822/head -> refs/pull/17822/head * [new ref] refs/pull/17823/head -> refs/pull/17823/head * [new ref] refs/pull/17824/head -> refs/pull/17824/head * [new ref] refs/pull/17825/head -> refs/pull/17825/head * [new ref] refs/pull/17826/head -> refs/pull/17826/head * [new ref] refs/pull/17827/head -> refs/pull/17827/head * [new ref] refs/pull/17827/merge -> refs/pull/17827/merge * [new ref] refs/pull/17829/head -> refs/pull/17829/head * [new ref] refs/pull/17830/head -> refs/pull/17830/head * [new ref] refs/pull/17831/head -> refs/pull/17831/head * [new ref] refs/pull/17832/head -> refs/pull/17832/head * [new ref] refs/pull/17833/head -> refs/pull/17833/head * [new ref] refs/pull/17836/head -> refs/pull/17836/head * [new ref] refs/pull/17837/head -> refs/pull/17837/head * [new ref] refs/pull/17840/head -> refs/pull/17840/head * [new ref] refs/pull/17841/head -> refs/pull/17841/head * [new ref] refs/pull/17842/head -> refs/pull/17842/head * [new ref] refs/pull/17843/head -> refs/pull/17843/head * [new ref] refs/pull/17844/head -> refs/pull/17844/head * [new ref] refs/pull/17845/head -> refs/pull/17845/head * [new ref] refs/pull/17846/head -> refs/pull/17846/head * [new ref] refs/pull/17847/head -> refs/pull/17847/head * [new ref] refs/pull/17848/head -> refs/pull/17848/head * [new ref] refs/pull/17849/head -> refs/pull/17849/head * [new ref] refs/pull/17850/head -> refs/pull/17850/head * [new ref] refs/pull/17851/head -> refs/pull/17851/head * [new ref] refs/pull/17852/head -> refs/pull/17852/head * [new ref] refs/pull/17853/head -> refs/pull/17853/head * [new ref] refs/pull/17854/head -> refs/pull/17854/head * [new ref] refs/pull/17856/head -> refs/pull/17856/head * [new ref] refs/pull/17858/head -> refs/pull/17858/head * [new ref] refs/pull/17859/head -> refs/pull/17859/head * [new ref] refs/pull/17860/head -> refs/pull/17860/head * [new ref] refs/pull/17861/head -> refs/pull/17861/head * [new ref] refs/pull/17864/head -> refs/pull/17864/head * [new ref] refs/pull/17865/head -> refs/pull/17865/head * [new ref] refs/pull/17865/merge -> refs/pull/17865/merge * [new ref] refs/pull/17867/head -> refs/pull/17867/head * [new ref] refs/pull/17868/head -> refs/pull/17868/head * [new ref] refs/pull/17872/head -> refs/pull/17872/head * [new ref] refs/pull/17873/head -> refs/pull/17873/head * [new ref] refs/pull/17874/head -> refs/pull/17874/head * [new ref] refs/pull/17875/head -> refs/pull/17875/head * [new ref] refs/pull/17876/head -> refs/pull/17876/head * [new ref] refs/pull/17876/merge -> refs/pull/17876/merge * [new ref] refs/pull/17877/head -> refs/pull/17877/head * [new ref] refs/pull/17877/merge -> refs/pull/17877/merge * [new ref] refs/pull/17879/head -> refs/pull/17879/head * [new ref] refs/pull/17880/head -> refs/pull/17880/head * [new ref] refs/pull/17881/head -> refs/pull/17881/head * [new ref] refs/pull/17882/head -> refs/pull/17882/head * [new ref] refs/pull/17883/head -> refs/pull/17883/head * [new ref] refs/pull/17883/merge -> refs/pull/17883/merge * [new ref] refs/pull/17884/head -> refs/pull/17884/head * [new ref] refs/pull/17884/merge -> refs/pull/17884/merge * [new ref] refs/pull/17885/head -> refs/pull/17885/head * [new ref] refs/pull/17886/head -> refs/pull/17886/head * [new ref] refs/pull/17887/head -> refs/pull/17887/head * [new ref] refs/pull/17887/merge -> refs/pull/17887/merge * [new ref] refs/pull/17888/head -> refs/pull/17888/head * [new ref] refs/pull/17889/head -> refs/pull/17889/head * [new ref] refs/pull/17889/merge -> refs/pull/17889/merge * [new ref] refs/pull/17890/head -> refs/pull/17890/head * [new ref] refs/pull/17891/head -> refs/pull/17891/head * [new ref] refs/pull/17892/head -> refs/pull/17892/head * [new ref] refs/pull/17894/head -> refs/pull/17894/head * [new ref] refs/pull/17894/merge -> refs/pull/17894/merge * [new ref] refs/pull/17895/head -> refs/pull/17895/head * [new ref] refs/pull/17896/head -> refs/pull/17896/head * [new ref] refs/pull/17897/head -> refs/pull/17897/head * [new ref] refs/pull/17898/head -> refs/pull/17898/head * [new ref] refs/pull/17898/merge -> refs/pull/17898/merge * [new ref] refs/pull/17899/head -> refs/pull/17899/head * [new ref] refs/pull/17900/head -> refs/pull/17900/head * [new ref] refs/pull/17901/head -> refs/pull/17901/head * [new ref] refs/pull/17902/head -> refs/pull/17902/head * [new ref] refs/pull/17903/head -> refs/pull/17903/head * [new ref] refs/pull/17904/head -> refs/pull/17904/head * [new ref] refs/pull/17905/head -> refs/pull/17905/head * [new ref] refs/pull/17905/merge -> refs/pull/17905/merge * [new ref] refs/pull/17906/head -> refs/pull/17906/head * [new ref] refs/pull/17907/head -> refs/pull/17907/head * [new ref] refs/pull/17908/head -> refs/pull/17908/head * [new ref] refs/pull/17909/head -> refs/pull/17909/head * [new ref] refs/pull/17911/head -> refs/pull/17911/head * [new ref] refs/pull/17912/head -> refs/pull/17912/head * [new ref] refs/pull/17913/head -> refs/pull/17913/head * [new ref] refs/pull/17914/head -> refs/pull/17914/head * [new ref] refs/pull/17915/head -> refs/pull/17915/head * [new ref] refs/pull/17916/head -> refs/pull/17916/head * [new ref] refs/pull/17918/head -> refs/pull/17918/head * [new ref] refs/pull/17919/head -> refs/pull/17919/head * [new ref] refs/pull/17920/head -> refs/pull/17920/head * [new ref] refs/pull/17921/head -> refs/pull/17921/head * [new ref] refs/pull/17922/head -> refs/pull/17922/head * [new ref] refs/pull/17923/head -> refs/pull/17923/head * [new ref] refs/pull/17924/head -> refs/pull/17924/head * [new ref] refs/pull/17925/head -> refs/pull/17925/head * [new ref] refs/pull/17926/head -> refs/pull/17926/head * [new ref] refs/pull/17927/head -> refs/pull/17927/head * [new ref] refs/pull/17927/merge -> refs/pull/17927/merge * [new ref] refs/pull/17928/head -> refs/pull/17928/head * [new ref] refs/pull/17929/head -> refs/pull/17929/head * [new ref] refs/pull/17929/merge -> refs/pull/17929/merge * [new ref] refs/pull/17931/head -> refs/pull/17931/head * [new ref] refs/pull/17931/merge -> refs/pull/17931/merge * [new ref] refs/pull/17932/head -> refs/pull/17932/head * [new ref] refs/pull/17933/head -> refs/pull/17933/head * [new ref] refs/pull/17933/merge -> refs/pull/17933/merge * [new ref] refs/pull/17934/head -> refs/pull/17934/head * [new ref] refs/pull/17935/head -> refs/pull/17935/head * [new ref] refs/pull/17936/head -> refs/pull/17936/head * [new ref] refs/pull/17937/head -> refs/pull/17937/head * [new ref] refs/pull/17938/head -> refs/pull/17938/head * [new ref] refs/pull/17938/merge -> refs/pull/17938/merge * [new ref] refs/pull/17940/head -> refs/pull/17940/head * [new ref] refs/pull/17941/head -> refs/pull/17941/head * [new ref] refs/pull/17943/head -> refs/pull/17943/head * [new ref] refs/pull/17945/head -> refs/pull/17945/head * [new ref] refs/pull/17946/head -> refs/pull/17946/head * [new ref] refs/pull/17947/head -> refs/pull/17947/head * [new ref] refs/pull/17947/merge -> refs/pull/17947/merge * [new ref] refs/pull/17950/head -> refs/pull/17950/head * [new ref] refs/pull/17950/merge -> refs/pull/17950/merge * [new ref] refs/pull/17953/head -> refs/pull/17953/head * [new ref] refs/pull/17954/head -> refs/pull/17954/head * [new ref] refs/pull/17955/head -> refs/pull/17955/head * [new ref] refs/pull/17955/merge -> refs/pull/17955/merge * [new ref] refs/pull/17956/head -> refs/pull/17956/head * [new ref] refs/pull/17958/head -> refs/pull/17958/head * [new ref] refs/pull/17958/merge -> refs/pull/17958/merge * [new ref] refs/pull/17959/head -> refs/pull/17959/head + a587b7ea31...a280000764 refs/pull/7124/head -> refs/pull/7124/head (forced update) * [new tag] curl-8_10_0 -> curl-8_10_0 * [new tag] curl-8_10_1 -> curl-8_10_1 * [new tag] curl-8_11_0 -> curl-8_11_0 * [new tag] curl-8_11_1 -> curl-8_11_1 * [new tag] curl-8_12_0 -> curl-8_12_0 * [new tag] curl-8_12_1 -> curl-8_12_1 * [new tag] curl-8_13_0 -> curl-8_13_0 * [new tag] curl-8_14_0 -> curl-8_14_0 * [new tag] curl-8_14_1 -> curl-8_14_1 * [new tag] curl-8_15_0 -> curl-8_15_0 * [new tag] rc-8_15_0-1 -> rc-8_15_0-1 * [new tag] rc-8_15_0-2 -> rc-8_15_0-2 * [new tag] rc-8_15_0-3 -> rc-8_15_0-3 ==> Validating source files with sha512sums... curl ... Passed ==> Verifying source file signatures with gpg... curl git repo ... Passed ]2;🔵 Container arch-nspawn-402956 on centiskorch.felixc.at\==> Making package: curl 8.15.0-1 (Fri Jul 18 09:24:20 2025) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (9) New Version Net Change Download Size core/debuginfod 0.193-2 0.37 MiB 0.16 MiB core/libmicrohttpd 1.0.1-1 0.56 MiB 0.28 MiB extra/perl-error 0.17030-2 0.04 MiB 0.02 MiB extra/perl-mailtools 2.22-2 0.10 MiB 0.06 MiB extra/perl-timedate 2.33-8 0.08 MiB extra/zlib-ng 2.2.4-1 0.21 MiB extra/git 2.50.1-1 28.58 MiB extra/patchelf 0.18.0-3 0.19 MiB 0.10 MiB extra/valgrind 3.25.1-1 40.48 MiB 5.80 MiB Total Download Size: 6.43 MiB Total Installed Size: 70.63 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... valgrind-3.25.1-1-riscv64 downloading... libmicrohttpd-1.0.1-1-riscv64 downloading... debuginfod-0.193-2-riscv64 downloading... patchelf-0.18.0-3-riscv64 downloading... perl-mailtools-2.22-2-any downloading... perl-error-0.17030-2-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] installing patchelf... installing libmicrohttpd... installing debuginfod... Optional dependencies for debuginfod elfutils=0.193: for translations installing valgrind... Optional dependencies for valgrind python: cg_* scripts :: Running post-transaction hooks... (1/5) Creating system user accounts... Creating group 'git' with GID 971. Creating user 'git' (git daemon user) with UID 971 and GID 971. (2/5) Reloading system manager configuration... Skipped: Current root is not booted. (3/5) Arming ConditionNeedsUpdate... (4/5) Checking for old perl modules... (5/5) Updating the info directory file... [?25h==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of curl git repo... Cloning into 'curl'... done. Updating files: 89% (3673/4101) Updating files: 90% (3691/4101) Updating files: 91% (3732/4101) Updating files: 92% (3773/4101) Updating files: 93% (3814/4101) Updating files: 94% (3855/4101) Updating files: 95% (3896/4101) Updating files: 96% (3937/4101) Updating files: 97% (3978/4101) Updating files: 98% (4019/4101) Updating files: 99% (4060/4101) Updating files: 100% (4101/4101) Updating files: 100% (4101/4101), done. Switched to a new branch 'makepkg' ==> Starting prepare()... libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' libtoolize: Remember to add 'LT_INIT' to configure.ac. configure.ac:128: installing './compile' configure.ac:418: installing './config.guess' configure.ac:418: installing './config.sub' configure.ac:128: installing './install-sh' configure.ac:134: installing './missing' docs/examples/Makefile.am: installing './depcomp' ==> Starting build()... checking whether to enable maintainer-specific portions of Makefiles... no checking whether make supports nested variables... yes checking whether to enable debug build options... no checking whether to enable compiler optimizer... (assumed) yes checking whether to enable strict compiler warnings... no checking whether to enable compiler warnings as errors... no checking whether to enable curl debug memory tracking... no checking whether to enable hiding of library internal symbols... yes checking whether to enable c-ares for DNS lookups... no checking whether to disable dependency on -lrt... (assumed no) checking whether to enable HTTPSRR support... no checking whether to enable ECH support... no checking whether to enable SSL session export support... no checking for path separator... : checking for sed... /usr/bin/sed checking for grep... /usr/bin/grep checking that grep -E works... yes checking for ar... /usr/bin/ar checking for a BSD-compatible install... /usr/bin/install -c checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for stdatomic.h... yes checking if _Atomic is available... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for code coverage support... no checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking dependency style of gcc... gcc3 checking curl version... 8.15.0 checking for httpd... no checking for apache2... no checking for apxs... no configure: httpd/apache2 not in PATH, http tests disabled configure: apxs not in PATH, http tests disabled checking for nghttpx... no checking for caddy... no checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for egrep -e... /usr/bin/grep -E checking if OS is AIX (to define _ALL_SOURCE)... no checking if _THREAD_SAFE is already defined... no checking if _THREAD_SAFE is actually needed... no checking if _THREAD_SAFE is onwards defined... no checking if _REENTRANT is already defined... no checking if _REENTRANT is actually needed... no checking if _REENTRANT is onwards defined... no checking for gcc option to enable large file support... none needed checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ranlib... ranlib checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether to build shared libraries with -version-info... yes checking whether to build shared libraries with -no-undefined... no checking whether to build shared libraries with -mimpure-text... no checking whether to build shared libraries with PIC... yes checking whether to build static libraries with PIC... no checking whether to build shared libraries only... no checking whether to build static libraries only... no checking for windres... no checking if cpp -P is needed... yes checking if cpp -P works... yes checking if compiler is DEC/Compaq/HP C... no checking if compiler is HP-UX C... no checking if compiler is IBM C... no checking if compiler is Intel C... no checking if compiler is clang... no checking if compiler is GNU C... yes checking compiler version... gcc '1501' (raw: '15.1.1') checking if compiler is SunPro C... no checking if compiler is Tiny C... no checking whether build target is a native Windows one... no checking if compiler accepts some basic options... yes configure: compiler options added: -Werror-implicit-function-declaration checking if compiler optimizer assumed setting might be used... no checking if compiler accepts strict warning options... yes configure: compiler options added: -Wno-system-headers checking if compiler halts on compilation errors... yes checking if compiler halts on negative sized arrays... yes checking if compiler halts on function prototype mismatch... yes checking if compiler supports hiding library internal symbols... yes checking whether build target supports Win32 crypto API... no checking whether to build libcurl and curl in "unity" mode... no checking whether to support http... yes checking whether to support ftp... yes checking whether to support file... yes checking whether to support IPFS... yes checking whether to support ldap... no checking whether to support ldaps... no checking whether to support rtsp... yes checking whether to support proxies... yes checking whether to support dict... yes checking whether to support telnet... yes checking whether to support tftp... yes checking whether to support pop3... yes checking whether to support imap... yes checking whether to support smb... yes checking whether to support smtp... yes checking whether to support gopher... yes checking whether to support mqtt... no checking whether to provide built-in manual... no checking whether to build documentation... yes checking whether to enable generation of C code... yes checking whether to use libgcc... no checking if X/Open network library is required... no checking for gethostbyname... yes checking whether build target is a native Windows one... (cached) no checking for proto/bsdsocket.h... no checking for connect in libraries... yes checking for sys/types.h... (cached) yes checking for monotonic clock_gettime... yes checking for clock_gettime in libraries... no additional lib required checking if monotonic clock_gettime works... yes checking for sys/types.h... (cached) yes checking for raw monotonic clock_gettime... yes checking for pkg-config... /usr/bin/pkg-config checking for zlib options with pkg-config... found checking for zlib.h... yes configure: found both libz and libz.h header checking for BrotliDecoderDecompress in -lbrotlidec... yes checking for brotli/decode.h... yes checking for ZSTD_createDStream in -lzstd... yes checking for zstd.h... yes checking whether to enable IPv6... yes checking if struct sockaddr_in6 has sin6_scope_id member... yes checking if argv can be written to... yes checking if GSS-API support is requested... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking for gss.h... no checking for gssapi/gssapi.h... yes checking for gssapi/gssapi_generic.h... yes checking for gssapi/gssapi_krb5.h... yes checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking if we can link against GSS-API library... yes checking whether to enable Windows native SSL/TLS... no checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for openssl options with pkg-config... found configure: pkg-config: SSL_LIBS: "-lssl -lcrypto" configure: pkg-config: SSL_LDFLAGS: "" configure: pkg-config: SSL_CPPFLAGS: "" checking for HMAC_Update in -lcrypto... yes checking for SSL_connect in -lssl... yes checking for openssl/x509.h... yes checking for openssl/rsa.h... yes checking for openssl/crypto.h... yes checking for openssl/pem.h... yes checking for openssl/ssl.h... yes checking for openssl/err.h... yes checking for BoringSSL... no checking for AWS-LC... no checking for LibreSSL... no checking for OpenSSL >= v3... yes checking for SSL_set_quic_use_legacy_codepoint... no checking for SSL_set_quic_tls_cbs... yes configure: OpenSSL with QUIC APIv2 checking for SRP support in OpenSSL... yes checking for QUIC support and OpenSSL >= 3.3... yes configure: built with one SSL backend checking default CA cert bundle/path... /etc/ssl/certs/ca-certificates.crt checking whether to use built-in CA store of SSL library... no checking CA cert bundle path to embed in the curl tool... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for libpsl options with pkg-config... found checking for psl_builtin in -lpsl... yes checking for libpsl.h... yes checking for library containing gsasl_init... no configure: WARNING: libgsasl was not found checking for pkg-config... (cached) /usr/bin/pkg-config checking for libssh2 options with pkg-config... found checking for libssh2_free in -lssh2... yes checking for libssh2.h... yes checking for RTMP_Init in -lrtmp... no checking whether versioned symbols are wanted... yes checking if libraries can be versioned... yes checking whether to build with libidn2... (assumed) yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libidn2 options with pkg-config... found configure: pkg-config: IDN_LIBS: "-lidn2" configure: pkg-config: IDN_LDFLAGS: "" configure: pkg-config: IDN_CPPFLAGS: "" configure: pkg-config: IDN_DIR: "" checking if idn2_lookup_ul can be linked... yes checking for idn2.h... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp2 options with pkg-config... found configure: -l is -lnghttp2 configure: -I is configure: -L is checking for nghttp2_session_get_stream_local_window_size in -lnghttp2... yes checking for nghttp2/nghttp2.h... yes configure: Added to CURL_LIBRARY_PATH checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp3 options with pkg-config... found configure: -l is -lnghttp3 configure: -I is configure: -L is checking for nghttp3_conn_client_new_versioned in -lnghttp3... yes checking for nghttp3/nghttp3.h... yes configure: Added to CURL_LIBRARY_PATH configure: HTTP3 support is experimental checking for sys/types.h... (cached) yes checking for sys/select.h... yes checking for sys/ioctl.h... yes checking for unistd.h... (cached) yes checking for arpa/inet.h... yes checking for net/if.h... yes checking for netinet/in.h... yes checking for netinet/in6.h... no checking for sys/un.h... yes checking for linux/tcp.h... yes checking for netinet/tcp.h... yes checking for netinet/udp.h... yes checking for netdb.h... yes checking for sys/sockio.h... no checking for sys/param.h... yes checking for termios.h... yes checking for termio.h... yes checking for fcntl.h... yes checking for io.h... no checking for pwd.h... yes checking for utime.h... yes checking for sys/utime.h... no checking for sys/poll.h... yes checking for poll.h... yes checking for sys/resource.h... yes checking for libgen.h... yes checking for locale.h... yes checking for stdbool.h... yes checking for stdint.h... (cached) yes checking for sys/filio.h... no checking for sys/eventfd.h... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for sys/types.h... (cached) yes checking for struct timeval... yes checking run-time libs availability... fine checking size of size_t... 8 checking size of long... 8 checking size of int... 4 checking size of time_t... 8 checking size of off_t... 8 checking size of curl_off_t... 8 checking size of curl_socket_t... 4 checking for long long... yes checking for ssize_t... yes checking for bool... yes checking for sa_family_t... yes checking for suseconds_t... yes checking if time_t is unsigned... no checking for struct sockaddr_storage... yes checking for sys/select.h... (cached) yes checking for select... yes checking for sys/types.h... (cached) yes checking for recv... yes checking for sys/types.h... (cached) yes checking for send... yes checking for sys/types.h... (cached) yes checking for MSG_NOSIGNAL... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking if alarm can be linked... yes checking if alarm is prototyped... yes checking if alarm is compilable... yes checking if alarm usage allowed... yes checking if alarm might be used... yes checking for sys/types.h... (cached) yes checking for strings.h... (cached) yes checking for sys/types.h... (cached) yes checking for libgen.h... (cached) yes checking if basename can be linked... yes checking if basename is prototyped... yes checking if basename is compilable... yes checking if basename usage allowed... yes checking if basename might be used... yes checking if closesocket can be linked... no checking if closesocket might be used... no checking for sys/types.h... (cached) yes checking if CloseSocket can be linked... no checking if CloseSocket might be used... no checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for fcntl.h... (cached) yes checking if fcntl can be linked... yes checking if fcntl is prototyped... yes checking if fcntl is compilable... yes checking if fcntl usage allowed... yes checking if fcntl might be used... yes checking if fcntl O_NONBLOCK is compilable... yes checking if fcntl O_NONBLOCK usage allowed... yes checking if fcntl O_NONBLOCK might be used... yes checking whether build target is a native Windows one... (cached) no checking for sys/types.h... (cached) yes checking for netdb.h... (cached) yes checking if freeaddrinfo can be linked... yes checking if freeaddrinfo is prototyped... yes checking if freeaddrinfo is compilable... yes checking if freeaddrinfo usage allowed... yes checking if freeaddrinfo might be used... yes checking for sys/types.h... (cached) yes checking for sys/xattr.h... yes checking if fsetxattr can be linked... yes checking if fsetxattr is prototyped... yes checking if fsetxattr takes 5 args.... yes checking if fsetxattr is compilable... yes checking if fsetxattr usage allowed... yes checking if fsetxattr might be used... yes checking if ftruncate can be linked... yes checking if ftruncate is prototyped... yes checking if ftruncate is compilable... yes checking if ftruncate usage allowed... yes checking if ftruncate might be used... yes checking for sys/types.h... (cached) yes checking if getaddrinfo can be linked... yes checking if getaddrinfo is prototyped... yes checking if getaddrinfo is compilable... yes checking if getaddrinfo seems to work... yes checking if getaddrinfo usage allowed... yes checking if getaddrinfo might be used... yes checking if getaddrinfo is threadsafe... yes checking if gethostbyname_r can be linked... yes checking if gethostbyname_r is prototyped... yes checking if gethostbyname_r takes 3 args.... no checking if gethostbyname_r takes 5 args.... no checking if gethostbyname_r takes 6 args.... yes checking if gethostbyname_r is compilable... yes checking if gethostbyname_r usage allowed... yes checking if gethostbyname_r might be used... yes checking if gethostname can be linked... yes checking if gethostname is prototyped... yes checking if gethostname is compilable... yes checking for gethostname arg 2 data type... size_t checking if gethostname usage allowed... yes checking if gethostname might be used... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for ifaddrs.h... yes checking if getifaddrs can be linked... yes checking if getifaddrs is prototyped... yes checking if getifaddrs is compilable... yes checking if getifaddrs seems to work... yes checking if getifaddrs usage allowed... yes checking if getifaddrs might be used... yes checking if getpeername can be linked... yes checking if getpeername is prototyped... yes checking if getpeername is compilable... yes checking if getpeername usage allowed... yes checking if getpeername might be used... yes checking if getsockname can be linked... yes checking if getsockname is prototyped... yes checking if getsockname is compilable... yes checking if getsockname usage allowed... yes checking if getsockname might be used... yes checking for sys/types.h... (cached) yes checking if gmtime_r can be linked... yes checking if gmtime_r is prototyped... yes checking if gmtime_r is compilable... yes checking if gmtime_r seems to work... yes checking if gmtime_r usage allowed... yes checking if gmtime_r might be used... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/ioctl.h... (cached) yes checking for stropts.h... no checking if ioctl can be linked... yes checking if ioctl is prototyped... yes checking if ioctl is compilable... yes checking if ioctl usage allowed... yes checking if ioctl might be used... yes checking if ioctl FIONBIO is compilable... yes checking if ioctl FIONBIO usage allowed... yes checking if ioctl FIONBIO might be used... yes checking if ioctl SIOCGIFADDR is compilable... yes checking if ioctl SIOCGIFADDR usage allowed... yes checking if ioctl SIOCGIFADDR might be used... yes checking if ioctlsocket can be linked... no checking if ioctlsocket might be used... no checking if IoctlSocket can be linked... no checking if IoctlSocket might be used... no checking if memrchr can be linked... yes checking if memrchr is prototyped... yes checking if memrchr is compilable... yes checking if memrchr usage allowed... yes checking if memrchr might be used... yes checking for sys/types.h... (cached) yes checking if sigaction can be linked... yes checking if sigaction is prototyped... yes checking if sigaction is compilable... yes checking if sigaction usage allowed... yes checking if sigaction might be used... yes checking if siginterrupt can be linked... yes checking if siginterrupt is prototyped... yes checking if siginterrupt is compilable... yes checking if siginterrupt usage allowed... yes checking if siginterrupt might be used... yes checking if signal can be linked... yes checking if signal is prototyped... yes checking if signal is compilable... yes checking if signal usage allowed... yes checking if signal might be used... yes checking for sys/types.h... (cached) yes checking if sigsetjmp can be linked... no checking if sigsetjmp seems a macro... yes checking if sigsetjmp is compilable... yes checking if sigsetjmp usage allowed... yes checking if sigsetjmp might be used... yes checking if socket can be linked... yes checking if socket is prototyped... yes checking if socket is compilable... yes checking if socket usage allowed... yes checking if socket might be used... yes checking if socketpair can be linked... yes checking if socketpair is prototyped... yes checking if socketpair is compilable... yes checking if socketpair usage allowed... yes checking if socketpair might be used... yes checking if strdup can be linked... yes checking if strdup is prototyped... yes checking if strdup is compilable... yes checking if strdup usage allowed... yes checking if strdup might be used... yes checking if strerror_r can be linked... yes checking if strerror_r is prototyped... yes checking if strerror_r is compilable... yes checking if strerror_r is glibc like... yes checking if strerror_r seems to work... yes checking if strerror_r usage allowed... yes checking if strerror_r might be used... yes checking for accept4... yes checking for eventfd... yes checking for fnmatch... yes checking for geteuid... yes checking for getpass_r... no checking for getppid... yes checking for getpwuid... yes checking for getpwuid_r... yes checking for getrlimit... yes checking for gettimeofday... yes checking for if_nametoindex... yes checking for mach_absolute_time... no checking for pipe... yes checking for pipe2... yes checking for poll... yes checking for sendmmsg... yes checking for sendmsg... yes checking for setlocale... yes checking for setrlimit... yes checking for snprintf... yes checking for utime... yes checking for utimes... yes checking for realpath... yes checking for sched_yield... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for arpa/inet.h... (cached) yes checking if inet_ntop can be linked... yes checking if inet_ntop is prototyped... yes checking if inet_ntop is compilable... yes checking if inet_ntop seems to work... yes checking if inet_ntop usage allowed... yes checking if inet_ntop might be used... yes checking if inet_pton can be linked... yes checking if inet_pton is prototyped... yes checking if inet_pton is compilable... yes checking if inet_pton seems to work... yes checking if inet_pton usage allowed... yes checking if inet_pton might be used... yes checking if strcasecmp can be linked... yes checking if strcasecmp is prototyped... yes checking if strcasecmp is compilable... yes checking if strcasecmp usage allowed... yes checking if strcasecmp might be used... yes checking if strcmpi can be linked... no checking if strcmpi might be used... no checking if stricmp can be linked... no checking if stricmp might be used... no checking for setmode... no checking for fseeko... yes checking for gcc options needed to detect all undeclared functions... none needed checking whether fseeko is declared... yes checking how to set a socket into non-blocking mode... fcntl O_NONBLOCK checking for perl... /usr/bin/perl checking whether to enable the threaded resolver... yes checking for pthread.h... yes checking for pthread_create... yes checking for dirent.h... yes checking for opendir... yes checking convert -I options to -isystem... yes checking whether to enable verbose strings... yes checking whether to enable SSPI support (Windows native builds only)... no checking whether to enable basic authentication method... yes checking whether to enable bearer authentication method... yes checking whether to enable digest authentication method... yes checking whether to enable kerberos authentication method... yes checking whether to enable negotiate authentication method... yes checking whether to enable aws sig methods... yes checking whether to support NTLM... yes checking whether to enable TLS-SRP authentication... yes checking whether to enable Unix domain sockets... auto checking for struct sockaddr_un.sun_path... yes checking whether to support cookies... yes checking whether to support socketpair... yes checking whether to support HTTP authentication... yes checking whether to support DoH... yes checking whether to support the MIME API... yes checking whether to support binding connections locally... yes checking whether to support the form API... yes checking whether to support date parsing... yes checking whether to support netrc parsing... yes checking whether to support progress-meter... yes checking whether to support the SHA-512/256 hash algorithm... yes checking whether to support DNS shuffling... yes checking whether to support curl_easy_option*... yes checking whether to support alt-svc... yes checking whether to support headers-api... yes checking whether to support HSTS... yes checking whether to enable HTTPS-RR support... no checking for SSL_set0_wbio... yes checking whether to support WebSockets... yes checking whether hiding of library internal symbols will actually happen... yes checking if this build supports HTTPS-proxy... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating docs/Makefile config.status: creating docs/examples/Makefile config.status: creating docs/libcurl/Makefile config.status: creating docs/libcurl/opts/Makefile config.status: creating docs/cmdline-opts/Makefile config.status: creating include/Makefile config.status: creating include/curl/Makefile config.status: creating src/Makefile config.status: creating lib/Makefile config.status: creating scripts/Makefile config.status: creating lib/libcurl.vers config.status: creating tests/Makefile config.status: creating tests/config config.status: creating tests/configurehelp.pm config.status: creating tests/certs/Makefile config.status: creating tests/data/Makefile config.status: creating tests/server/Makefile config.status: creating tests/libtest/Makefile config.status: creating tests/unit/Makefile config.status: creating tests/tunit/Makefile config.status: creating tests/client/Makefile config.status: creating tests/http/config.ini config.status: creating tests/http/Makefile config.status: creating packages/Makefile config.status: creating packages/vms/Makefile config.status: creating curl-config config.status: creating libcurl.pc config.status: creating lib/curl_config.h config.status: executing depfiles commands config.status: executing libtool commands configure: Configured to build curl/libcurl: Host setup: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc CFLAGS: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/curl/src=/usr/src/debug/curl -flto=auto -Werror-implicit-function-declaration -Wno-system-headers CFLAGS extras: CPPFLAGS: -D_GNU_SOURCE LDFLAGS: -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -flto=auto curl-config: LIBS: -lnghttp3 -lnghttp2 -lidn2 -lssh2 -lssh2 -lpsl -lssl -lcrypto -lssl -lcrypto -lgssapi_krb5 -lzstd -lbrotlidec -lz curl version: 8.15.0 SSL: enabled (OpenSSL v3+) SSH: enabled (libssh2) zlib: enabled brotli: enabled (libbrotlidec) zstd: enabled (libzstd) GSS-API: enabled (MIT Kerberos/Heimdal) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: enabled (libidn2) Build docs: enabled (--disable-docs) Build libcurl: Shared=yes, Static=yes Built-in manual: no (--enable-manual) --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: /etc/ssl/certs/ca-certificates.crt ca cert path: no ca cert embed: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) IPFS/IPNS: enabled RTSP: enabled RTMP: no (--with-librtmp) PSL: enabled Alt-svc: enabled (--disable-alt-svc) Headers API: enabled (--disable-headers-api) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: enabled (nghttp2) HTTP3: enabled (openssl + nghttp3) ECH: no (--enable-ech) HTTPS RR: no (--enable-httpsrr) SSLS-EXPORT: no (--enable-ssls-export) Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd configure: WARNING: HTTP3 is enabled but marked EXPERIMENTAL. Use with caution! Making all in lib make[1]: Entering directory '/build/curl/src/build-curl/lib' make all-am make[2]: Entering directory '/build/curl/src/build-curl/lib' CC libcurl_la-altsvc.lo CC libcurl_la-amigaos.lo CC libcurl_la-asyn-ares.lo CC libcurl_la-asyn-base.lo CC libcurl_la-asyn-thrdd.lo CC libcurl_la-bufref.lo CC libcurl_la-bufq.lo CC libcurl_la-cf-h1-proxy.lo CC libcurl_la-cf-h2-proxy.lo CC libcurl_la-cf-haproxy.lo CC libcurl_la-cf-https-connect.lo CC libcurl_la-cf-socket.lo CC libcurl_la-cfilters.lo CC libcurl_la-conncache.lo CC libcurl_la-connect.lo CC libcurl_la-content_encoding.lo CC libcurl_la-cookie.lo CC libcurl_la-cshutdn.lo CC libcurl_la-curl_addrinfo.lo CC libcurl_la-curl_des.lo CC libcurl_la-curl_endian.lo CC libcurl_la-curl_fnmatch.lo CC libcurl_la-curl_get_line.lo CC libcurl_la-curl_gethostname.lo CC libcurl_la-curl_gssapi.lo CC libcurl_la-curl_memrchr.lo CC libcurl_la-curl_ntlm_core.lo CC libcurl_la-curl_range.lo CC libcurl_la-curl_rtmp.lo CC libcurl_la-curl_sasl.lo CC libcurl_la-curl_sha512_256.lo CC libcurl_la-curl_sspi.lo CC libcurl_la-curl_threads.lo CC libcurl_la-curl_trc.lo CC libcurl_la-cw-out.lo CC libcurl_la-cw-pause.lo CC libcurl_la-dict.lo CC libcurl_la-doh.lo CC libcurl_la-dynhds.lo CC libcurl_la-easy.lo CC libcurl_la-easygetopt.lo CC libcurl_la-easyoptions.lo CC libcurl_la-escape.lo CC libcurl_la-fake_addrinfo.lo CC libcurl_la-file.lo CC libcurl_la-fileinfo.lo CC libcurl_la-fopen.lo CC libcurl_la-formdata.lo CC libcurl_la-ftp.lo CC libcurl_la-ftplistparser.lo CC libcurl_la-getenv.lo CC libcurl_la-getinfo.lo CC libcurl_la-gopher.lo CC libcurl_la-hash.lo CC libcurl_la-headers.lo CC libcurl_la-hmac.lo CC libcurl_la-hostip.lo CC libcurl_la-hostip4.lo CC libcurl_la-hostip6.lo CC libcurl_la-hsts.lo CC libcurl_la-http.lo CC libcurl_la-http1.lo CC libcurl_la-http2.lo CC libcurl_la-http_aws_sigv4.lo CC libcurl_la-http_chunks.lo CC libcurl_la-http_digest.lo CC libcurl_la-http_negotiate.lo CC libcurl_la-http_ntlm.lo CC libcurl_la-http_proxy.lo CC libcurl_la-httpsrr.lo CC libcurl_la-idn.lo CC libcurl_la-if2ip.lo CC libcurl_la-imap.lo CC libcurl_la-krb5.lo CC libcurl_la-ldap.lo CC libcurl_la-llist.lo CC libcurl_la-macos.lo CC libcurl_la-md4.lo CC libcurl_la-md5.lo CC libcurl_la-memdebug.lo CC libcurl_la-mime.lo CC libcurl_la-mprintf.lo CC libcurl_la-mqtt.lo CC libcurl_la-multi.lo CC libcurl_la-multi_ev.lo CC libcurl_la-netrc.lo CC libcurl_la-noproxy.lo CC libcurl_la-openldap.lo CC libcurl_la-parsedate.lo CC libcurl_la-pingpong.lo CC libcurl_la-pop3.lo CC libcurl_la-progress.lo CC libcurl_la-psl.lo CC libcurl_la-rand.lo CC libcurl_la-rename.lo CC libcurl_la-request.lo CC libcurl_la-rtsp.lo CC libcurl_la-select.lo CC libcurl_la-sendf.lo CC libcurl_la-setopt.lo CC libcurl_la-sha256.lo CC libcurl_la-share.lo CC libcurl_la-slist.lo CC libcurl_la-smb.lo CC libcurl_la-smtp.lo CC libcurl_la-socketpair.lo CC libcurl_la-socks.lo CC libcurl_la-socks_gssapi.lo CC libcurl_la-socks_sspi.lo CC libcurl_la-speedcheck.lo CC libcurl_la-splay.lo CC libcurl_la-strcase.lo CC libcurl_la-strdup.lo CC libcurl_la-strequal.lo CC libcurl_la-strerror.lo CC libcurl_la-system_win32.lo CC libcurl_la-telnet.lo CC libcurl_la-tftp.lo CC libcurl_la-transfer.lo CC libcurl_la-uint-bset.lo CC libcurl_la-uint-hash.lo CC libcurl_la-uint-spbset.lo CC libcurl_la-uint-table.lo CC libcurl_la-url.lo CC libcurl_la-urlapi.lo CC libcurl_la-version.lo CC libcurl_la-ws.lo CC libcurlu_la-altsvc.lo CC libcurlu_la-amigaos.lo CC libcurlu_la-asyn-ares.lo CC libcurlu_la-asyn-base.lo CC libcurlu_la-asyn-thrdd.lo CC libcurlu_la-bufq.lo CC libcurlu_la-bufref.lo CC libcurlu_la-cf-h1-proxy.lo CC libcurlu_la-cf-h2-proxy.lo CC libcurlu_la-cf-haproxy.lo CC libcurlu_la-cf-https-connect.lo CC libcurlu_la-cf-socket.lo CC libcurlu_la-cfilters.lo CC libcurlu_la-conncache.lo CC libcurlu_la-connect.lo CC libcurlu_la-content_encoding.lo CC libcurlu_la-cookie.lo CC libcurlu_la-cshutdn.lo CC libcurlu_la-curl_addrinfo.lo CC libcurlu_la-curl_des.lo CC libcurlu_la-curl_endian.lo CC libcurlu_la-curl_fnmatch.lo CC libcurlu_la-curl_get_line.lo CC libcurlu_la-curl_gethostname.lo CC libcurlu_la-curl_gssapi.lo CC libcurlu_la-curl_memrchr.lo CC libcurlu_la-curl_ntlm_core.lo CC libcurlu_la-curl_range.lo CC libcurlu_la-curl_rtmp.lo CC libcurlu_la-curl_sasl.lo CC libcurlu_la-curl_sha512_256.lo CC libcurlu_la-curl_sspi.lo CC libcurlu_la-curl_threads.lo CC libcurlu_la-curl_trc.lo CC libcurlu_la-cw-out.lo CC libcurlu_la-cw-pause.lo CC libcurlu_la-dict.lo CC libcurlu_la-doh.lo CC libcurlu_la-dynhds.lo CC libcurlu_la-easy.lo CC libcurlu_la-easygetopt.lo CC libcurlu_la-easyoptions.lo CC libcurlu_la-escape.lo CC libcurlu_la-fake_addrinfo.lo CC libcurlu_la-file.lo CC libcurlu_la-fileinfo.lo CC libcurlu_la-fopen.lo CC libcurlu_la-formdata.lo CC libcurlu_la-ftp.lo CC libcurlu_la-ftplistparser.lo CC libcurlu_la-getenv.lo CC libcurlu_la-getinfo.lo CC libcurlu_la-gopher.lo CC libcurlu_la-hash.lo CC libcurlu_la-headers.lo CC libcurlu_la-hmac.lo CC libcurlu_la-hostip.lo CC libcurlu_la-hostip4.lo CC libcurlu_la-hostip6.lo CC libcurlu_la-hsts.lo CC libcurlu_la-http.lo CC libcurlu_la-http1.lo CC libcurlu_la-http2.lo CC libcurlu_la-http_aws_sigv4.lo CC libcurlu_la-http_chunks.lo CC libcurlu_la-http_digest.lo CC libcurlu_la-http_negotiate.lo CC libcurlu_la-http_ntlm.lo CC libcurlu_la-http_proxy.lo CC libcurlu_la-httpsrr.lo CC libcurlu_la-idn.lo CC libcurlu_la-if2ip.lo CC libcurlu_la-imap.lo CC libcurlu_la-krb5.lo CC libcurlu_la-ldap.lo CC libcurlu_la-llist.lo CC libcurlu_la-macos.lo CC libcurlu_la-md4.lo CC libcurlu_la-md5.lo CC libcurlu_la-memdebug.lo CC libcurlu_la-mime.lo CC libcurlu_la-mprintf.lo CC libcurlu_la-mqtt.lo CC libcurlu_la-multi.lo CC libcurlu_la-multi_ev.lo CC libcurlu_la-netrc.lo CC libcurlu_la-noproxy.lo CC libcurlu_la-openldap.lo CC libcurlu_la-parsedate.lo CC libcurlu_la-pingpong.lo CC libcurlu_la-pop3.lo CC libcurlu_la-progress.lo CC libcurlu_la-psl.lo CC libcurlu_la-rand.lo CC libcurlu_la-rename.lo CC libcurlu_la-request.lo CC libcurlu_la-rtsp.lo CC libcurlu_la-select.lo CC libcurlu_la-sendf.lo CC libcurlu_la-setopt.lo CC libcurlu_la-sha256.lo CC libcurlu_la-share.lo CC libcurlu_la-slist.lo CC libcurlu_la-smb.lo CC libcurlu_la-smtp.lo CC libcurlu_la-socketpair.lo CC libcurlu_la-socks.lo CC libcurlu_la-socks_gssapi.lo CC libcurlu_la-socks_sspi.lo CC libcurlu_la-speedcheck.lo CC libcurlu_la-splay.lo CC libcurlu_la-strcase.lo CC libcurlu_la-strdup.lo CC libcurlu_la-strequal.lo CC libcurlu_la-strerror.lo CC libcurlu_la-system_win32.lo CC libcurlu_la-telnet.lo CC libcurlu_la-tftp.lo CC libcurlu_la-transfer.lo CC libcurlu_la-uint-bset.lo CC libcurlu_la-uint-hash.lo CC libcurlu_la-uint-spbset.lo CC libcurlu_la-uint-table.lo CC libcurlu_la-url.lo CC libcurlu_la-urlapi.lo CC libcurlu_la-version.lo CC libcurlu_la-ws.lo CC vauth/libcurlu_la-cleartext.lo CC vauth/libcurlu_la-cram.lo CC vauth/libcurlu_la-digest.lo CC vauth/libcurlu_la-digest_sspi.lo CC vauth/libcurlu_la-gsasl.lo CC vauth/libcurlu_la-krb5_gssapi.lo CC vauth/libcurlu_la-krb5_sspi.lo CC vauth/libcurlu_la-ntlm.lo CC vauth/libcurlu_la-ntlm_sspi.lo CC vauth/libcurlu_la-oauth2.lo CC vauth/libcurlu_la-spnego_gssapi.lo CC vauth/libcurlu_la-spnego_sspi.lo CC vauth/libcurlu_la-vauth.lo CC vtls/libcurlu_la-cipher_suite.lo CC vtls/libcurlu_la-gtls.lo CC vtls/libcurlu_la-hostcheck.lo CC vtls/libcurlu_la-keylog.lo CC vtls/libcurlu_la-mbedtls.lo CC vtls/libcurlu_la-mbedtls_threadlock.lo CC vtls/libcurlu_la-openssl.lo CC vtls/libcurlu_la-rustls.lo CC vtls/libcurlu_la-schannel.lo CC vtls/libcurlu_la-schannel_verify.lo CC vtls/libcurlu_la-vtls.lo CC vtls/libcurlu_la-vtls_scache.lo CC vtls/libcurlu_la-vtls_spack.lo CC vtls/libcurlu_la-wolfssl.lo CC vtls/libcurlu_la-x509asn1.lo CC vquic/libcurlu_la-curl_msh3.lo CC vquic/libcurlu_la-curl_ngtcp2.lo CC vquic/libcurlu_la-curl_osslq.lo CC vquic/libcurlu_la-curl_quiche.lo CC vquic/libcurlu_la-vquic.lo CC vquic/libcurlu_la-vquic-tls.lo CC vssh/libcurlu_la-libssh.lo CC vssh/libcurlu_la-libssh2.lo CC vssh/libcurlu_la-curl_path.lo CC vssh/libcurlu_la-wolfssh.lo CC curlx/libcurlu_la-base64.lo CC curlx/libcurlu_la-dynbuf.lo CC curlx/libcurlu_la-inet_ntop.lo CC curlx/libcurlu_la-inet_pton.lo CC curlx/libcurlu_la-multibyte.lo CC curlx/libcurlu_la-nonblock.lo CC curlx/libcurlu_la-strparse.lo CC curlx/libcurlu_la-timediff.lo CC curlx/libcurlu_la-timeval.lo CC curlx/libcurlu_la-version_win32.lo CC curlx/libcurlu_la-wait.lo CC curlx/libcurlu_la-warnless.lo CC curlx/libcurlu_la-winapi.lo UNITPR unitprotos.h CC vauth/libcurl_la-cleartext.lo CC vauth/libcurl_la-cram.lo CC vauth/libcurl_la-digest.lo CC vauth/libcurl_la-digest_sspi.lo CC vauth/libcurl_la-gsasl.lo CC vauth/libcurl_la-krb5_gssapi.lo CC vauth/libcurl_la-krb5_sspi.lo CC vauth/libcurl_la-ntlm.lo CC vauth/libcurl_la-ntlm_sspi.lo CC vauth/libcurl_la-oauth2.lo CC vauth/libcurl_la-spnego_gssapi.lo CC vauth/libcurl_la-spnego_sspi.lo CC vauth/libcurl_la-vauth.lo CC vtls/libcurl_la-cipher_suite.lo CC vtls/libcurl_la-gtls.lo CC vtls/libcurl_la-hostcheck.lo CC vtls/libcurl_la-keylog.lo CC vtls/libcurl_la-mbedtls.lo CC vtls/libcurl_la-mbedtls_threadlock.lo CC vtls/libcurl_la-openssl.lo CC vtls/libcurl_la-rustls.lo CC vtls/libcurl_la-schannel.lo CC vtls/libcurl_la-schannel_verify.lo CC vtls/libcurl_la-vtls.lo CC vtls/libcurl_la-vtls_scache.lo CC vtls/libcurl_la-vtls_spack.lo CC vtls/libcurl_la-wolfssl.lo CC vtls/libcurl_la-x509asn1.lo CC vquic/libcurl_la-curl_msh3.lo CC vquic/libcurl_la-curl_ngtcp2.lo CC vquic/libcurl_la-curl_osslq.lo CC vquic/libcurl_la-curl_quiche.lo CC vquic/libcurl_la-vquic.lo CC vquic/libcurl_la-vquic-tls.lo CC vssh/libcurl_la-libssh.lo CC vssh/libcurl_la-libssh2.lo CC vssh/libcurl_la-curl_path.lo CC vssh/libcurl_la-wolfssh.lo CC curlx/libcurl_la-base64.lo CC curlx/libcurl_la-dynbuf.lo CC curlx/libcurl_la-inet_ntop.lo CC curlx/libcurl_la-inet_pton.lo CC curlx/libcurl_la-multibyte.lo CC curlx/libcurl_la-nonblock.lo CC curlx/libcurl_la-strparse.lo CC curlx/libcurl_la-timediff.lo CC curlx/libcurl_la-timeval.lo CC curlx/libcurl_la-version_win32.lo CC curlx/libcurl_la-wait.lo CC curlx/libcurl_la-warnless.lo CC curlx/libcurl_la-winapi.lo CCLD libcurlu.la CCLD libcurl.la make[2]: Leaving directory '/build/curl/src/build-curl/lib' make[1]: Leaving directory '/build/curl/src/build-curl/lib' Making all in docs make[1]: Entering directory '/build/curl/src/build-curl/docs' RENDER mk-ca-bundle.1 RENDER curl-config.1 RENDER runtests.1 RENDER testcurl.1 Making all in . make[2]: Entering directory '/build/curl/src/build-curl/docs' RENDER wcurl.1 make[2]: Leaving directory '/build/curl/src/build-curl/docs' Making all in cmdline-opts make[2]: Entering directory '/build/curl/src/build-curl/docs/cmdline-opts' GENERATE curl.1 GENERATE curl.txt make[2]: Leaving directory '/build/curl/src/build-curl/docs/cmdline-opts' Making all in libcurl make[2]: Entering directory '/build/curl/src/build-curl/docs/libcurl' Making all in opts make[3]: Entering directory '/build/curl/src/build-curl/docs/libcurl/opts' RENDER CURLINFO_ACTIVESOCKET.3 RENDER CURLINFO_APPCONNECT_TIME.3 RENDER CURLINFO_APPCONNECT_TIME_T.3 RENDER CURLINFO_CAINFO.3 RENDER CURLINFO_CAPATH.3 RENDER CURLINFO_CERTINFO.3 RENDER CURLINFO_CONDITION_UNMET.3 RENDER CURLINFO_CONNECT_TIME.3 RENDER CURLINFO_CONN_ID.3 RENDER CURLINFO_CONNECT_TIME_T.3 RENDER CURLINFO_CONTENT_LENGTH_DOWNLOAD.3 RENDER CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3 RENDER CURLINFO_CONTENT_LENGTH_UPLOAD.3 RENDER CURLINFO_CONTENT_LENGTH_UPLOAD_T.3 RENDER CURLINFO_CONTENT_TYPE.3 RENDER CURLINFO_COOKIELIST.3 RENDER CURLINFO_EARLYDATA_SENT_T.3 RENDER CURLINFO_EFFECTIVE_METHOD.3 RENDER CURLINFO_EFFECTIVE_URL.3 RENDER CURLINFO_FILETIME.3 RENDER CURLINFO_FILETIME_T.3 RENDER CURLINFO_FTP_ENTRY_PATH.3 RENDER CURLINFO_HEADER_SIZE.3 RENDER CURLINFO_HTTP_CONNECTCODE.3 RENDER CURLINFO_HTTP_VERSION.3 RENDER CURLINFO_HTTPAUTH_AVAIL.3 RENDER CURLINFO_HTTPAUTH_USED.3 RENDER CURLINFO_LASTSOCKET.3 RENDER CURLINFO_LOCAL_IP.3 RENDER CURLINFO_LOCAL_PORT.3 RENDER CURLINFO_NAMELOOKUP_TIME.3 RENDER CURLINFO_NAMELOOKUP_TIME_T.3 RENDER CURLINFO_NUM_CONNECTS.3 RENDER CURLINFO_OS_ERRNO.3 RENDER CURLINFO_PRETRANSFER_TIME.3 RENDER CURLINFO_PRETRANSFER_TIME_T.3 RENDER CURLINFO_POSTTRANSFER_TIME_T.3 RENDER CURLINFO_PRIMARY_IP.3 RENDER CURLINFO_PRIMARY_PORT.3 RENDER CURLINFO_PRIVATE.3 RENDER CURLINFO_PROTOCOL.3 RENDER CURLINFO_PROXY_ERROR.3 RENDER CURLINFO_PROXY_SSL_VERIFYRESULT.3 RENDER CURLINFO_PROXYAUTH_AVAIL.3 RENDER CURLINFO_PROXYAUTH_USED.3 RENDER CURLINFO_QUEUE_TIME_T.3 RENDER CURLINFO_REDIRECT_COUNT.3 RENDER CURLINFO_REDIRECT_TIME.3 RENDER CURLINFO_REDIRECT_TIME_T.3 RENDER CURLINFO_REDIRECT_URL.3 RENDER CURLINFO_REFERER.3 RENDER CURLINFO_REQUEST_SIZE.3 RENDER CURLINFO_RESPONSE_CODE.3 RENDER CURLINFO_RETRY_AFTER.3 RENDER CURLINFO_RTSP_CLIENT_CSEQ.3 RENDER CURLINFO_RTSP_CSEQ_RECV.3 RENDER CURLINFO_RTSP_SERVER_CSEQ.3 RENDER CURLINFO_RTSP_SESSION_ID.3 RENDER CURLINFO_SCHEME.3 RENDER CURLINFO_SIZE_DOWNLOAD.3 RENDER CURLINFO_SIZE_DOWNLOAD_T.3 RENDER CURLINFO_SIZE_UPLOAD.3 RENDER CURLINFO_SIZE_UPLOAD_T.3 RENDER CURLINFO_SPEED_DOWNLOAD.3 RENDER CURLINFO_SPEED_DOWNLOAD_T.3 RENDER CURLINFO_SPEED_UPLOAD.3 RENDER CURLINFO_SPEED_UPLOAD_T.3 RENDER CURLINFO_SSL_ENGINES.3 RENDER CURLINFO_SSL_VERIFYRESULT.3 RENDER CURLINFO_STARTTRANSFER_TIME.3 RENDER CURLINFO_STARTTRANSFER_TIME_T.3 RENDER CURLINFO_TLS_SESSION.3 RENDER CURLINFO_TLS_SSL_PTR.3 RENDER CURLINFO_TOTAL_TIME.3 RENDER CURLINFO_TOTAL_TIME_T.3 RENDER CURLINFO_USED_PROXY.3 RENDER CURLINFO_XFER_ID.3 RENDER CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 RENDER CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 RENDER CURLMOPT_MAX_CONCURRENT_STREAMS.3 RENDER CURLMOPT_MAX_HOST_CONNECTIONS.3 RENDER CURLMOPT_MAX_PIPELINE_LENGTH.3 RENDER CURLMOPT_MAX_TOTAL_CONNECTIONS.3 RENDER CURLMOPT_MAXCONNECTS.3 RENDER CURLMOPT_PIPELINING.3 RENDER CURLMOPT_PIPELINING_SERVER_BL.3 RENDER CURLMOPT_PIPELINING_SITE_BL.3 RENDER CURLMOPT_PUSHDATA.3 RENDER CURLMOPT_PUSHFUNCTION.3 RENDER CURLMOPT_SOCKETDATA.3 RENDER CURLMOPT_SOCKETFUNCTION.3 RENDER CURLMOPT_TIMERDATA.3 RENDER CURLMOPT_TIMERFUNCTION.3 RENDER CURLOPT_ABSTRACT_UNIX_SOCKET.3 RENDER CURLOPT_ACCEPT_ENCODING.3 RENDER CURLOPT_ACCEPTTIMEOUT_MS.3 RENDER CURLOPT_ADDRESS_SCOPE.3 RENDER CURLOPT_ALTSVC.3 RENDER CURLOPT_ALTSVC_CTRL.3 RENDER CURLOPT_APPEND.3 RENDER CURLOPT_AUTOREFERER.3 RENDER CURLOPT_AWS_SIGV4.3 RENDER CURLOPT_BUFFERSIZE.3 RENDER CURLOPT_CAINFO.3 RENDER CURLOPT_CAINFO_BLOB.3 RENDER CURLOPT_CAPATH.3 RENDER CURLOPT_CA_CACHE_TIMEOUT.3 RENDER CURLOPT_CERTINFO.3 RENDER CURLOPT_CHUNK_BGN_FUNCTION.3 RENDER CURLOPT_CHUNK_DATA.3 RENDER CURLOPT_CHUNK_END_FUNCTION.3 RENDER CURLOPT_CLOSESOCKETDATA.3 RENDER CURLOPT_CLOSESOCKETFUNCTION.3 RENDER CURLOPT_CONNECT_ONLY.3 RENDER CURLOPT_CONNECT_TO.3 RENDER CURLOPT_CONNECTTIMEOUT.3 RENDER CURLOPT_CONNECTTIMEOUT_MS.3 RENDER CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 RENDER CURLOPT_CONV_FROM_UTF8_FUNCTION.3 RENDER CURLOPT_CONV_TO_NETWORK_FUNCTION.3 RENDER CURLOPT_COOKIE.3 RENDER CURLOPT_COOKIEFILE.3 RENDER CURLOPT_COOKIEJAR.3 RENDER CURLOPT_COOKIELIST.3 RENDER CURLOPT_COOKIESESSION.3 RENDER CURLOPT_COPYPOSTFIELDS.3 RENDER CURLOPT_CRLF.3 RENDER CURLOPT_CRLFILE.3 RENDER CURLOPT_CURLU.3 RENDER CURLOPT_CUSTOMREQUEST.3 RENDER CURLOPT_DEBUGDATA.3 RENDER CURLOPT_DEBUGFUNCTION.3 RENDER CURLOPT_DEFAULT_PROTOCOL.3 RENDER CURLOPT_DIRLISTONLY.3 RENDER CURLOPT_DISALLOW_USERNAME_IN_URL.3 RENDER CURLOPT_DNS_CACHE_TIMEOUT.3 RENDER CURLOPT_DNS_INTERFACE.3 RENDER CURLOPT_DNS_LOCAL_IP4.3 RENDER CURLOPT_DNS_LOCAL_IP6.3 RENDER CURLOPT_DNS_SERVERS.3 RENDER CURLOPT_DNS_SHUFFLE_ADDRESSES.3 RENDER CURLOPT_DNS_USE_GLOBAL_CACHE.3 RENDER CURLOPT_DOH_SSL_VERIFYHOST.3 RENDER CURLOPT_DOH_SSL_VERIFYPEER.3 RENDER CURLOPT_DOH_SSL_VERIFYSTATUS.3 RENDER CURLOPT_DOH_URL.3 RENDER CURLOPT_ECH.3 RENDER CURLOPT_EGDSOCKET.3 RENDER CURLOPT_ERRORBUFFER.3 RENDER CURLOPT_EXPECT_100_TIMEOUT_MS.3 RENDER CURLOPT_FAILONERROR.3 RENDER CURLOPT_FILETIME.3 RENDER CURLOPT_FNMATCH_DATA.3 RENDER CURLOPT_FNMATCH_FUNCTION.3 RENDER CURLOPT_FOLLOWLOCATION.3 RENDER CURLOPT_FORBID_REUSE.3 RENDER CURLOPT_FRESH_CONNECT.3 RENDER CURLOPT_FTP_ACCOUNT.3 RENDER CURLOPT_FTP_ALTERNATIVE_TO_USER.3 RENDER CURLOPT_FTP_CREATE_MISSING_DIRS.3 RENDER CURLOPT_FTP_FILEMETHOD.3 RENDER CURLOPT_FTP_SKIP_PASV_IP.3 RENDER CURLOPT_FTP_SSL_CCC.3 RENDER CURLOPT_FTP_USE_EPRT.3 RENDER CURLOPT_FTP_USE_EPSV.3 RENDER CURLOPT_FTP_USE_PRET.3 RENDER CURLOPT_FTPPORT.3 RENDER CURLOPT_FTPSSLAUTH.3 RENDER CURLOPT_GSSAPI_DELEGATION.3 RENDER CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 RENDER CURLOPT_HAPROXYPROTOCOL.3 RENDER CURLOPT_HAPROXY_CLIENT_IP.3 RENDER CURLOPT_HEADER.3 RENDER CURLOPT_HEADERDATA.3 RENDER CURLOPT_HEADERFUNCTION.3 RENDER CURLOPT_HEADEROPT.3 RENDER CURLOPT_HSTS.3 RENDER CURLOPT_HSTS_CTRL.3 RENDER CURLOPT_HSTSREADDATA.3 RENDER CURLOPT_HSTSREADFUNCTION.3 RENDER CURLOPT_HSTSWRITEDATA.3 RENDER CURLOPT_HSTSWRITEFUNCTION.3 RENDER CURLOPT_HTTP09_ALLOWED.3 RENDER CURLOPT_HTTP200ALIASES.3 RENDER CURLOPT_HTTP_CONTENT_DECODING.3 RENDER CURLOPT_HTTP_TRANSFER_DECODING.3 RENDER CURLOPT_HTTP_VERSION.3 RENDER CURLOPT_HTTPAUTH.3 RENDER CURLOPT_HTTPGET.3 RENDER CURLOPT_HTTPHEADER.3 RENDER CURLOPT_HTTPPOST.3 RENDER CURLOPT_HTTPPROXYTUNNEL.3 RENDER CURLOPT_IGNORE_CONTENT_LENGTH.3 RENDER CURLOPT_INFILESIZE.3 RENDER CURLOPT_INFILESIZE_LARGE.3 RENDER CURLOPT_INTERFACE.3 RENDER CURLOPT_INTERLEAVEDATA.3 RENDER CURLOPT_INTERLEAVEFUNCTION.3 RENDER CURLOPT_IOCTLDATA.3 RENDER CURLOPT_IOCTLFUNCTION.3 RENDER CURLOPT_IPRESOLVE.3 RENDER CURLOPT_ISSUERCERT.3 RENDER CURLOPT_ISSUERCERT_BLOB.3 RENDER CURLOPT_KEEP_SENDING_ON_ERROR.3 RENDER CURLOPT_KEYPASSWD.3 RENDER CURLOPT_KRBLEVEL.3 RENDER CURLOPT_LOCALPORT.3 RENDER CURLOPT_LOCALPORTRANGE.3 RENDER CURLOPT_LOGIN_OPTIONS.3 RENDER CURLOPT_LOW_SPEED_LIMIT.3 RENDER CURLOPT_LOW_SPEED_TIME.3 RENDER CURLOPT_MAIL_AUTH.3 RENDER CURLOPT_MAIL_FROM.3 RENDER CURLOPT_MAIL_RCPT.3 RENDER CURLOPT_MAIL_RCPT_ALLOWFAILS.3 RENDER CURLOPT_MAX_RECV_SPEED_LARGE.3 RENDER CURLOPT_MAX_SEND_SPEED_LARGE.3 RENDER CURLOPT_MAXAGE_CONN.3 RENDER CURLOPT_MAXCONNECTS.3 RENDER CURLOPT_MAXFILESIZE.3 RENDER CURLOPT_MAXFILESIZE_LARGE.3 RENDER CURLOPT_MAXLIFETIME_CONN.3 RENDER CURLOPT_MAXREDIRS.3 RENDER CURLOPT_MIME_OPTIONS.3 RENDER CURLOPT_MIMEPOST.3 RENDER CURLOPT_NETRC.3 RENDER CURLOPT_NETRC_FILE.3 RENDER CURLOPT_NEW_DIRECTORY_PERMS.3 RENDER CURLOPT_NEW_FILE_PERMS.3 RENDER CURLOPT_NOBODY.3 RENDER CURLOPT_NOPROGRESS.3 RENDER CURLOPT_NOPROXY.3 RENDER CURLOPT_NOSIGNAL.3 RENDER CURLOPT_OPENSOCKETDATA.3 RENDER CURLOPT_OPENSOCKETFUNCTION.3 RENDER CURLOPT_PASSWORD.3 RENDER CURLOPT_PATH_AS_IS.3 RENDER CURLOPT_PINNEDPUBLICKEY.3 RENDER CURLOPT_PIPEWAIT.3 RENDER CURLOPT_PORT.3 RENDER CURLOPT_POST.3 RENDER CURLOPT_POSTFIELDS.3 RENDER CURLOPT_POSTFIELDSIZE.3 RENDER CURLOPT_POSTFIELDSIZE_LARGE.3 RENDER CURLOPT_POSTQUOTE.3 RENDER CURLOPT_POSTREDIR.3 RENDER CURLOPT_PRE_PROXY.3 RENDER CURLOPT_PREQUOTE.3 RENDER CURLOPT_PREREQDATA.3 RENDER CURLOPT_PREREQFUNCTION.3 RENDER CURLOPT_PRIVATE.3 RENDER CURLOPT_PROGRESSDATA.3 RENDER CURLOPT_PROGRESSFUNCTION.3 RENDER CURLOPT_PROTOCOLS.3 RENDER CURLOPT_PROTOCOLS_STR.3 RENDER CURLOPT_PROXY.3 RENDER CURLOPT_PROXY_CAINFO.3 RENDER CURLOPT_PROXY_CAINFO_BLOB.3 RENDER CURLOPT_PROXY_CAPATH.3 RENDER CURLOPT_PROXY_CRLFILE.3 RENDER CURLOPT_PROXY_ISSUERCERT.3 RENDER CURLOPT_PROXY_ISSUERCERT_BLOB.3 RENDER CURLOPT_PROXY_KEYPASSWD.3 RENDER CURLOPT_PROXY_PINNEDPUBLICKEY.3 RENDER CURLOPT_PROXY_SERVICE_NAME.3 RENDER CURLOPT_PROXY_SSL_CIPHER_LIST.3 RENDER CURLOPT_PROXY_SSL_OPTIONS.3 RENDER CURLOPT_PROXY_SSL_VERIFYHOST.3 RENDER CURLOPT_PROXY_SSL_VERIFYPEER.3 RENDER CURLOPT_PROXY_SSLCERT.3 RENDER CURLOPT_PROXY_SSLCERT_BLOB.3 RENDER CURLOPT_PROXY_SSLCERTTYPE.3 RENDER CURLOPT_PROXY_SSLKEY.3 RENDER CURLOPT_PROXY_SSLKEY_BLOB.3 RENDER CURLOPT_PROXY_SSLKEYTYPE.3 RENDER CURLOPT_PROXY_SSLVERSION.3 RENDER CURLOPT_PROXY_TLS13_CIPHERS.3 RENDER CURLOPT_PROXY_TLSAUTH_PASSWORD.3 RENDER CURLOPT_PROXY_TLSAUTH_TYPE.3 RENDER CURLOPT_PROXY_TLSAUTH_USERNAME.3 RENDER CURLOPT_PROXY_TRANSFER_MODE.3 RENDER CURLOPT_PROXYAUTH.3 RENDER CURLOPT_PROXYHEADER.3 RENDER CURLOPT_PROXYPASSWORD.3 RENDER CURLOPT_PROXYPORT.3 RENDER CURLOPT_PROXYTYPE.3 RENDER CURLOPT_PROXYUSERNAME.3 RENDER CURLOPT_PROXYUSERPWD.3 RENDER CURLOPT_PUT.3 RENDER CURLOPT_QUICK_EXIT.3 RENDER CURLOPT_QUOTE.3 RENDER CURLOPT_RANDOM_FILE.3 RENDER CURLOPT_RANGE.3 RENDER CURLOPT_READDATA.3 RENDER CURLOPT_READFUNCTION.3 RENDER CURLOPT_REDIR_PROTOCOLS.3 RENDER CURLOPT_REDIR_PROTOCOLS_STR.3 RENDER CURLOPT_REFERER.3 RENDER CURLOPT_REQUEST_TARGET.3 RENDER CURLOPT_RESOLVE.3 RENDER CURLOPT_RESOLVER_START_DATA.3 RENDER CURLOPT_RESOLVER_START_FUNCTION.3 RENDER CURLOPT_RESUME_FROM.3 RENDER CURLOPT_RESUME_FROM_LARGE.3 RENDER CURLOPT_RTSP_CLIENT_CSEQ.3 RENDER CURLOPT_RTSP_REQUEST.3 RENDER CURLOPT_RTSP_SERVER_CSEQ.3 RENDER CURLOPT_RTSP_SESSION_ID.3 RENDER CURLOPT_RTSP_STREAM_URI.3 RENDER CURLOPT_RTSP_TRANSPORT.3 RENDER CURLOPT_SASL_AUTHZID.3 RENDER CURLOPT_SASL_IR.3 RENDER CURLOPT_SEEKDATA.3 RENDER CURLOPT_SEEKFUNCTION.3 RENDER CURLOPT_SERVER_RESPONSE_TIMEOUT.3 RENDER CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.3 RENDER CURLOPT_SERVICE_NAME.3 RENDER CURLOPT_SHARE.3 RENDER CURLOPT_SOCKOPTDATA.3 RENDER CURLOPT_SOCKOPTFUNCTION.3 RENDER CURLOPT_SOCKS5_AUTH.3 RENDER CURLOPT_SOCKS5_GSSAPI_NEC.3 RENDER CURLOPT_SOCKS5_GSSAPI_SERVICE.3 RENDER CURLOPT_SSH_AUTH_TYPES.3 RENDER CURLOPT_SSH_COMPRESSION.3 RENDER CURLOPT_SSH_HOSTKEYDATA.3 RENDER CURLOPT_SSH_HOSTKEYFUNCTION.3 RENDER CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 RENDER CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3 RENDER CURLOPT_SSH_KEYDATA.3 RENDER CURLOPT_SSH_KEYFUNCTION.3 RENDER CURLOPT_SSH_KNOWNHOSTS.3 RENDER CURLOPT_SSH_PRIVATE_KEYFILE.3 RENDER CURLOPT_SSH_PUBLIC_KEYFILE.3 RENDER CURLOPT_SSL_CIPHER_LIST.3 RENDER CURLOPT_SSL_CTX_DATA.3 RENDER CURLOPT_SSL_CTX_FUNCTION.3 RENDER CURLOPT_SSL_EC_CURVES.3 RENDER CURLOPT_SSL_ENABLE_ALPN.3 RENDER CURLOPT_SSL_ENABLE_NPN.3 RENDER CURLOPT_SSL_FALSESTART.3 RENDER CURLOPT_SSL_OPTIONS.3 RENDER CURLOPT_SSL_SESSIONID_CACHE.3 RENDER CURLOPT_SSL_SIGNATURE_ALGORITHMS.3 RENDER CURLOPT_SSL_VERIFYHOST.3 RENDER CURLOPT_SSL_VERIFYPEER.3 RENDER CURLOPT_SSL_VERIFYSTATUS.3 RENDER CURLOPT_SSLCERT.3 RENDER CURLOPT_SSLCERT_BLOB.3 RENDER CURLOPT_SSLCERTTYPE.3 RENDER CURLOPT_SSLENGINE.3 RENDER CURLOPT_SSLENGINE_DEFAULT.3 RENDER CURLOPT_SSLKEY.3 RENDER CURLOPT_SSLKEY_BLOB.3 RENDER CURLOPT_SSLKEYTYPE.3 RENDER CURLOPT_SSLVERSION.3 RENDER CURLOPT_STDERR.3 RENDER CURLOPT_STREAM_DEPENDS.3 RENDER CURLOPT_STREAM_DEPENDS_E.3 RENDER CURLOPT_STREAM_WEIGHT.3 RENDER CURLOPT_SUPPRESS_CONNECT_HEADERS.3 RENDER CURLOPT_TCP_FASTOPEN.3 RENDER CURLOPT_TCP_KEEPALIVE.3 RENDER CURLOPT_TCP_KEEPIDLE.3 RENDER CURLOPT_TCP_KEEPINTVL.3 RENDER CURLOPT_TCP_KEEPCNT.3 RENDER CURLOPT_TCP_NODELAY.3 RENDER CURLOPT_TELNETOPTIONS.3 RENDER CURLOPT_TFTP_BLKSIZE.3 RENDER CURLOPT_TFTP_NO_OPTIONS.3 RENDER CURLOPT_TIMECONDITION.3 RENDER CURLOPT_TIMEOUT.3 RENDER CURLOPT_TIMEOUT_MS.3 RENDER CURLOPT_TIMEVALUE.3 RENDER CURLOPT_TIMEVALUE_LARGE.3 RENDER CURLOPT_TLS13_CIPHERS.3 RENDER CURLOPT_TLSAUTH_PASSWORD.3 RENDER CURLOPT_TLSAUTH_TYPE.3 RENDER CURLOPT_TLSAUTH_USERNAME.3 RENDER CURLOPT_TRAILERDATA.3 RENDER CURLOPT_TRAILERFUNCTION.3 RENDER CURLOPT_TRANSFER_ENCODING.3 RENDER CURLOPT_TRANSFERTEXT.3 RENDER CURLOPT_UNIX_SOCKET_PATH.3 RENDER CURLOPT_UNRESTRICTED_AUTH.3 RENDER CURLOPT_UPKEEP_INTERVAL_MS.3 RENDER CURLOPT_UPLOAD.3 RENDER CURLOPT_UPLOAD_BUFFERSIZE.3 RENDER CURLOPT_UPLOAD_FLAGS.3 RENDER CURLOPT_URL.3 RENDER CURLOPT_USE_SSL.3 RENDER CURLOPT_USERAGENT.3 RENDER CURLOPT_USERNAME.3 RENDER CURLOPT_USERPWD.3 RENDER CURLOPT_VERBOSE.3 RENDER CURLOPT_WILDCARDMATCH.3 RENDER CURLOPT_WRITEDATA.3 RENDER CURLOPT_WRITEFUNCTION.3 RENDER CURLOPT_WS_OPTIONS.3 RENDER CURLOPT_XFERINFODATA.3 RENDER CURLOPT_XFERINFOFUNCTION.3 RENDER CURLOPT_XOAUTH2_BEARER.3 RENDER CURLSHOPT_SHARE.3 RENDER CURLSHOPT_LOCKFUNC.3 RENDER CURLSHOPT_UNLOCKFUNC.3 RENDER CURLSHOPT_UNSHARE.3 RENDER CURLSHOPT_USERDATA.3 make[3]: Leaving directory '/build/curl/src/build-curl/docs/libcurl/opts' make[3]: Entering directory '/build/curl/src/build-curl/docs/libcurl' RENDER curl_easy_cleanup.3 RENDER curl_easy_duphandle.3 RENDER curl_easy_escape.3 RENDER curl_easy_getinfo.3 RENDER curl_easy_header.3 RENDER curl_easy_nextheader.3 RENDER curl_easy_init.3 RENDER curl_easy_option_by_id.3 RENDER curl_easy_option_by_name.3 RENDER curl_easy_option_next.3 RENDER curl_easy_pause.3 RENDER curl_easy_perform.3 RENDER curl_easy_recv.3 RENDER curl_easy_reset.3 RENDER curl_easy_send.3 RENDER curl_easy_setopt.3 RENDER curl_easy_ssls_export.3 RENDER curl_easy_ssls_import.3 RENDER curl_easy_strerror.3 RENDER curl_easy_upkeep.3 RENDER curl_easy_unescape.3 RENDER curl_escape.3 RENDER curl_formadd.3 RENDER curl_formfree.3 RENDER curl_formget.3 RENDER curl_free.3 RENDER curl_getdate.3 RENDER curl_getenv.3 RENDER curl_global_cleanup.3 RENDER curl_global_init.3 RENDER curl_global_init_mem.3 RENDER curl_global_sslset.3 RENDER curl_global_trace.3 RENDER curl_mime_addpart.3 RENDER curl_mime_data.3 RENDER curl_mime_data_cb.3 RENDER curl_mime_encoder.3 RENDER curl_mime_filedata.3 RENDER curl_mime_filename.3 RENDER curl_mime_free.3 RENDER curl_mime_headers.3 RENDER curl_mime_init.3 RENDER curl_mime_name.3 RENDER curl_mime_subparts.3 RENDER curl_mime_type.3 RENDER curl_mprintf.3 RENDER curl_multi_add_handle.3 RENDER curl_multi_assign.3 RENDER curl_multi_cleanup.3 RENDER curl_multi_fdset.3 RENDER curl_multi_get_handles.3 RENDER curl_multi_info_read.3 RENDER curl_multi_init.3 RENDER curl_multi_perform.3 RENDER curl_multi_poll.3 RENDER curl_multi_remove_handle.3 RENDER curl_multi_setopt.3 RENDER curl_multi_socket.3 RENDER curl_multi_socket_action.3 RENDER curl_multi_socket_all.3 RENDER curl_multi_strerror.3 RENDER curl_multi_timeout.3 RENDER curl_multi_wait.3 RENDER curl_multi_waitfds.3 RENDER curl_multi_wakeup.3 RENDER curl_pushheader_byname.3 RENDER curl_pushheader_bynum.3 RENDER curl_share_cleanup.3 RENDER curl_share_init.3 RENDER curl_share_setopt.3 RENDER curl_share_strerror.3 RENDER curl_slist_append.3 RENDER curl_slist_free_all.3 RENDER curl_strequal.3 RENDER curl_strnequal.3 RENDER curl_unescape.3 RENDER curl_url.3 RENDER curl_url_cleanup.3 RENDER curl_url_dup.3 RENDER curl_url_get.3 RENDER curl_url_set.3 RENDER curl_url_strerror.3 RENDER curl_version.3 RENDER curl_version_info.3 RENDER curl_ws_meta.3 RENDER curl_ws_recv.3 RENDER curl_ws_send.3 RENDER libcurl-easy.3 RENDER libcurl-env-dbg.3 RENDER libcurl-env.3 RENDER libcurl-errors.3 RENDER libcurl-multi.3 RENDER libcurl-security.3 RENDER libcurl-share.3 RENDER libcurl-symbols.md RENDER libcurl-thread.3 RENDER libcurl-tutorial.3 RENDER libcurl-url.3 RENDER libcurl-ws.3 RENDER libcurl.3 RENDER libcurl-symbols.3 make[3]: Leaving directory '/build/curl/src/build-curl/docs/libcurl' make[2]: Leaving directory '/build/curl/src/build-curl/docs/libcurl' make[1]: Leaving directory '/build/curl/src/build-curl/docs' Making all in src make[1]: Entering directory '/build/curl/src/build-curl/src' CC curl-config2setopts.o CC curl-slist_wc.o CC curl-terminal.o CC curl-tool_bname.o CC curl-tool_cb_dbg.o CC curl-tool_cb_hdr.o CC curl-tool_cb_prg.o CC curl-tool_cb_rea.o CC curl-tool_cb_see.o CC curl-tool_cb_soc.o CC curl-tool_cb_wrt.o CC curl-tool_cfgable.o CC curl-tool_dirhie.o CC curl-tool_doswin.o CC curl-tool_easysrc.o CC curl-tool_filetime.o CC curl-tool_findfile.o CC curl-tool_formparse.o CC curl-tool_getparam.o CC curl-tool_getpass.o CC curl-tool_help.o CC curl-tool_helpers.o CC curl-tool_ipfs.o CC curl-tool_libinfo.o CC curl-tool_listhelp.o CC curl-tool_main.o CC curl-tool_msgs.o CC curl-tool_operate.o CC curl-tool_operhlp.o CC curl-tool_parsecfg.o CC curl-tool_paramhlp.o CC curl-tool_progress.o CC curl-tool_setopt.o CC curl-tool_ssls.o CC curl-tool_stderr.o CC curl-tool_strdup.o CC curl-tool_urlglob.o CC curl-tool_util.o CC curl-tool_vms.o CC curl-tool_writeout.o CC curl-tool_writeout_json.o CC curl-tool_xattr.o CC curl-var.o echo '/* !checksrc! disable COPYRIGHT all */' > tool_hugehelp.c; \ echo '#include "tool_hugehelp.h"' >> tool_hugehelp.c echo '/* !checksrc! disable COPYRIGHT all */' > tool_ca_embed.c echo 'extern const void *curl_ca_embed; const void *curl_ca_embed;' >> tool_ca_embed.c CC ../lib/curlx/curl-base64.o CC ../lib/curlx/curl-multibyte.o CC ../lib/curlx/curl-dynbuf.o CC ../lib/curlx/curl-nonblock.o CC ../lib/curlx/curl-strparse.o CC ../lib/curlx/curl-timediff.o CC ../lib/curlx/curl-timeval.o CC ../lib/curlx/curl-version_win32.o CC ../lib/curlx/curl-wait.o CC ../lib/curlx/curl-warnless.o CC curlinfo.o CC libcurltool_la-config2setopts.lo CC libcurltool_la-slist_wc.lo CC libcurltool_la-terminal.lo CC libcurltool_la-tool_bname.lo CC libcurltool_la-tool_cb_dbg.lo CC libcurltool_la-tool_cb_hdr.lo CC libcurltool_la-tool_cb_prg.lo CC libcurltool_la-tool_cb_rea.lo CC libcurltool_la-tool_cb_see.lo CC libcurltool_la-tool_cb_soc.lo CC libcurltool_la-tool_cb_wrt.lo CC libcurltool_la-tool_cfgable.lo CC libcurltool_la-tool_dirhie.lo CC libcurltool_la-tool_doswin.lo CC libcurltool_la-tool_easysrc.lo CC libcurltool_la-tool_filetime.lo CC libcurltool_la-tool_findfile.lo CC libcurltool_la-tool_formparse.lo CC libcurltool_la-tool_getparam.lo CC libcurltool_la-tool_getpass.lo CC libcurltool_la-tool_help.lo CC libcurltool_la-tool_helpers.lo CC libcurltool_la-tool_ipfs.lo CC libcurltool_la-tool_libinfo.lo CC libcurltool_la-tool_listhelp.lo CC libcurltool_la-tool_main.lo CC libcurltool_la-tool_msgs.lo CC libcurltool_la-tool_operate.lo CC libcurltool_la-tool_operhlp.lo CC libcurltool_la-tool_paramhlp.lo CC libcurltool_la-tool_parsecfg.lo CC libcurltool_la-tool_progress.lo CC libcurltool_la-tool_setopt.lo CC libcurltool_la-tool_ssls.lo CC libcurltool_la-tool_stderr.lo CC libcurltool_la-tool_strdup.lo CC libcurltool_la-tool_urlglob.lo CC libcurltool_la-tool_util.lo CC libcurltool_la-tool_vms.lo CC libcurltool_la-tool_writeout.lo CC libcurltool_la-tool_writeout_json.lo CC libcurltool_la-tool_xattr.lo CC libcurltool_la-var.lo CC ../lib/curlx/libcurltool_la-base64.lo CC ../lib/curlx/libcurltool_la-multibyte.lo CC ../lib/curlx/libcurltool_la-dynbuf.lo CC ../lib/curlx/libcurltool_la-nonblock.lo CC ../lib/curlx/libcurltool_la-strparse.lo CC ../lib/curlx/libcurltool_la-timediff.lo CC ../lib/curlx/libcurltool_la-timeval.lo CC ../lib/curlx/libcurltool_la-version_win32.lo CC ../lib/curlx/libcurltool_la-wait.lo CC ../lib/curlx/libcurltool_la-warnless.lo CC curl-tool_hugehelp.o CC curl-tool_ca_embed.o CCLD curlinfo CCLD curl CCLD libcurltool.la make[1]: Leaving directory '/build/curl/src/build-curl/src' Making all in scripts make[1]: Entering directory '/build/curl/src/build-curl/scripts' if test -z "/usr/bin/perl"; then echo 'No perl: cannot generate completion script'; else \ /usr/bin/perl /build/curl/src/curl/scripts/completion.pl --opts-dir /build/curl/src/curl/docs/cmdline-opts --shell zsh > _curl; fi if test -z "/usr/bin/perl"; then echo 'No perl: cannot generate completion script'; else \ /usr/bin/perl /build/curl/src/curl/scripts/completion.pl --opts-dir /build/curl/src/curl/docs/cmdline-opts --shell fish > curl.fish; fi make[1]: Leaving directory '/build/curl/src/build-curl/scripts' make[1]: Entering directory '/build/curl/src/build-curl' make[1]: Nothing to be done for 'all-am'. make[1]: Leaving directory '/build/curl/src/build-curl' checking whether to enable maintainer-specific portions of Makefiles... no checking whether make supports nested variables... yes checking whether to enable debug build options... no checking whether to enable compiler optimizer... (assumed) yes checking whether to enable strict compiler warnings... no checking whether to enable compiler warnings as errors... no checking whether to enable curl debug memory tracking... no checking whether to enable hiding of library internal symbols... yes checking whether to enable c-ares for DNS lookups... no checking whether to disable dependency on -lrt... (assumed no) checking whether to enable HTTPSRR support... no checking whether to enable ECH support... no checking whether to enable SSL session export support... no checking for path separator... : checking for sed... /usr/bin/sed checking for grep... /usr/bin/grep checking that grep -E works... yes checking for ar... /usr/bin/ar checking for a BSD-compatible install... /usr/bin/install -c checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for stdatomic.h... yes checking if _Atomic is available... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for code coverage support... no checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking dependency style of gcc... gcc3 checking curl version... 8.15.0 checking for httpd... no checking for apache2... no checking for apxs... no configure: httpd/apache2 not in PATH, http tests disabled configure: apxs not in PATH, http tests disabled checking for nghttpx... no checking for caddy... no checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for egrep -e... /usr/bin/grep -E checking if OS is AIX (to define _ALL_SOURCE)... no checking if _THREAD_SAFE is already defined... no checking if _THREAD_SAFE is actually needed... no checking if _THREAD_SAFE is onwards defined... no checking if _REENTRANT is already defined... no checking if _REENTRANT is actually needed... no checking if _REENTRANT is onwards defined... no checking for gcc option to enable large file support... none needed checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ranlib... ranlib checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether to build shared libraries with -version-info... yes checking whether to build shared libraries with -no-undefined... no checking whether to build shared libraries with -mimpure-text... no checking whether to build shared libraries with PIC... yes checking whether to build static libraries with PIC... no checking whether to build shared libraries only... no checking whether to build static libraries only... no checking for windres... no checking if cpp -P is needed... yes checking if cpp -P works... yes checking if compiler is DEC/Compaq/HP C... no checking if compiler is HP-UX C... no checking if compiler is IBM C... no checking if compiler is Intel C... no checking if compiler is clang... no checking if compiler is GNU C... yes checking compiler version... gcc '1501' (raw: '15.1.1') checking if compiler is SunPro C... no checking if compiler is Tiny C... no checking whether build target is a native Windows one... no checking if compiler accepts some basic options... yes configure: compiler options added: -Werror-implicit-function-declaration checking if compiler optimizer assumed setting might be used... no checking if compiler accepts strict warning options... yes configure: compiler options added: -Wno-system-headers checking if compiler halts on compilation errors... yes checking if compiler halts on negative sized arrays... yes checking if compiler halts on function prototype mismatch... yes checking if compiler supports hiding library internal symbols... yes checking whether build target supports Win32 crypto API... no checking whether to build libcurl and curl in "unity" mode... no checking whether to support http... yes checking whether to support ftp... yes checking whether to support file... yes checking whether to support IPFS... yes checking whether to support ldap... no checking whether to support ldaps... no checking whether to support rtsp... yes checking whether to support proxies... yes checking whether to support dict... yes checking whether to support telnet... yes checking whether to support tftp... yes checking whether to support pop3... yes checking whether to support imap... yes checking whether to support smb... yes checking whether to support smtp... yes checking whether to support gopher... yes checking whether to support mqtt... no checking whether to provide built-in manual... no checking whether to build documentation... yes checking whether to enable generation of C code... yes checking whether to use libgcc... no checking if X/Open network library is required... no checking for gethostbyname... yes checking whether build target is a native Windows one... (cached) no checking for proto/bsdsocket.h... no checking for connect in libraries... yes checking for sys/types.h... (cached) yes checking for monotonic clock_gettime... yes checking for clock_gettime in libraries... no additional lib required checking if monotonic clock_gettime works... yes checking for sys/types.h... (cached) yes checking for raw monotonic clock_gettime... yes checking for pkg-config... /usr/bin/pkg-config checking for zlib options with pkg-config... found checking for zlib.h... yes configure: found both libz and libz.h header checking for BrotliDecoderDecompress in -lbrotlidec... yes checking for brotli/decode.h... yes checking for ZSTD_createDStream in -lzstd... yes checking for zstd.h... yes checking whether to enable IPv6... yes checking if struct sockaddr_in6 has sin6_scope_id member... yes checking if argv can be written to... yes checking if GSS-API support is requested... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking for gss.h... no checking for gssapi/gssapi.h... yes checking for gssapi/gssapi_generic.h... yes checking for gssapi/gssapi_krb5.h... yes checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking if we can link against GSS-API library... yes checking whether to enable Windows native SSL/TLS... no checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for openssl options with pkg-config... found configure: pkg-config: SSL_LIBS: "-lssl -lcrypto" configure: pkg-config: SSL_LDFLAGS: "" configure: pkg-config: SSL_CPPFLAGS: "" checking for HMAC_Update in -lcrypto... yes checking for SSL_connect in -lssl... yes checking for openssl/x509.h... yes checking for openssl/rsa.h... yes checking for openssl/crypto.h... yes checking for openssl/pem.h... yes checking for openssl/ssl.h... yes checking for openssl/err.h... yes checking for BoringSSL... no checking for AWS-LC... no checking for LibreSSL... no checking for OpenSSL >= v3... yes checking for SSL_set_quic_use_legacy_codepoint... no checking for SSL_set_quic_tls_cbs... yes configure: OpenSSL with QUIC APIv2 checking for SRP support in OpenSSL... yes checking for QUIC support and OpenSSL >= 3.3... yes configure: built with one SSL backend checking default CA cert bundle/path... /etc/ssl/certs/ca-certificates.crt checking whether to use built-in CA store of SSL library... no checking CA cert bundle path to embed in the curl tool... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for libpsl options with pkg-config... found checking for psl_builtin in -lpsl... yes checking for libpsl.h... yes checking for library containing gsasl_init... no configure: WARNING: libgsasl was not found checking for pkg-config... (cached) /usr/bin/pkg-config checking for libssh2 options with pkg-config... found checking for libssh2_free in -lssh2... yes checking for libssh2.h... yes checking for RTMP_Init in -lrtmp... no checking whether versioned symbols are wanted... no checking whether to build with libidn2... (assumed) yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libidn2 options with pkg-config... found configure: pkg-config: IDN_LIBS: "-lidn2" configure: pkg-config: IDN_LDFLAGS: "" configure: pkg-config: IDN_CPPFLAGS: "" configure: pkg-config: IDN_DIR: "" checking if idn2_lookup_ul can be linked... yes checking for idn2.h... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp2 options with pkg-config... found configure: -l is -lnghttp2 configure: -I is configure: -L is checking for nghttp2_session_get_stream_local_window_size in -lnghttp2... yes checking for nghttp2/nghttp2.h... yes configure: Added to CURL_LIBRARY_PATH checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp3 options with pkg-config... found configure: -l is -lnghttp3 configure: -I is configure: -L is checking for nghttp3_conn_client_new_versioned in -lnghttp3... yes checking for nghttp3/nghttp3.h... yes configure: Added to CURL_LIBRARY_PATH configure: HTTP3 support is experimental checking for sys/types.h... (cached) yes checking for sys/select.h... yes checking for sys/ioctl.h... yes checking for unistd.h... (cached) yes checking for arpa/inet.h... yes checking for net/if.h... yes checking for netinet/in.h... yes checking for netinet/in6.h... no checking for sys/un.h... yes checking for linux/tcp.h... yes checking for netinet/tcp.h... yes checking for netinet/udp.h... yes checking for netdb.h... yes checking for sys/sockio.h... no checking for sys/param.h... yes checking for termios.h... yes checking for termio.h... yes checking for fcntl.h... yes checking for io.h... no checking for pwd.h... yes checking for utime.h... yes checking for sys/utime.h... no checking for sys/poll.h... yes checking for poll.h... yes checking for sys/resource.h... yes checking for libgen.h... yes checking for locale.h... yes checking for stdbool.h... yes checking for stdint.h... (cached) yes checking for sys/filio.h... no checking for sys/eventfd.h... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for sys/types.h... (cached) yes checking for struct timeval... yes checking run-time libs availability... fine checking size of size_t... 8 checking size of long... 8 checking size of int... 4 checking size of time_t... 8 checking size of off_t... 8 checking size of curl_off_t... 8 checking size of curl_socket_t... 4 checking for long long... yes checking for ssize_t... yes checking for bool... yes checking for sa_family_t... yes checking for suseconds_t... yes checking if time_t is unsigned... no checking for struct sockaddr_storage... yes checking for sys/select.h... (cached) yes checking for select... yes checking for sys/types.h... (cached) yes checking for recv... yes checking for sys/types.h... (cached) yes checking for send... yes checking for sys/types.h... (cached) yes checking for MSG_NOSIGNAL... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking if alarm can be linked... yes checking if alarm is prototyped... yes checking if alarm is compilable... yes checking if alarm usage allowed... yes checking if alarm might be used... yes checking for sys/types.h... (cached) yes checking for strings.h... (cached) yes checking for sys/types.h... (cached) yes checking for libgen.h... (cached) yes checking if basename can be linked... yes checking if basename is prototyped... yes checking if basename is compilable... yes checking if basename usage allowed... yes checking if basename might be used... yes checking if closesocket can be linked... no checking if closesocket might be used... no checking for sys/types.h... (cached) yes checking if CloseSocket can be linked... no checking if CloseSocket might be used... no checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for fcntl.h... (cached) yes checking if fcntl can be linked... yes checking if fcntl is prototyped... yes checking if fcntl is compilable... yes checking if fcntl usage allowed... yes checking if fcntl might be used... yes checking if fcntl O_NONBLOCK is compilable... yes checking if fcntl O_NONBLOCK usage allowed... yes checking if fcntl O_NONBLOCK might be used... yes checking whether build target is a native Windows one... (cached) no checking for sys/types.h... (cached) yes checking for netdb.h... (cached) yes checking if freeaddrinfo can be linked... yes checking if freeaddrinfo is prototyped... yes checking if freeaddrinfo is compilable... yes checking if freeaddrinfo usage allowed... yes checking if freeaddrinfo might be used... yes checking for sys/types.h... (cached) yes checking for sys/xattr.h... yes checking if fsetxattr can be linked... yes checking if fsetxattr is prototyped... yes checking if fsetxattr takes 5 args.... yes checking if fsetxattr is compilable... yes checking if fsetxattr usage allowed... yes checking if fsetxattr might be used... yes checking if ftruncate can be linked... yes checking if ftruncate is prototyped... yes checking if ftruncate is compilable... yes checking if ftruncate usage allowed... yes checking if ftruncate might be used... yes checking for sys/types.h... (cached) yes checking if getaddrinfo can be linked... yes checking if getaddrinfo is prototyped... yes checking if getaddrinfo is compilable... yes checking if getaddrinfo seems to work... yes checking if getaddrinfo usage allowed... yes checking if getaddrinfo might be used... yes checking if getaddrinfo is threadsafe... yes checking if gethostbyname_r can be linked... yes checking if gethostbyname_r is prototyped... yes checking if gethostbyname_r takes 3 args.... no checking if gethostbyname_r takes 5 args.... no checking if gethostbyname_r takes 6 args.... yes checking if gethostbyname_r is compilable... yes checking if gethostbyname_r usage allowed... yes checking if gethostbyname_r might be used... yes checking if gethostname can be linked... yes checking if gethostname is prototyped... yes checking if gethostname is compilable... yes checking for gethostname arg 2 data type... size_t checking if gethostname usage allowed... yes checking if gethostname might be used... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for ifaddrs.h... yes checking if getifaddrs can be linked... yes checking if getifaddrs is prototyped... yes checking if getifaddrs is compilable... yes checking if getifaddrs seems to work... yes checking if getifaddrs usage allowed... yes checking if getifaddrs might be used... yes checking if getpeername can be linked... yes checking if getpeername is prototyped... yes checking if getpeername is compilable... yes checking if getpeername usage allowed... yes checking if getpeername might be used... yes checking if getsockname can be linked... yes checking if getsockname is prototyped... yes checking if getsockname is compilable... yes checking if getsockname usage allowed... yes checking if getsockname might be used... yes checking for sys/types.h... (cached) yes checking if gmtime_r can be linked... yes checking if gmtime_r is prototyped... yes checking if gmtime_r is compilable... yes checking if gmtime_r seems to work... yes checking if gmtime_r usage allowed... yes checking if gmtime_r might be used... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/ioctl.h... (cached) yes checking for stropts.h... no checking if ioctl can be linked... yes checking if ioctl is prototyped... yes checking if ioctl is compilable... yes checking if ioctl usage allowed... yes checking if ioctl might be used... yes checking if ioctl FIONBIO is compilable... yes checking if ioctl FIONBIO usage allowed... yes checking if ioctl FIONBIO might be used... yes checking if ioctl SIOCGIFADDR is compilable... yes checking if ioctl SIOCGIFADDR usage allowed... yes checking if ioctl SIOCGIFADDR might be used... yes checking if ioctlsocket can be linked... no checking if ioctlsocket might be used... no checking if IoctlSocket can be linked... no checking if IoctlSocket might be used... no checking if memrchr can be linked... yes checking if memrchr is prototyped... yes checking if memrchr is compilable... yes checking if memrchr usage allowed... yes checking if memrchr might be used... yes checking for sys/types.h... (cached) yes checking if sigaction can be linked... yes checking if sigaction is prototyped... yes checking if sigaction is compilable... yes checking if sigaction usage allowed... yes checking if sigaction might be used... yes checking if siginterrupt can be linked... yes checking if siginterrupt is prototyped... yes checking if siginterrupt is compilable... yes checking if siginterrupt usage allowed... yes checking if siginterrupt might be used... yes checking if signal can be linked... yes checking if signal is prototyped... yes checking if signal is compilable... yes checking if signal usage allowed... yes checking if signal might be used... yes checking for sys/types.h... (cached) yes checking if sigsetjmp can be linked... no checking if sigsetjmp seems a macro... yes checking if sigsetjmp is compilable... yes checking if sigsetjmp usage allowed... yes checking if sigsetjmp might be used... yes checking if socket can be linked... yes checking if socket is prototyped... yes checking if socket is compilable... yes checking if socket usage allowed... yes checking if socket might be used... yes checking if socketpair can be linked... yes checking if socketpair is prototyped... yes checking if socketpair is compilable... yes checking if socketpair usage allowed... yes checking if socketpair might be used... yes checking if strdup can be linked... yes checking if strdup is prototyped... yes checking if strdup is compilable... yes checking if strdup usage allowed... yes checking if strdup might be used... yes checking if strerror_r can be linked... yes checking if strerror_r is prototyped... yes checking if strerror_r is compilable... yes checking if strerror_r is glibc like... yes checking if strerror_r seems to work... yes checking if strerror_r usage allowed... yes checking if strerror_r might be used... yes checking for accept4... yes checking for eventfd... yes checking for fnmatch... yes checking for geteuid... yes checking for getpass_r... no checking for getppid... yes checking for getpwuid... yes checking for getpwuid_r... yes checking for getrlimit... yes checking for gettimeofday... yes checking for if_nametoindex... yes checking for mach_absolute_time... no checking for pipe... yes checking for pipe2... yes checking for poll... yes checking for sendmmsg... yes checking for sendmsg... yes checking for setlocale... yes checking for setrlimit... yes checking for snprintf... yes checking for utime... yes checking for utimes... yes checking for realpath... yes checking for sched_yield... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for arpa/inet.h... (cached) yes checking if inet_ntop can be linked... yes checking if inet_ntop is prototyped... yes checking if inet_ntop is compilable... yes checking if inet_ntop seems to work... yes checking if inet_ntop usage allowed... yes checking if inet_ntop might be used... yes checking if inet_pton can be linked... yes checking if inet_pton is prototyped... yes checking if inet_pton is compilable... yes checking if inet_pton seems to work... yes checking if inet_pton usage allowed... yes checking if inet_pton might be used... yes checking if strcasecmp can be linked... yes checking if strcasecmp is prototyped... yes checking if strcasecmp is compilable... yes checking if strcasecmp usage allowed... yes checking if strcasecmp might be used... yes checking if strcmpi can be linked... no checking if strcmpi might be used... no checking if stricmp can be linked... no checking if stricmp might be used... no checking for setmode... no checking for fseeko... yes checking for gcc options needed to detect all undeclared functions... none needed checking whether fseeko is declared... yes checking how to set a socket into non-blocking mode... fcntl O_NONBLOCK checking for perl... /usr/bin/perl checking whether to enable the threaded resolver... yes checking for pthread.h... yes checking for pthread_create... yes checking for dirent.h... yes checking for opendir... yes checking convert -I options to -isystem... yes checking whether to enable verbose strings... yes checking whether to enable SSPI support (Windows native builds only)... no checking whether to enable basic authentication method... yes checking whether to enable bearer authentication method... yes checking whether to enable digest authentication method... yes checking whether to enable kerberos authentication method... yes checking whether to enable negotiate authentication method... yes checking whether to enable aws sig methods... yes checking whether to support NTLM... yes checking whether to enable TLS-SRP authentication... yes checking whether to enable Unix domain sockets... auto checking for struct sockaddr_un.sun_path... yes checking whether to support cookies... yes checking whether to support socketpair... yes checking whether to support HTTP authentication... yes checking whether to support DoH... yes checking whether to support the MIME API... yes checking whether to support binding connections locally... yes checking whether to support the form API... yes checking whether to support date parsing... yes checking whether to support netrc parsing... yes checking whether to support progress-meter... yes checking whether to support the SHA-512/256 hash algorithm... yes checking whether to support DNS shuffling... yes checking whether to support curl_easy_option*... yes checking whether to support alt-svc... yes checking whether to support headers-api... yes checking whether to support HSTS... yes checking whether to enable HTTPS-RR support... no checking for SSL_set0_wbio... yes checking whether to support WebSockets... yes checking whether hiding of library internal symbols will actually happen... yes checking if this build supports HTTPS-proxy... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating docs/Makefile config.status: creating docs/examples/Makefile config.status: creating docs/libcurl/Makefile config.status: creating docs/libcurl/opts/Makefile config.status: creating docs/cmdline-opts/Makefile config.status: creating include/Makefile config.status: creating include/curl/Makefile config.status: creating src/Makefile config.status: creating lib/Makefile config.status: creating scripts/Makefile config.status: creating lib/libcurl.vers config.status: creating tests/Makefile config.status: creating tests/config config.status: creating tests/configurehelp.pm config.status: creating tests/certs/Makefile config.status: creating tests/data/Makefile config.status: creating tests/server/Makefile config.status: creating tests/libtest/Makefile config.status: creating tests/unit/Makefile config.status: creating tests/tunit/Makefile config.status: creating tests/client/Makefile config.status: creating tests/http/config.ini config.status: creating tests/http/Makefile config.status: creating packages/Makefile config.status: creating packages/vms/Makefile config.status: creating curl-config config.status: creating libcurl.pc config.status: creating lib/curl_config.h config.status: executing depfiles commands config.status: executing libtool commands configure: Configured to build curl/libcurl: Host setup: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc CFLAGS: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/curl/src=/usr/src/debug/curl -flto=auto -Werror-implicit-function-declaration -Wno-system-headers CFLAGS extras: CPPFLAGS: -D_GNU_SOURCE LDFLAGS: -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -flto=auto curl-config: LIBS: -lnghttp3 -lnghttp2 -lidn2 -lssh2 -lssh2 -lpsl -lssl -lcrypto -lssl -lcrypto -lgssapi_krb5 -lzstd -lbrotlidec -lz curl version: 8.15.0 SSL: enabled (OpenSSL v3+) SSH: enabled (libssh2) zlib: enabled brotli: enabled (libbrotlidec) zstd: enabled (libzstd) GSS-API: enabled (MIT Kerberos/Heimdal) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: enabled (libidn2) Build docs: enabled (--disable-docs) Build libcurl: Shared=yes, Static=yes Built-in manual: no (--enable-manual) --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: /etc/ssl/certs/ca-certificates.crt ca cert path: no ca cert embed: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) IPFS/IPNS: enabled RTSP: enabled RTMP: no (--with-librtmp) PSL: enabled Alt-svc: enabled (--disable-alt-svc) Headers API: enabled (--disable-headers-api) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: enabled (nghttp2) HTTP3: enabled (openssl + nghttp3) ECH: no (--enable-ech) HTTPS RR: no (--enable-httpsrr) SSLS-EXPORT: no (--enable-ssls-export) Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd configure: WARNING: HTTP3 is enabled but marked EXPERIMENTAL. Use with caution! make: Entering directory '/build/curl/src/build-curl-compat/lib' make all-am make[1]: Entering directory '/build/curl/src/build-curl-compat/lib' CC libcurl_la-amigaos.lo CC libcurl_la-altsvc.lo CC libcurl_la-asyn-ares.lo CC libcurl_la-asyn-thrdd.lo CC libcurl_la-bufq.lo CC libcurl_la-asyn-base.lo CC libcurl_la-bufref.lo CC libcurl_la-cf-h1-proxy.lo CC libcurl_la-cf-haproxy.lo CC libcurl_la-cf-h2-proxy.lo CC libcurl_la-cfilters.lo CC libcurl_la-conncache.lo CC libcurl_la-cf-https-connect.lo CC libcurl_la-cf-socket.lo CC libcurl_la-connect.lo CC libcurl_la-content_encoding.lo CC libcurl_la-cookie.lo CC libcurl_la-cshutdn.lo CC libcurl_la-curl_addrinfo.lo CC libcurl_la-curl_des.lo CC libcurl_la-curl_endian.lo CC libcurl_la-curl_fnmatch.lo CC libcurl_la-curl_get_line.lo CC libcurl_la-curl_gethostname.lo CC libcurl_la-curl_memrchr.lo CC libcurl_la-curl_gssapi.lo CC libcurl_la-curl_ntlm_core.lo CC libcurl_la-curl_range.lo CC libcurl_la-curl_rtmp.lo CC libcurl_la-curl_sasl.lo CC libcurl_la-curl_sha512_256.lo CC libcurl_la-curl_sspi.lo CC libcurl_la-curl_threads.lo CC libcurl_la-curl_trc.lo CC libcurl_la-cw-out.lo CC libcurl_la-cw-pause.lo CC libcurl_la-dict.lo CC libcurl_la-doh.lo CC libcurl_la-easy.lo CC libcurl_la-dynhds.lo CC libcurl_la-easygetopt.lo CC libcurl_la-easyoptions.lo CC libcurl_la-escape.lo CC libcurl_la-fake_addrinfo.lo CC libcurl_la-file.lo CC libcurl_la-fileinfo.lo CC libcurl_la-fopen.lo CC libcurl_la-formdata.lo CC libcurl_la-ftp.lo CC libcurl_la-ftplistparser.lo CC libcurl_la-getenv.lo CC libcurl_la-getinfo.lo CC libcurl_la-gopher.lo CC libcurl_la-hash.lo CC libcurl_la-headers.lo CC libcurl_la-hmac.lo CC libcurl_la-hostip.lo CC libcurl_la-hostip4.lo CC libcurl_la-hostip6.lo CC libcurl_la-hsts.lo CC libcurl_la-http.lo CC libcurl_la-http1.lo CC libcurl_la-http2.lo CC libcurl_la-http_aws_sigv4.lo CC libcurl_la-http_chunks.lo CC libcurl_la-http_digest.lo CC libcurl_la-http_negotiate.lo CC libcurl_la-http_ntlm.lo CC libcurl_la-http_proxy.lo CC libcurl_la-httpsrr.lo CC libcurl_la-idn.lo CC libcurl_la-if2ip.lo CC libcurl_la-imap.lo CC libcurl_la-krb5.lo CC libcurl_la-ldap.lo CC libcurl_la-llist.lo CC libcurl_la-macos.lo CC libcurl_la-md4.lo CC libcurl_la-md5.lo CC libcurl_la-memdebug.lo CC libcurl_la-mime.lo CC libcurl_la-mprintf.lo CC libcurl_la-mqtt.lo CC libcurl_la-multi.lo CC libcurl_la-multi_ev.lo CC libcurl_la-netrc.lo CC libcurl_la-noproxy.lo CC libcurl_la-openldap.lo CC libcurl_la-parsedate.lo CC libcurl_la-pingpong.lo CC libcurl_la-pop3.lo CC libcurl_la-progress.lo CC libcurl_la-psl.lo CC libcurl_la-rand.lo CC libcurl_la-rename.lo CC libcurl_la-request.lo CC libcurl_la-rtsp.lo CC libcurl_la-select.lo CC libcurl_la-sendf.lo CC libcurl_la-setopt.lo CC libcurl_la-sha256.lo CC libcurl_la-share.lo CC libcurl_la-slist.lo CC libcurl_la-smb.lo CC libcurl_la-smtp.lo CC libcurl_la-socketpair.lo CC libcurl_la-socks.lo CC libcurl_la-socks_gssapi.lo CC libcurl_la-socks_sspi.lo CC libcurl_la-speedcheck.lo CC libcurl_la-splay.lo CC libcurl_la-strcase.lo CC libcurl_la-strdup.lo CC libcurl_la-strequal.lo CC libcurl_la-strerror.lo CC libcurl_la-system_win32.lo CC libcurl_la-telnet.lo CC libcurl_la-tftp.lo CC libcurl_la-transfer.lo CC libcurl_la-uint-bset.lo CC libcurl_la-uint-hash.lo CC libcurl_la-uint-spbset.lo CC libcurl_la-uint-table.lo CC libcurl_la-url.lo CC libcurl_la-urlapi.lo CC libcurl_la-version.lo CC libcurl_la-ws.lo CC libcurlu_la-altsvc.lo CC libcurlu_la-amigaos.lo CC libcurlu_la-asyn-ares.lo CC libcurlu_la-asyn-base.lo CC libcurlu_la-asyn-thrdd.lo CC libcurlu_la-bufq.lo CC libcurlu_la-bufref.lo CC libcurlu_la-cf-h1-proxy.lo CC libcurlu_la-cf-h2-proxy.lo CC libcurlu_la-cf-haproxy.lo CC libcurlu_la-cf-https-connect.lo CC libcurlu_la-cf-socket.lo CC libcurlu_la-cfilters.lo CC libcurlu_la-conncache.lo CC libcurlu_la-connect.lo CC libcurlu_la-content_encoding.lo CC libcurlu_la-cookie.lo CC libcurlu_la-cshutdn.lo CC libcurlu_la-curl_addrinfo.lo CC libcurlu_la-curl_des.lo CC libcurlu_la-curl_endian.lo CC libcurlu_la-curl_fnmatch.lo CC libcurlu_la-curl_get_line.lo CC libcurlu_la-curl_gethostname.lo CC libcurlu_la-curl_gssapi.lo CC libcurlu_la-curl_memrchr.lo CC libcurlu_la-curl_ntlm_core.lo CC libcurlu_la-curl_range.lo CC libcurlu_la-curl_rtmp.lo CC libcurlu_la-curl_sasl.lo CC libcurlu_la-curl_sha512_256.lo CC libcurlu_la-curl_sspi.lo CC libcurlu_la-curl_threads.lo CC libcurlu_la-curl_trc.lo CC libcurlu_la-cw-out.lo CC libcurlu_la-cw-pause.lo CC libcurlu_la-dict.lo CC libcurlu_la-doh.lo CC libcurlu_la-dynhds.lo CC libcurlu_la-easy.lo CC libcurlu_la-easygetopt.lo CC libcurlu_la-easyoptions.lo CC libcurlu_la-escape.lo CC libcurlu_la-fake_addrinfo.lo CC libcurlu_la-file.lo CC libcurlu_la-fileinfo.lo CC libcurlu_la-fopen.lo CC libcurlu_la-formdata.lo CC libcurlu_la-ftp.lo CC libcurlu_la-ftplistparser.lo CC libcurlu_la-getenv.lo CC libcurlu_la-getinfo.lo CC libcurlu_la-gopher.lo CC libcurlu_la-hash.lo CC libcurlu_la-headers.lo CC libcurlu_la-hmac.lo CC libcurlu_la-hostip.lo CC libcurlu_la-hostip4.lo CC libcurlu_la-hostip6.lo CC libcurlu_la-hsts.lo CC libcurlu_la-http.lo CC libcurlu_la-http1.lo CC libcurlu_la-http2.lo CC libcurlu_la-http_aws_sigv4.lo CC libcurlu_la-http_chunks.lo CC libcurlu_la-http_digest.lo CC libcurlu_la-http_negotiate.lo CC libcurlu_la-http_ntlm.lo CC libcurlu_la-http_proxy.lo CC libcurlu_la-idn.lo CC libcurlu_la-httpsrr.lo CC libcurlu_la-if2ip.lo CC libcurlu_la-imap.lo CC libcurlu_la-krb5.lo CC libcurlu_la-ldap.lo CC libcurlu_la-llist.lo CC libcurlu_la-macos.lo CC libcurlu_la-md4.lo CC libcurlu_la-md5.lo CC libcurlu_la-memdebug.lo CC libcurlu_la-mprintf.lo CC libcurlu_la-mime.lo CC libcurlu_la-mqtt.lo CC libcurlu_la-multi.lo CC libcurlu_la-multi_ev.lo CC libcurlu_la-netrc.lo CC libcurlu_la-noproxy.lo CC libcurlu_la-openldap.lo CC libcurlu_la-parsedate.lo CC libcurlu_la-pingpong.lo CC libcurlu_la-pop3.lo CC libcurlu_la-progress.lo CC libcurlu_la-psl.lo CC libcurlu_la-rand.lo CC libcurlu_la-rename.lo CC libcurlu_la-request.lo CC libcurlu_la-rtsp.lo CC libcurlu_la-select.lo CC libcurlu_la-sendf.lo CC libcurlu_la-setopt.lo CC libcurlu_la-sha256.lo CC libcurlu_la-share.lo CC libcurlu_la-slist.lo CC libcurlu_la-smb.lo CC libcurlu_la-smtp.lo CC libcurlu_la-socketpair.lo CC libcurlu_la-socks.lo CC libcurlu_la-socks_gssapi.lo CC libcurlu_la-socks_sspi.lo CC libcurlu_la-speedcheck.lo CC libcurlu_la-splay.lo CC libcurlu_la-strcase.lo CC libcurlu_la-strdup.lo CC libcurlu_la-strequal.lo CC libcurlu_la-strerror.lo CC libcurlu_la-system_win32.lo CC libcurlu_la-telnet.lo CC libcurlu_la-tftp.lo CC libcurlu_la-transfer.lo CC libcurlu_la-uint-bset.lo CC libcurlu_la-uint-hash.lo CC libcurlu_la-uint-spbset.lo CC libcurlu_la-uint-table.lo CC libcurlu_la-url.lo CC libcurlu_la-urlapi.lo CC libcurlu_la-ws.lo CC libcurlu_la-version.lo CC vauth/libcurlu_la-cleartext.lo CC vauth/libcurlu_la-cram.lo CC vauth/libcurlu_la-digest.lo CC vauth/libcurlu_la-digest_sspi.lo CC vauth/libcurlu_la-gsasl.lo CC vauth/libcurlu_la-krb5_gssapi.lo CC vauth/libcurlu_la-krb5_sspi.lo CC vauth/libcurlu_la-ntlm.lo CC vauth/libcurlu_la-ntlm_sspi.lo CC vauth/libcurlu_la-oauth2.lo CC vauth/libcurlu_la-spnego_gssapi.lo CC vauth/libcurlu_la-spnego_sspi.lo CC vauth/libcurlu_la-vauth.lo CC vtls/libcurlu_la-cipher_suite.lo CC vtls/libcurlu_la-gtls.lo CC vtls/libcurlu_la-hostcheck.lo CC vtls/libcurlu_la-keylog.lo CC vtls/libcurlu_la-mbedtls.lo CC vtls/libcurlu_la-mbedtls_threadlock.lo CC vtls/libcurlu_la-openssl.lo CC vtls/libcurlu_la-rustls.lo CC vtls/libcurlu_la-schannel.lo CC vtls/libcurlu_la-schannel_verify.lo CC vtls/libcurlu_la-vtls.lo CC vtls/libcurlu_la-vtls_scache.lo CC vtls/libcurlu_la-vtls_spack.lo CC vtls/libcurlu_la-wolfssl.lo CC vtls/libcurlu_la-x509asn1.lo CC vquic/libcurlu_la-curl_msh3.lo CC vquic/libcurlu_la-curl_ngtcp2.lo CC vquic/libcurlu_la-curl_osslq.lo CC vquic/libcurlu_la-curl_quiche.lo CC vquic/libcurlu_la-vquic.lo CC vquic/libcurlu_la-vquic-tls.lo CC vssh/libcurlu_la-libssh.lo CC vssh/libcurlu_la-libssh2.lo CC vssh/libcurlu_la-curl_path.lo CC vssh/libcurlu_la-wolfssh.lo CC curlx/libcurlu_la-base64.lo CC curlx/libcurlu_la-dynbuf.lo CC curlx/libcurlu_la-inet_ntop.lo CC curlx/libcurlu_la-inet_pton.lo CC curlx/libcurlu_la-multibyte.lo CC curlx/libcurlu_la-nonblock.lo CC curlx/libcurlu_la-strparse.lo CC curlx/libcurlu_la-timediff.lo CC curlx/libcurlu_la-timeval.lo CC curlx/libcurlu_la-version_win32.lo CC curlx/libcurlu_la-wait.lo CC curlx/libcurlu_la-warnless.lo CC curlx/libcurlu_la-winapi.lo CC vauth/libcurl_la-cleartext.lo CC vauth/libcurl_la-cram.lo CC vauth/libcurl_la-digest.lo CC vauth/libcurl_la-digest_sspi.lo CC vauth/libcurl_la-gsasl.lo CC vauth/libcurl_la-krb5_gssapi.lo CC vauth/libcurl_la-krb5_sspi.lo CC vauth/libcurl_la-ntlm.lo CC vauth/libcurl_la-ntlm_sspi.lo CC vauth/libcurl_la-oauth2.lo CC vauth/libcurl_la-spnego_gssapi.lo CC vauth/libcurl_la-spnego_sspi.lo CC vauth/libcurl_la-vauth.lo CC vtls/libcurl_la-cipher_suite.lo CC vtls/libcurl_la-gtls.lo CC vtls/libcurl_la-hostcheck.lo CC vtls/libcurl_la-keylog.lo CC vtls/libcurl_la-mbedtls.lo CC vtls/libcurl_la-mbedtls_threadlock.lo CC vtls/libcurl_la-openssl.lo CC vtls/libcurl_la-rustls.lo CC vtls/libcurl_la-schannel.lo CC vtls/libcurl_la-schannel_verify.lo CC vtls/libcurl_la-vtls.lo CC vtls/libcurl_la-vtls_scache.lo CC vtls/libcurl_la-vtls_spack.lo CC vtls/libcurl_la-wolfssl.lo CC vtls/libcurl_la-x509asn1.lo CC vquic/libcurl_la-curl_msh3.lo CC vquic/libcurl_la-curl_ngtcp2.lo CC vquic/libcurl_la-curl_osslq.lo CC vquic/libcurl_la-curl_quiche.lo CC vquic/libcurl_la-vquic.lo CC vquic/libcurl_la-vquic-tls.lo CC vssh/libcurl_la-libssh.lo CC vssh/libcurl_la-libssh2.lo CC vssh/libcurl_la-wolfssh.lo CC vssh/libcurl_la-curl_path.lo CC curlx/libcurl_la-base64.lo CC curlx/libcurl_la-dynbuf.lo CC curlx/libcurl_la-inet_ntop.lo CC curlx/libcurl_la-inet_pton.lo CC curlx/libcurl_la-multibyte.lo CC curlx/libcurl_la-nonblock.lo CC curlx/libcurl_la-timediff.lo CC curlx/libcurl_la-strparse.lo CC curlx/libcurl_la-timeval.lo CC curlx/libcurl_la-version_win32.lo CC curlx/libcurl_la-wait.lo CC curlx/libcurl_la-warnless.lo CC curlx/libcurl_la-winapi.lo CCLD libcurlu.la CCLD libcurl.la /usr/bin/nm: .libs/libcurl_la-amigaos.o: no symbols /usr/bin/nm: .libs/libcurl_la-asyn-ares.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_des.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_memrchr.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_rtmp.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-fake_addrinfo.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip4.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip6.o: no symbols /usr/bin/nm: .libs/libcurl_la-httpsrr.o: no symbols /usr/bin/nm: .libs/libcurl_la-ldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-macos.o: no symbols /usr/bin/nm: .libs/libcurl_la-memdebug.o: no symbols /usr/bin/nm: .libs/libcurl_la-openldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-socks_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-system_win32.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-digest_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-gsasl.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-krb5_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-ntlm_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-spnego_sspi.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-cipher_suite.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-gtls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls_threadlock.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-rustls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel_verify.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-vtls_spack.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-wolfssl.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-x509asn1.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_msh3.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_ngtcp2.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_quiche.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-libssh.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-wolfssh.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_ntop.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_pton.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-multibyte.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-version_win32.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-winapi.o: no symbols make[1]: Leaving directory '/build/curl/src/build-curl-compat/lib' make: Leaving directory '/build/curl/src/build-curl-compat/lib' checking whether to enable maintainer-specific portions of Makefiles... no checking whether make supports nested variables... yes checking whether to enable debug build options... no checking whether to enable compiler optimizer... (assumed) yes checking whether to enable strict compiler warnings... no checking whether to enable compiler warnings as errors... no checking whether to enable curl debug memory tracking... no checking whether to enable hiding of library internal symbols... yes checking whether to enable c-ares for DNS lookups... no checking whether to disable dependency on -lrt... (assumed no) checking whether to enable HTTPSRR support... no checking whether to enable ECH support... no checking whether to enable SSL session export support... no checking for path separator... : checking for sed... /usr/bin/sed checking for grep... /usr/bin/grep checking that grep -E works... yes checking for ar... /usr/bin/ar checking for a BSD-compatible install... /usr/bin/install -c checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for stdatomic.h... yes checking if _Atomic is available... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for code coverage support... no checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking dependency style of gcc... gcc3 checking curl version... 8.15.0 checking for httpd... no checking for apache2... no checking for apxs... no configure: httpd/apache2 not in PATH, http tests disabled configure: apxs not in PATH, http tests disabled checking for nghttpx... no checking for caddy... no checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for egrep -e... /usr/bin/grep -E checking if OS is AIX (to define _ALL_SOURCE)... no checking if _THREAD_SAFE is already defined... no checking if _THREAD_SAFE is actually needed... no checking if _THREAD_SAFE is onwards defined... no checking if _REENTRANT is already defined... no checking if _REENTRANT is actually needed... no checking if _REENTRANT is onwards defined... no checking for gcc option to enable large file support... none needed checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ranlib... ranlib checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether to build shared libraries with -version-info... yes checking whether to build shared libraries with -no-undefined... no checking whether to build shared libraries with -mimpure-text... no checking whether to build shared libraries with PIC... yes checking whether to build static libraries with PIC... no checking whether to build shared libraries only... no checking whether to build static libraries only... no checking for windres... no checking if cpp -P is needed... yes checking if cpp -P works... yes checking if compiler is DEC/Compaq/HP C... no checking if compiler is HP-UX C... no checking if compiler is IBM C... no checking if compiler is Intel C... no checking if compiler is clang... no checking if compiler is GNU C... yes checking compiler version... gcc '1501' (raw: '15.1.1') checking if compiler is SunPro C... no checking if compiler is Tiny C... no checking whether build target is a native Windows one... no checking if compiler accepts some basic options... yes configure: compiler options added: -Werror-implicit-function-declaration checking if compiler optimizer assumed setting might be used... no checking if compiler accepts strict warning options... yes configure: compiler options added: -Wno-system-headers checking if compiler halts on compilation errors... yes checking if compiler halts on negative sized arrays... yes checking if compiler halts on function prototype mismatch... yes checking if compiler supports hiding library internal symbols... yes checking whether build target supports Win32 crypto API... no checking whether to build libcurl and curl in "unity" mode... no checking whether to support http... yes checking whether to support ftp... yes checking whether to support file... yes checking whether to support IPFS... yes checking whether to support ldap... no checking whether to support ldaps... no checking whether to support rtsp... yes checking whether to support proxies... yes checking whether to support dict... yes checking whether to support telnet... yes checking whether to support tftp... yes checking whether to support pop3... yes checking whether to support imap... yes checking whether to support smb... yes checking whether to support smtp... yes checking whether to support gopher... yes checking whether to support mqtt... no checking whether to provide built-in manual... no checking whether to build documentation... yes checking whether to enable generation of C code... yes checking whether to use libgcc... no checking if X/Open network library is required... no checking for gethostbyname... yes checking whether build target is a native Windows one... (cached) no checking for proto/bsdsocket.h... no checking for connect in libraries... yes checking for sys/types.h... (cached) yes checking for monotonic clock_gettime... yes checking for clock_gettime in libraries... no additional lib required checking if monotonic clock_gettime works... yes checking for sys/types.h... (cached) yes checking for raw monotonic clock_gettime... yes checking for pkg-config... /usr/bin/pkg-config checking for zlib options with pkg-config... found checking for zlib.h... yes configure: found both libz and libz.h header checking for BrotliDecoderDecompress in -lbrotlidec... yes checking for brotli/decode.h... yes checking for ZSTD_createDStream in -lzstd... yes checking for zstd.h... yes checking whether to enable IPv6... yes checking if struct sockaddr_in6 has sin6_scope_id member... yes checking if argv can be written to... yes checking if GSS-API support is requested... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking for gss.h... no checking for gssapi/gssapi.h... yes checking for gssapi/gssapi_generic.h... yes checking for gssapi/gssapi_krb5.h... yes checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking if we can link against GSS-API library... yes checking whether to enable Windows native SSL/TLS... no checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for gnutls options with pkg-config... found checking for gnutls_x509_crt_get_dn2 in -lgnutls... yes configure: detected GnuTLS version 3.8.10 checking for nettle_MD5Init in -lgnutls... no checking for nettle_MD5Init in -lnettle... yes checking for gnutls_srp_verifier in -lgnutls... yes configure: built with one SSL backend checking default CA cert bundle/path... /etc/ssl/certs/ca-certificates.crt checking whether to use built-in CA store of SSL library... no checking CA cert bundle path to embed in the curl tool... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for libpsl options with pkg-config... found checking for psl_builtin in -lpsl... yes checking for libpsl.h... yes checking for library containing gsasl_init... no configure: WARNING: libgsasl was not found checking for pkg-config... (cached) /usr/bin/pkg-config checking for libssh2 options with pkg-config... found checking for libssh2_free in -lssh2... yes checking for libssh2.h... yes checking for RTMP_Init in -lrtmp... no checking whether versioned symbols are wanted... no checking whether to build with libidn2... (assumed) yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libidn2 options with pkg-config... found configure: pkg-config: IDN_LIBS: "-lidn2" configure: pkg-config: IDN_LDFLAGS: "" configure: pkg-config: IDN_CPPFLAGS: "" configure: pkg-config: IDN_DIR: "" checking if idn2_lookup_ul can be linked... yes checking for idn2.h... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp2 options with pkg-config... found configure: -l is -lnghttp2 configure: -I is configure: -L is checking for nghttp2_session_get_stream_local_window_size in -lnghttp2... yes checking for nghttp2/nghttp2.h... yes configure: Added to CURL_LIBRARY_PATH checking for sys/types.h... (cached) yes checking for sys/select.h... yes checking for sys/ioctl.h... yes checking for unistd.h... (cached) yes checking for arpa/inet.h... yes checking for net/if.h... yes checking for netinet/in.h... yes checking for netinet/in6.h... no checking for sys/un.h... yes checking for linux/tcp.h... yes checking for netinet/tcp.h... yes checking for netinet/udp.h... yes checking for netdb.h... yes checking for sys/sockio.h... no checking for sys/param.h... yes checking for termios.h... yes checking for termio.h... yes checking for fcntl.h... yes checking for io.h... no checking for pwd.h... yes checking for utime.h... yes checking for sys/utime.h... no checking for sys/poll.h... yes checking for poll.h... yes checking for sys/resource.h... yes checking for libgen.h... yes checking for locale.h... yes checking for stdbool.h... yes checking for stdint.h... (cached) yes checking for sys/filio.h... no checking for sys/eventfd.h... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for sys/types.h... (cached) yes checking for struct timeval... yes checking run-time libs availability... fine checking size of size_t... 8 checking size of long... 8 checking size of int... 4 checking size of time_t... 8 checking size of off_t... 8 checking size of curl_off_t... 8 checking size of curl_socket_t... 4 checking for long long... yes checking for ssize_t... yes checking for bool... yes checking for sa_family_t... yes checking for suseconds_t... yes checking if time_t is unsigned... no checking for struct sockaddr_storage... yes checking for sys/select.h... (cached) yes checking for select... yes checking for sys/types.h... (cached) yes checking for recv... yes checking for sys/types.h... (cached) yes checking for send... yes checking for sys/types.h... (cached) yes checking for MSG_NOSIGNAL... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking if alarm can be linked... yes checking if alarm is prototyped... yes checking if alarm is compilable... yes checking if alarm usage allowed... yes checking if alarm might be used... yes checking for sys/types.h... (cached) yes checking for strings.h... (cached) yes checking for sys/types.h... (cached) yes checking for libgen.h... (cached) yes checking if basename can be linked... yes checking if basename is prototyped... yes checking if basename is compilable... yes checking if basename usage allowed... yes checking if basename might be used... yes checking if closesocket can be linked... no checking if closesocket might be used... no checking for sys/types.h... (cached) yes checking if CloseSocket can be linked... no checking if CloseSocket might be used... no checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for fcntl.h... (cached) yes checking if fcntl can be linked... yes checking if fcntl is prototyped... yes checking if fcntl is compilable... yes checking if fcntl usage allowed... yes checking if fcntl might be used... yes checking if fcntl O_NONBLOCK is compilable... yes checking if fcntl O_NONBLOCK usage allowed... yes checking if fcntl O_NONBLOCK might be used... yes checking whether build target is a native Windows one... (cached) no checking for sys/types.h... (cached) yes checking for netdb.h... (cached) yes checking if freeaddrinfo can be linked... yes checking if freeaddrinfo is prototyped... yes checking if freeaddrinfo is compilable... yes checking if freeaddrinfo usage allowed... yes checking if freeaddrinfo might be used... yes checking for sys/types.h... (cached) yes checking for sys/xattr.h... yes checking if fsetxattr can be linked... yes checking if fsetxattr is prototyped... yes checking if fsetxattr takes 5 args.... yes checking if fsetxattr is compilable... yes checking if fsetxattr usage allowed... yes checking if fsetxattr might be used... yes checking if ftruncate can be linked... yes checking if ftruncate is prototyped... yes checking if ftruncate is compilable... yes checking if ftruncate usage allowed... yes checking if ftruncate might be used... yes checking for sys/types.h... (cached) yes checking if getaddrinfo can be linked... yes checking if getaddrinfo is prototyped... yes checking if getaddrinfo is compilable... yes checking if getaddrinfo seems to work... yes checking if getaddrinfo usage allowed... yes checking if getaddrinfo might be used... yes checking if getaddrinfo is threadsafe... yes checking if gethostbyname_r can be linked... yes checking if gethostbyname_r is prototyped... yes checking if gethostbyname_r takes 3 args.... no checking if gethostbyname_r takes 5 args.... no checking if gethostbyname_r takes 6 args.... yes checking if gethostbyname_r is compilable... yes checking if gethostbyname_r usage allowed... yes checking if gethostbyname_r might be used... yes checking if gethostname can be linked... yes checking if gethostname is prototyped... yes checking if gethostname is compilable... yes checking for gethostname arg 2 data type... size_t checking if gethostname usage allowed... yes checking if gethostname might be used... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for ifaddrs.h... yes checking if getifaddrs can be linked... yes checking if getifaddrs is prototyped... yes checking if getifaddrs is compilable... yes checking if getifaddrs seems to work... yes checking if getifaddrs usage allowed... yes checking if getifaddrs might be used... yes checking if getpeername can be linked... yes checking if getpeername is prototyped... yes checking if getpeername is compilable... yes checking if getpeername usage allowed... yes checking if getpeername might be used... yes checking if getsockname can be linked... yes checking if getsockname is prototyped... yes checking if getsockname is compilable... yes checking if getsockname usage allowed... yes checking if getsockname might be used... yes checking for sys/types.h... (cached) yes checking if gmtime_r can be linked... yes checking if gmtime_r is prototyped... yes checking if gmtime_r is compilable... yes checking if gmtime_r seems to work... yes checking if gmtime_r usage allowed... yes checking if gmtime_r might be used... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/ioctl.h... (cached) yes checking for stropts.h... no checking if ioctl can be linked... yes checking if ioctl is prototyped... yes checking if ioctl is compilable... yes checking if ioctl usage allowed... yes checking if ioctl might be used... yes checking if ioctl FIONBIO is compilable... yes checking if ioctl FIONBIO usage allowed... yes checking if ioctl FIONBIO might be used... yes checking if ioctl SIOCGIFADDR is compilable... yes checking if ioctl SIOCGIFADDR usage allowed... yes checking if ioctl SIOCGIFADDR might be used... yes checking if ioctlsocket can be linked... no checking if ioctlsocket might be used... no checking if IoctlSocket can be linked... no checking if IoctlSocket might be used... no checking if memrchr can be linked... yes checking if memrchr is prototyped... yes checking if memrchr is compilable... yes checking if memrchr usage allowed... yes checking if memrchr might be used... yes checking for sys/types.h... (cached) yes checking if sigaction can be linked... yes checking if sigaction is prototyped... yes checking if sigaction is compilable... yes checking if sigaction usage allowed... yes checking if sigaction might be used... yes checking if siginterrupt can be linked... yes checking if siginterrupt is prototyped... yes checking if siginterrupt is compilable... yes checking if siginterrupt usage allowed... yes checking if siginterrupt might be used... yes checking if signal can be linked... yes checking if signal is prototyped... yes checking if signal is compilable... yes checking if signal usage allowed... yes checking if signal might be used... yes checking for sys/types.h... (cached) yes checking if sigsetjmp can be linked... no checking if sigsetjmp seems a macro... yes checking if sigsetjmp is compilable... yes checking if sigsetjmp usage allowed... yes checking if sigsetjmp might be used... yes checking if socket can be linked... yes checking if socket is prototyped... yes checking if socket is compilable... yes checking if socket usage allowed... yes checking if socket might be used... yes checking if socketpair can be linked... yes checking if socketpair is prototyped... yes checking if socketpair is compilable... yes checking if socketpair usage allowed... yes checking if socketpair might be used... yes checking if strdup can be linked... yes checking if strdup is prototyped... yes checking if strdup is compilable... yes checking if strdup usage allowed... yes checking if strdup might be used... yes checking if strerror_r can be linked... yes checking if strerror_r is prototyped... yes checking if strerror_r is compilable... yes checking if strerror_r is glibc like... yes checking if strerror_r seems to work... yes checking if strerror_r usage allowed... yes checking if strerror_r might be used... yes checking for accept4... yes checking for eventfd... yes checking for fnmatch... yes checking for geteuid... yes checking for getpass_r... no checking for getppid... yes checking for getpwuid... yes checking for getpwuid_r... yes checking for getrlimit... yes checking for gettimeofday... yes checking for if_nametoindex... yes checking for mach_absolute_time... no checking for pipe... yes checking for pipe2... yes checking for poll... yes checking for sendmmsg... yes checking for sendmsg... yes checking for setlocale... yes checking for setrlimit... yes checking for snprintf... yes checking for utime... yes checking for utimes... yes checking for realpath... yes checking for sched_yield... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for arpa/inet.h... (cached) yes checking if inet_ntop can be linked... yes checking if inet_ntop is prototyped... yes checking if inet_ntop is compilable... yes checking if inet_ntop seems to work... yes checking if inet_ntop usage allowed... yes checking if inet_ntop might be used... yes checking if inet_pton can be linked... yes checking if inet_pton is prototyped... yes checking if inet_pton is compilable... yes checking if inet_pton seems to work... yes checking if inet_pton usage allowed... yes checking if inet_pton might be used... yes checking if strcasecmp can be linked... yes checking if strcasecmp is prototyped... yes checking if strcasecmp is compilable... yes checking if strcasecmp usage allowed... yes checking if strcasecmp might be used... yes checking if strcmpi can be linked... no checking if strcmpi might be used... no checking if stricmp can be linked... no checking if stricmp might be used... no checking for setmode... no checking for fseeko... yes checking for gcc options needed to detect all undeclared functions... none needed checking whether fseeko is declared... yes checking how to set a socket into non-blocking mode... fcntl O_NONBLOCK checking for perl... /usr/bin/perl checking whether to enable the threaded resolver... yes checking for pthread.h... yes checking for pthread_create... yes checking for dirent.h... yes checking for opendir... yes checking convert -I options to -isystem... yes checking whether to enable verbose strings... yes checking whether to enable SSPI support (Windows native builds only)... no checking whether to enable basic authentication method... yes checking whether to enable bearer authentication method... yes checking whether to enable digest authentication method... yes checking whether to enable kerberos authentication method... yes checking whether to enable negotiate authentication method... yes checking whether to enable aws sig methods... yes checking whether to support NTLM... yes checking whether to enable TLS-SRP authentication... yes checking whether to enable Unix domain sockets... auto checking for struct sockaddr_un.sun_path... yes checking whether to support cookies... yes checking whether to support socketpair... yes checking whether to support HTTP authentication... yes checking whether to support DoH... yes checking whether to support the MIME API... yes checking whether to support binding connections locally... yes checking whether to support the form API... yes checking whether to support date parsing... yes checking whether to support netrc parsing... yes checking whether to support progress-meter... yes checking whether to support the SHA-512/256 hash algorithm... yes checking whether to support DNS shuffling... yes checking whether to support curl_easy_option*... yes checking whether to support alt-svc... yes checking whether to support headers-api... yes checking whether to support HSTS... yes checking whether to enable HTTPS-RR support... no checking whether to support WebSockets... yes checking whether hiding of library internal symbols will actually happen... yes checking if this build supports HTTPS-proxy... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating docs/Makefile config.status: creating docs/examples/Makefile config.status: creating docs/libcurl/Makefile config.status: creating docs/libcurl/opts/Makefile config.status: creating docs/cmdline-opts/Makefile config.status: creating include/Makefile config.status: creating include/curl/Makefile config.status: creating src/Makefile config.status: creating lib/Makefile config.status: creating scripts/Makefile config.status: creating lib/libcurl.vers config.status: creating tests/Makefile config.status: creating tests/config config.status: creating tests/configurehelp.pm config.status: creating tests/certs/Makefile config.status: creating tests/data/Makefile config.status: creating tests/server/Makefile config.status: creating tests/libtest/Makefile config.status: creating tests/unit/Makefile config.status: creating tests/tunit/Makefile config.status: creating tests/client/Makefile config.status: creating tests/http/config.ini config.status: creating tests/http/Makefile config.status: creating packages/Makefile config.status: creating packages/vms/Makefile config.status: creating curl-config config.status: creating libcurl.pc config.status: creating lib/curl_config.h config.status: executing depfiles commands config.status: executing libtool commands configure: Configured to build curl/libcurl: Host setup: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc CFLAGS: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/curl/src=/usr/src/debug/curl -flto=auto -Werror-implicit-function-declaration -Wno-system-headers CFLAGS extras: CPPFLAGS: -D_GNU_SOURCE -isystem /usr/include/p11-kit-1 LDFLAGS: -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -flto=auto curl-config: LIBS: -lnghttp2 -lidn2 -lssh2 -lssh2 -lpsl -lnettle -lgnutls -lgssapi_krb5 -lzstd -lbrotlidec -lz curl version: 8.15.0 SSL: enabled (GnuTLS) SSH: enabled (libssh2) zlib: enabled brotli: enabled (libbrotlidec) zstd: enabled (libzstd) GSS-API: enabled (MIT Kerberos/Heimdal) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: enabled (libidn2) Build docs: enabled (--disable-docs) Build libcurl: Shared=yes, Static=yes Built-in manual: no (--enable-manual) --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: /etc/ssl/certs/ca-certificates.crt ca cert path: no ca cert embed: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) IPFS/IPNS: enabled RTSP: enabled RTMP: no (--with-librtmp) PSL: enabled Alt-svc: enabled (--disable-alt-svc) Headers API: enabled (--disable-headers-api) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: enabled (nghttp2) HTTP3: no (--with-ngtcp2 --with-nghttp3, --with-quiche, --with-openssl-quic, --with-msh3) ECH: no (--enable-ech) HTTPS RR: no (--enable-httpsrr) SSLS-EXPORT: no (--enable-ssls-export) Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd make: Entering directory '/build/curl/src/build-curl-gnutls/lib' make all-am make[1]: Entering directory '/build/curl/src/build-curl-gnutls/lib' CC libcurl_la-altsvc.lo CC libcurl_la-amigaos.lo CC libcurl_la-asyn-ares.lo CC libcurl_la-asyn-base.lo CC libcurl_la-asyn-thrdd.lo CC libcurl_la-cf-h1-proxy.lo CC libcurl_la-bufq.lo CC libcurl_la-cf-h2-proxy.lo CC libcurl_la-bufref.lo CC libcurl_la-cf-https-connect.lo CC libcurl_la-cf-haproxy.lo CC libcurl_la-cf-socket.lo CC libcurl_la-cfilters.lo CC libcurl_la-content_encoding.lo CC libcurl_la-conncache.lo CC libcurl_la-connect.lo CC libcurl_la-cookie.lo CC libcurl_la-cshutdn.lo CC libcurl_la-curl_addrinfo.lo CC libcurl_la-curl_des.lo CC libcurl_la-curl_endian.lo CC libcurl_la-curl_fnmatch.lo CC libcurl_la-curl_get_line.lo CC libcurl_la-curl_gethostname.lo CC libcurl_la-curl_gssapi.lo CC libcurl_la-curl_memrchr.lo CC libcurl_la-curl_range.lo CC libcurl_la-curl_ntlm_core.lo CC libcurl_la-curl_rtmp.lo CC libcurl_la-curl_sasl.lo CC libcurl_la-curl_sha512_256.lo CC libcurl_la-curl_sspi.lo CC libcurl_la-curl_threads.lo CC libcurl_la-curl_trc.lo CC libcurl_la-cw-out.lo CC libcurl_la-cw-pause.lo CC libcurl_la-dict.lo CC libcurl_la-doh.lo CC libcurl_la-dynhds.lo CC libcurl_la-easy.lo CC libcurl_la-easygetopt.lo CC libcurl_la-easyoptions.lo CC libcurl_la-escape.lo CC libcurl_la-fake_addrinfo.lo CC libcurl_la-file.lo CC libcurl_la-fileinfo.lo CC libcurl_la-fopen.lo CC libcurl_la-formdata.lo CC libcurl_la-ftp.lo CC libcurl_la-ftplistparser.lo CC libcurl_la-getenv.lo CC libcurl_la-getinfo.lo CC libcurl_la-hash.lo CC libcurl_la-gopher.lo CC libcurl_la-headers.lo CC libcurl_la-hmac.lo CC libcurl_la-hostip.lo CC libcurl_la-hostip4.lo CC libcurl_la-hostip6.lo CC libcurl_la-hsts.lo CC libcurl_la-http.lo CC libcurl_la-http1.lo CC libcurl_la-http2.lo CC libcurl_la-http_aws_sigv4.lo CC libcurl_la-http_chunks.lo CC libcurl_la-http_digest.lo CC libcurl_la-http_negotiate.lo CC libcurl_la-http_ntlm.lo CC libcurl_la-http_proxy.lo CC libcurl_la-httpsrr.lo CC libcurl_la-idn.lo CC libcurl_la-if2ip.lo CC libcurl_la-imap.lo CC libcurl_la-krb5.lo CC libcurl_la-ldap.lo CC libcurl_la-llist.lo CC libcurl_la-macos.lo CC libcurl_la-md4.lo CC libcurl_la-md5.lo CC libcurl_la-memdebug.lo CC libcurl_la-mime.lo CC libcurl_la-mprintf.lo CC libcurl_la-mqtt.lo CC libcurl_la-multi.lo CC libcurl_la-multi_ev.lo CC libcurl_la-netrc.lo CC libcurl_la-noproxy.lo CC libcurl_la-openldap.lo CC libcurl_la-parsedate.lo CC libcurl_la-pingpong.lo CC libcurl_la-pop3.lo CC libcurl_la-progress.lo CC libcurl_la-psl.lo CC libcurl_la-rand.lo CC libcurl_la-rename.lo CC libcurl_la-request.lo CC libcurl_la-rtsp.lo CC libcurl_la-select.lo CC libcurl_la-sendf.lo CC libcurl_la-setopt.lo CC libcurl_la-sha256.lo CC libcurl_la-share.lo CC libcurl_la-slist.lo CC libcurl_la-smb.lo CC libcurl_la-smtp.lo CC libcurl_la-socketpair.lo CC libcurl_la-socks.lo CC libcurl_la-socks_gssapi.lo CC libcurl_la-socks_sspi.lo CC libcurl_la-speedcheck.lo CC libcurl_la-splay.lo CC libcurl_la-strcase.lo CC libcurl_la-strdup.lo CC libcurl_la-strequal.lo CC libcurl_la-system_win32.lo CC libcurl_la-strerror.lo CC libcurl_la-telnet.lo CC libcurl_la-tftp.lo CC libcurl_la-transfer.lo CC libcurl_la-uint-bset.lo CC libcurl_la-uint-hash.lo CC libcurl_la-uint-spbset.lo CC libcurl_la-uint-table.lo CC libcurl_la-url.lo CC libcurl_la-urlapi.lo CC libcurl_la-version.lo CC libcurl_la-ws.lo CC libcurlu_la-altsvc.lo CC libcurlu_la-amigaos.lo CC libcurlu_la-asyn-ares.lo CC libcurlu_la-asyn-base.lo CC libcurlu_la-asyn-thrdd.lo CC libcurlu_la-bufq.lo CC libcurlu_la-bufref.lo CC libcurlu_la-cf-h1-proxy.lo CC libcurlu_la-cf-h2-proxy.lo CC libcurlu_la-cf-haproxy.lo CC libcurlu_la-cf-https-connect.lo CC libcurlu_la-cf-socket.lo CC libcurlu_la-cfilters.lo CC libcurlu_la-conncache.lo CC libcurlu_la-connect.lo CC libcurlu_la-content_encoding.lo CC libcurlu_la-cookie.lo CC libcurlu_la-cshutdn.lo CC libcurlu_la-curl_addrinfo.lo CC libcurlu_la-curl_des.lo CC libcurlu_la-curl_endian.lo CC libcurlu_la-curl_fnmatch.lo CC libcurlu_la-curl_get_line.lo CC libcurlu_la-curl_gethostname.lo CC libcurlu_la-curl_gssapi.lo CC libcurlu_la-curl_memrchr.lo CC libcurlu_la-curl_ntlm_core.lo CC libcurlu_la-curl_range.lo CC libcurlu_la-curl_rtmp.lo CC libcurlu_la-curl_sasl.lo CC libcurlu_la-curl_sha512_256.lo CC libcurlu_la-curl_sspi.lo CC libcurlu_la-curl_threads.lo CC libcurlu_la-curl_trc.lo CC libcurlu_la-cw-out.lo CC libcurlu_la-cw-pause.lo CC libcurlu_la-dict.lo CC libcurlu_la-doh.lo CC libcurlu_la-easy.lo CC libcurlu_la-dynhds.lo CC libcurlu_la-easygetopt.lo CC libcurlu_la-easyoptions.lo CC libcurlu_la-escape.lo CC libcurlu_la-fake_addrinfo.lo CC libcurlu_la-file.lo CC libcurlu_la-fileinfo.lo CC libcurlu_la-fopen.lo CC libcurlu_la-formdata.lo CC libcurlu_la-ftp.lo CC libcurlu_la-ftplistparser.lo CC libcurlu_la-getenv.lo CC libcurlu_la-getinfo.lo CC libcurlu_la-gopher.lo CC libcurlu_la-hash.lo CC libcurlu_la-headers.lo CC libcurlu_la-hmac.lo CC libcurlu_la-hostip.lo CC libcurlu_la-hostip4.lo CC libcurlu_la-hostip6.lo CC libcurlu_la-http.lo CC libcurlu_la-hsts.lo CC libcurlu_la-http1.lo CC libcurlu_la-http2.lo CC libcurlu_la-http_aws_sigv4.lo CC libcurlu_la-http_chunks.lo CC libcurlu_la-http_digest.lo CC libcurlu_la-http_negotiate.lo CC libcurlu_la-http_ntlm.lo CC libcurlu_la-http_proxy.lo CC libcurlu_la-httpsrr.lo CC libcurlu_la-idn.lo CC libcurlu_la-if2ip.lo CC libcurlu_la-imap.lo CC libcurlu_la-krb5.lo CC libcurlu_la-ldap.lo CC libcurlu_la-llist.lo CC libcurlu_la-macos.lo CC libcurlu_la-md4.lo CC libcurlu_la-md5.lo CC libcurlu_la-memdebug.lo CC libcurlu_la-mime.lo CC libcurlu_la-mprintf.lo CC libcurlu_la-mqtt.lo CC libcurlu_la-multi.lo CC libcurlu_la-multi_ev.lo CC libcurlu_la-netrc.lo CC libcurlu_la-noproxy.lo CC libcurlu_la-openldap.lo CC libcurlu_la-parsedate.lo CC libcurlu_la-pingpong.lo CC libcurlu_la-pop3.lo CC libcurlu_la-progress.lo CC libcurlu_la-psl.lo CC libcurlu_la-rand.lo CC libcurlu_la-rename.lo CC libcurlu_la-request.lo CC libcurlu_la-rtsp.lo CC libcurlu_la-select.lo CC libcurlu_la-sendf.lo CC libcurlu_la-setopt.lo CC libcurlu_la-sha256.lo CC libcurlu_la-share.lo CC libcurlu_la-slist.lo CC libcurlu_la-smtp.lo CC libcurlu_la-smb.lo CC libcurlu_la-socketpair.lo CC libcurlu_la-socks.lo CC libcurlu_la-socks_gssapi.lo CC libcurlu_la-socks_sspi.lo CC libcurlu_la-speedcheck.lo CC libcurlu_la-splay.lo CC libcurlu_la-strcase.lo CC libcurlu_la-strdup.lo CC libcurlu_la-strequal.lo CC libcurlu_la-strerror.lo CC libcurlu_la-system_win32.lo CC libcurlu_la-telnet.lo CC libcurlu_la-tftp.lo CC libcurlu_la-transfer.lo CC libcurlu_la-uint-bset.lo CC libcurlu_la-uint-hash.lo CC libcurlu_la-uint-spbset.lo CC libcurlu_la-uint-table.lo CC libcurlu_la-url.lo CC libcurlu_la-urlapi.lo CC libcurlu_la-version.lo CC libcurlu_la-ws.lo CC vauth/libcurlu_la-cleartext.lo CC vauth/libcurlu_la-cram.lo CC vauth/libcurlu_la-digest.lo CC vauth/libcurlu_la-digest_sspi.lo CC vauth/libcurlu_la-gsasl.lo CC vauth/libcurlu_la-krb5_gssapi.lo CC vauth/libcurlu_la-krb5_sspi.lo CC vauth/libcurlu_la-ntlm.lo CC vauth/libcurlu_la-ntlm_sspi.lo CC vauth/libcurlu_la-oauth2.lo CC vauth/libcurlu_la-spnego_gssapi.lo CC vauth/libcurlu_la-spnego_sspi.lo CC vauth/libcurlu_la-vauth.lo CC vtls/libcurlu_la-cipher_suite.lo CC vtls/libcurlu_la-gtls.lo CC vtls/libcurlu_la-hostcheck.lo CC vtls/libcurlu_la-keylog.lo CC vtls/libcurlu_la-mbedtls.lo CC vtls/libcurlu_la-mbedtls_threadlock.lo CC vtls/libcurlu_la-openssl.lo CC vtls/libcurlu_la-rustls.lo CC vtls/libcurlu_la-schannel.lo CC vtls/libcurlu_la-schannel_verify.lo CC vtls/libcurlu_la-vtls.lo CC vtls/libcurlu_la-vtls_spack.lo CC vtls/libcurlu_la-vtls_scache.lo CC vtls/libcurlu_la-wolfssl.lo CC vtls/libcurlu_la-x509asn1.lo CC vquic/libcurlu_la-curl_msh3.lo CC vquic/libcurlu_la-curl_ngtcp2.lo CC vquic/libcurlu_la-curl_osslq.lo CC vquic/libcurlu_la-curl_quiche.lo CC vquic/libcurlu_la-vquic.lo CC vquic/libcurlu_la-vquic-tls.lo CC vssh/libcurlu_la-libssh.lo CC vssh/libcurlu_la-libssh2.lo CC vssh/libcurlu_la-curl_path.lo CC vssh/libcurlu_la-wolfssh.lo CC curlx/libcurlu_la-base64.lo CC curlx/libcurlu_la-dynbuf.lo CC curlx/libcurlu_la-inet_ntop.lo CC curlx/libcurlu_la-inet_pton.lo CC curlx/libcurlu_la-multibyte.lo CC curlx/libcurlu_la-nonblock.lo CC curlx/libcurlu_la-strparse.lo CC curlx/libcurlu_la-timediff.lo CC curlx/libcurlu_la-timeval.lo CC curlx/libcurlu_la-version_win32.lo CC curlx/libcurlu_la-wait.lo CC curlx/libcurlu_la-warnless.lo CC curlx/libcurlu_la-winapi.lo CC vauth/libcurl_la-cleartext.lo CC vauth/libcurl_la-cram.lo CC vauth/libcurl_la-digest.lo CC vauth/libcurl_la-digest_sspi.lo CC vauth/libcurl_la-gsasl.lo CC vauth/libcurl_la-krb5_gssapi.lo CC vauth/libcurl_la-krb5_sspi.lo CC vauth/libcurl_la-ntlm.lo CC vauth/libcurl_la-ntlm_sspi.lo CC vauth/libcurl_la-oauth2.lo CC vauth/libcurl_la-spnego_gssapi.lo CC vauth/libcurl_la-vauth.lo CC vauth/libcurl_la-spnego_sspi.lo CC vtls/libcurl_la-cipher_suite.lo CC vtls/libcurl_la-gtls.lo CC vtls/libcurl_la-hostcheck.lo CC vtls/libcurl_la-keylog.lo CC vtls/libcurl_la-mbedtls.lo CC vtls/libcurl_la-mbedtls_threadlock.lo CC vtls/libcurl_la-openssl.lo CC vtls/libcurl_la-rustls.lo CC vtls/libcurl_la-schannel.lo CC vtls/libcurl_la-schannel_verify.lo CC vtls/libcurl_la-vtls.lo CC vtls/libcurl_la-vtls_scache.lo CC vtls/libcurl_la-vtls_spack.lo CC vtls/libcurl_la-wolfssl.lo CC vtls/libcurl_la-x509asn1.lo CC vquic/libcurl_la-curl_msh3.lo CC vquic/libcurl_la-curl_ngtcp2.lo CC vquic/libcurl_la-curl_osslq.lo CC vquic/libcurl_la-curl_quiche.lo CC vquic/libcurl_la-vquic.lo CC vquic/libcurl_la-vquic-tls.lo CC vssh/libcurl_la-libssh.lo CC vssh/libcurl_la-libssh2.lo CC vssh/libcurl_la-curl_path.lo CC vssh/libcurl_la-wolfssh.lo CC curlx/libcurl_la-base64.lo CC curlx/libcurl_la-dynbuf.lo CC curlx/libcurl_la-inet_ntop.lo CC curlx/libcurl_la-inet_pton.lo CC curlx/libcurl_la-multibyte.lo CC curlx/libcurl_la-nonblock.lo CC curlx/libcurl_la-strparse.lo CC curlx/libcurl_la-timediff.lo CC curlx/libcurl_la-timeval.lo CC curlx/libcurl_la-version_win32.lo CC curlx/libcurl_la-wait.lo CC curlx/libcurl_la-warnless.lo CC curlx/libcurl_la-winapi.lo CCLD libcurlu.la CCLD libcurl.la /usr/bin/nm: .libs/libcurl_la-amigaos.o: no symbols /usr/bin/nm: .libs/libcurl_la-asyn-ares.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_memrchr.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_rtmp.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-fake_addrinfo.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip4.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip6.o: no symbols /usr/bin/nm: .libs/libcurl_la-httpsrr.o: no symbols /usr/bin/nm: .libs/libcurl_la-ldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-macos.o: no symbols /usr/bin/nm: .libs/libcurl_la-memdebug.o: no symbols /usr/bin/nm: .libs/libcurl_la-openldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-socks_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-system_win32.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-digest_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-gsasl.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-krb5_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-ntlm_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-spnego_sspi.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-cipher_suite.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-hostcheck.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls_threadlock.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-openssl.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-rustls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel_verify.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-vtls_spack.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-wolfssl.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_msh3.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_ngtcp2.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_osslq.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_quiche.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-vquic-tls.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-libssh.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-wolfssh.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_ntop.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_pton.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-multibyte.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-version_win32.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-winapi.o: no symbols make[1]: Leaving directory '/build/curl/src/build-curl-gnutls/lib' make: Leaving directory '/build/curl/src/build-curl-gnutls/lib' ==> Starting check()... make[1]: Entering directory '/build/curl/src/build-curl/tests' Making all in certs make[2]: Entering directory '/build/curl/src/build-curl/tests/certs' /usr/bin/perl /build/curl/src/curl/tests/certs/genserv.pl test test-localhost.prm test-localhost.nn.prm test-localhost0h.prm test-localhost-san-first.prm test-localhost-san-last.prm test-client-cert.prm test-client-eku-only.prm /usr/bin/openssl OpenSSL 3.5.1 1 Jul 2025 (Library: OpenSSL 3.5.1 1 Jul 2025) Certificate request self-signature ok subject=C=NN, O=Edel Curl Arctic Illudium Research Cloud, CN=Northern Nowhere Trust Anchor CA root generated: test 6000 days prime256v1 Certificate generated: CA=test 300days prime256v1 test-localhost Certificate generated: CA=test 300days prime256v1 test-localhost.nn Certificate generated: CA=test 300days prime256v1 test-localhost0h Certificate generated: CA=test 300days prime256v1 test-localhost-san-first Certificate generated: CA=test 300days prime256v1 test-localhost-san-last Certificate generated: CA=test 300days prime256v1 test-client-cert Certificate generated: CA=test 300days prime256v1 test-client-eku-only make[2]: Leaving directory '/build/curl/src/build-curl/tests/certs' Making all in data make[2]: Entering directory '/build/curl/src/build-curl/tests/data' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/curl/src/build-curl/tests/data' Making all in server make[2]: Entering directory '/build/curl/src/build-curl/tests/server' /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --include memptr.c getpart.c util.c ../../lib/curlx/base64.c ../../lib/curlx/inet_pton.c ../../lib/curlx/inet_ntop.c ../../lib/curlx/multibyte.c ../../lib/curlx/nonblock.c ../../lib/curlx/strparse.c ../../lib/curlx/timediff.c ../../lib/curlx/timeval.c ../../lib/curlx/version_win32.c ../../lib/curlx/wait.c ../../lib/curlx/warnless.c ../../lib/curlx/winapi.c --test dnsd.c mqttd.c resolve.c rtspd.c sockfilt.c socksd.c sws.c tftpd.c > servers.c RUN checksrc CC servers.o CCLD servers make[2]: Leaving directory '/build/curl/src/build-curl/tests/server' Making all in libtest make[2]: Entering directory '/build/curl/src/build-curl/tests/libtest' /usr/bin/perl /build/curl/src/curl/tests/libtest/mk-lib1521.pl < /build/curl/src/curl/include/curl/curl.h lib1521.c /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --include memptr.c testutil.c testtrace.c ../../lib/curlx/warnless.c ../../lib/curlx/multibyte.c ../../lib/curlx/timediff.c ../../lib/curlx/timeval.c ../../lib/curl_threads.c ../../lib/curlx/version_win32.c ../../lib/curlx/wait.c --test lib500.c lib501.c lib502.c lib503.c lib504.c lib505.c lib506.c lib507.c lib508.c lib509.c lib510.c lib511.c lib512.c lib513.c lib514.c lib515.c lib516.c lib517.c lib518.c lib519.c lib520.c lib521.c lib523.c lib524.c lib525.c lib526.c lib530.c lib533.c lib536.c lib537.c lib539.c lib540.c lib541.c lib542.c lib543.c lib544.c lib547.c lib549.c lib552.c lib553.c lib554.c lib555.c lib556.c lib557.c lib558.c lib559.c lib560.c lib562.c lib564.c lib566.c lib567.c lib568.c lib569.c lib570.c lib571.c lib572.c lib573.c lib574.c lib575.c lib576.c lib578.c lib579.c lib582.c lib583.c lib586.c lib589.c lib590.c lib591.c lib597.c lib598.c lib599.c lib643.c lib650.c lib651.c lib652.c lib653.c lib654.c lib655.c lib658.c lib659.c lib661.c lib666.c lib667.c lib668.c lib670.c lib674.c lib676.c lib677.c lib678.c lib694.c lib695.c lib751.c lib753.c lib1156.c lib1301.c lib1308.c lib1485.c lib1500.c lib1501.c lib1502.c lib1506.c lib1507.c lib1508.c lib1509.c lib1510.c lib1511.c lib1512.c lib1513.c lib1514.c lib1515.c lib1517.c lib1518.c lib1520.c lib1522.c lib1523.c lib1525.c lib1526.c lib1527.c lib1528.c lib1529.c lib1530.c lib1531.c lib1532.c lib1533.c lib1534.c lib1535.c lib1536.c lib1537.c lib1538.c lib1540.c lib1541.c lib1542.c lib1545.c lib1550.c lib1551.c lib1552.c lib1553.c lib1554.c lib1555.c lib1556.c lib1557.c lib1558.c lib1559.c lib1560.c lib1564.c lib1565.c lib1567.c lib1568.c lib1569.c lib1571.c lib1576.c lib1591.c lib1592.c lib1593.c lib1594.c lib1597.c lib1598.c lib1599.c lib1662.c lib1900.c lib1901.c lib1903.c lib1905.c lib1906.c lib1907.c lib1908.c lib1910.c lib1911.c lib1912.c lib1913.c lib1915.c lib1916.c lib1918.c lib1919.c lib1933.c lib1934.c lib1935.c lib1936.c lib1937.c lib1938.c lib1939.c lib1940.c lib1945.c lib1947.c lib1948.c lib1955.c lib1956.c lib1957.c lib1958.c lib1959.c lib1960.c lib1964.c lib1970.c lib1971.c lib1972.c lib1973.c lib1974.c lib1975.c lib1977.c lib1978.c lib2023.c lib2032.c lib2082.c lib2301.c lib2302.c lib2304.c lib2306.c lib2308.c lib2309.c lib2402.c lib2404.c lib2405.c lib2502.c lib2700.c lib3010.c lib3025.c lib3026.c lib3027.c lib3100.c lib3101.c lib3102.c lib3103.c lib3104.c lib3105.c lib3207.c lib3208.c lib1521.c > libtests.c RUN checksrc CC libtests.o CCLD libtests make[2]: Leaving directory '/build/curl/src/build-curl/tests/libtest' Making all in client make[2]: Entering directory '/build/curl/src/build-curl/tests/client' /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --include ../../lib/curlx/multibyte.c ../../lib/curlx/timediff.c ../../lib/curlx/wait.c --test h2_pausing.c h2_serverpush.c h2_upgrade_extreme.c hx_download.c hx_upload.c tls_session_reuse.c upload_pausing.c ws_data.c ws_pingpong.c > clients.c RUN checksrc CC clients.o CCLD clients make[2]: Leaving directory '/build/curl/src/build-curl/tests/client' Making all in http make[2]: Entering directory '/build/curl/src/build-curl/tests/http' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/curl/src/build-curl/tests/http' Making all in unit make[2]: Entering directory '/build/curl/src/build-curl/tests/unit' /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --test unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c unit1307.c unit1309.c unit1323.c unit1330.c unit1395.c unit1396.c unit1397.c unit1398.c unit1399.c unit1600.c unit1601.c unit1602.c unit1603.c unit1605.c unit1606.c unit1607.c unit1608.c unit1609.c unit1610.c unit1611.c unit1612.c unit1614.c unit1615.c unit1616.c unit1620.c unit1650.c unit1651.c unit1652.c unit1653.c unit1654.c unit1655.c unit1656.c unit1657.c unit1658.c unit1660.c unit1661.c unit1663.c unit1664.c unit1979.c unit1980.c unit2600.c unit2601.c unit2602.c unit2603.c unit2604.c unit3200.c unit3205.c unit3211.c unit3212.c unit3213.c unit3214.c > units.c RUN checksrc CC units.o CCLD units make[2]: Leaving directory '/build/curl/src/build-curl/tests/unit' Making all in tunit make[2]: Entering directory '/build/curl/src/build-curl/tests/tunit' /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --test tool1394.c tool1604.c tool1621.c > tunits.c RUN checksrc CC tunits.o CCLD tunits make[2]: Leaving directory '/build/curl/src/build-curl/tests/tunit' make[2]: Entering directory '/build/curl/src/build-curl/tests' (cd certs && make) make[3]: Entering directory '/build/curl/src/build-curl/tests/certs' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/curl/src/build-curl/tests/certs' make[2]: Leaving directory '/build/curl/src/build-curl/tests' srcdir=/build/curl/src/curl/tests /usr/bin/perl -I/build/curl/src/curl/tests /build/curl/src/curl/tests/runtests.pl -a -p ~flaky ~timing-dependent -v -a -k -p -j64 !433 Using curl: ../src/curl CMD (256): valgrind >/dev/null 2>&1 CMD (0): valgrind --help 2>&1 | grep -- --tool >/dev/null 2>&1 CMD (0): ../src/curl --version 1>log/curlverout.log 2>log/curlvererr.log ********* System characteristics ******** * curl 8.15.0 (riscv64-unknown-linux-gnu) * libcurl/8.15.0 OpenSSL/3.5.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.66.0 nghttp3/1.10.1 * Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss * Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd * Disabled: win32-ca-searchpath, win32-ca-search-safe, override-dns * Host: * System: Linux arch-nspawn-402956 6.15.1-1-sophgo-g40031e56817d #1 SMP PREEMPT_DYNAMIC Fri, 13 Jun 2025 05:18:17 +0000 riscv64 GNU/Linux * OS: linux * Perl: v5.42.0 (/usr/bin/perl) * diff: available * Args: -a -p ~flaky ~timing-dependent -v -a -k -p -j64 !433 * Jobs: 64 * Env: Valgrind * Seed: 216255 * buildinfo.configure.tool: configure * buildinfo.configure.args: '--prefix=/usr' '--mandir=/usr/share/man' '--disable-ldap' '--disable-ldaps' '--disable-manual' '--enable-ipv6' '--enable-threaded-resolver' '--enable-websockets' '--with-gssapi' '--with-libssh2' '--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt' '--enable-versioned-symbols' '--with-fish-functions-dir=/usr/share/fish/vendor_completions.d/' '--with-openssl' '--with-openssl-quic' '--with-zsh-functions-dir=/usr/share/zsh/site-functions/' 'CFLAGS=-march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/curl/src=/usr/src/debug/curl -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -flto=auto' * buildinfo.host: riscv64-unknown-linux-gnu * buildinfo.host.cpu: riscv64 * buildinfo.host.os: linux-gnu * buildinfo.target: riscv64-unknown-linux-gnu * buildinfo.target.cpu: riscv64 * buildinfo.target.os: linux-gnu * buildinfo.target.flags: UNIX UNIX GCC * buildinfo.compiler: GNU_C * buildinfo.compiler.version: 15.1.1 * buildinfo.sysroot: * Servers: HTTP-IPv6 HTTP-unix FTP-IPv6 ***************************************** DISABLED: test 323 DISABLED: test 594 DISABLED: test 836 DISABLED: test 882 DISABLED: test 938 DISABLED: test 1182 DISABLED: test 1184 DISABLED: test 1209 DISABLED: test 1211 DISABLED: test 1307 DISABLED: test 1316 DISABLED: test 1512 DISABLED: test 1801 DISABLED: test 2043 test 0096 SKIPPED: curl lacks TrackMemory support test 0159 SKIPPED: curl lacks Debug support test 0356 SKIPPED: curl lacks Debug support test 0358 SKIPPED: curl lacks Debug support test 0375 SKIPPED: curl has proxy support test 0445 SKIPPED: curl lacks ldap support test 0506 SKIPPED: curl has threaded-resolver support test 0558 SKIPPED: curl lacks TrackMemory support Warning: test573 result is ignored due to flaky Warning: test587 result is ignored due to flaky test 0959 SKIPPED: curl has IDN support test 0960 SKIPPED: curl has IDN support test 0961 SKIPPED: curl has IDN support test 1026 SKIPPED: curl lacks manual support Warning: test1086 result is ignored due to flaky Warning: test1086 result is ignored due to timing-dependent Warning: test1112 result is ignored due to timing-dependent Warning: test1113 result is ignored due to flaky Warning: test1162 result is ignored due to flaky Warning: test1163 result is ignored due to flaky test 1179 SKIPPED: curl lacks manual support Warning: test1208 result is ignored due to flaky Warning: test1208 result is ignored due to timing-dependent test 1330 SKIPPED: curl lacks TrackMemory support test 1454 SKIPPED: curl has IPv6 support test 1461 SKIPPED: curl lacks manual support Warning: test1510 result is ignored due to flaky test 1560 SKIPPED: curl lacks ldap support Warning: test1592 result is ignored due to flaky Warning: test1592 result is ignored due to timing-dependent Warning: test1631 result is ignored due to flaky Warning: test1632 result is ignored due to flaky test 1703 SKIPPED: curl lacks Unicode support Warning: test2032 result is ignored due to flaky Warning: test2032 result is ignored due to timing-dependent test 2033 SKIPPED: curl lacks Schannel support test 2070 SKIPPED: curl lacks Schannel support test 2079 SKIPPED: curl lacks Schannel support test 2102 SKIPPED: curl lacks override-dns support test 2103 SKIPPED: curl lacks override-dns support test 2500 SKIPPED: curl lacks nghttpx-h3 support test 2503 SKIPPED: curl lacks nghttpx-h3 support test 4000 SKIPPED: curl lacks ECH support test 4001 SKIPPED: curl lacks ECH support Runner 73746 starting Runner 73742 starting Runner 73745 starting Runner 73744 starting Runner 73743 starting Runner 73741 starting Runner 73739 starting Runner 73738 starting Runner 73740 starting Runner 73736 starting Runner 73737 starting Runner 73734 starting Runner 73732 starting Runner 73735 starting Runner 73731 starting Runner 73733 starting Runner 73729 starting Runner 73730 starting Runner 73725 starting Runner 73722 starting Runner 73724 starting Runner 73726 starting Runner 73721 starting Runner 73723 starting Runner 73717 starting Runner 73719 starting Runner 73715 starting Runner 73718 starting Runner 73720 starting Runner 73713 starting Runner 73714 starting Runner 73716 starting Runner 73712 starting Runner 73710 starting Runner 73711 starting Runner 73708 starting Runner 73709 starting Runner 73707 starting Runner 73706 starting Runner 73704 starting Runner 73702 starting Runner 73705 starting Runner 73703 starting Runner 73701 starting Runner 73700 starting Runner 73699 starting Runner 73698 starting Runner 73697 starting Runner 73696 starting Runner 73695 starting Runner 73692 starting Runner 73694 starting Runner 73689 starting Runner 73690 starting Runner 73691 starting Runner 73727 starting Runner 73687 starting Runner 73693 starting Runner 73685 starting Runner 73688 starting Runner 73686 starting Runner 73683 starting Runner 73684 starting Runner 73728 starting CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind20 ../src/curl -q --output log/45/curl20.out --include --trace-ascii log/45/trace20 --trace-config all --trace-time --ipv4 non-existing-host.haxx.se. > log/45/stdout20 2> log/45/stderr20 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind19 ../src/curl -q --output log/46/curl19.out --include --trace-ascii log/46/trace19 --trace-config all --trace-time --trace-config all 127.0.0.1:47 > log/46/stdout19 2> log/46/stderr19 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind15 ../src/curl -q --include --trace-ascii log/50/trace15 --trace-config all --trace-time http://127.0.0.1:45651/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n" > log/50/stdout15 2> log/50/stderr15 * starts no server test 0020...[attempt connect to non-existing host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind20 ../src/curl -q --output log/45/curl20.out --include --trace-ascii log/45/trace20 --trace-config all --trace-time --ipv4 non-existing-host.haxx.se. > log/45/stdout20 2> log/45/stderr20 curl returned 1, when expecting 6 20: exit FAILED == Contents of files in the log/45/ dir after test 20 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind20 ../src/curl -q --output log/45/curl20.out --include --trace-ascii log/45/trace20 --trace-config all --trace-time --ipv4 non-existing-host.haxx.se. > log/45/stdout20 2> log/45/stderr20 === End of file commands.log === Start of file server.cmd Testnum 20 === End of file server.cmd === Start of file valgrind20 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind20 * starts no server test 0019...[attempt connect to non-listening socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind19 ../src/curl -q --output log/46/curl19.out --include --trace-ascii log/46/trace19 --trace-config all --trace-time --trace-config all 127.0.0.1:47 > log/46/stdout19 2> log/46/stderr19 curl returned 1, when expecting 7 19: exit FAILED == Contents of files in the log/46/ dir after test 19 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind19 ../src/curl -q --output log/46/curl19.out --include --trace-ascii log/46/trace19 --trace-config all --trace-time --trace-config all 127.0.0.1:47 > log/46/stdout19 2> log/46/stderr19 === End of file commands.log === Start of file server.cmd Testnum 19 === End of file server.cmd === Start of file valgrind19 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind19 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind11 ../src/curl -q --output log/54/curl11.out --include --trace-ascii log/54/trace11 --trace-config all --trace-time http://127.0.0.1:44921/want/11 -L > log/54/stdout11 2> log/54/stderr11 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind59 ../src/curl -q --output log/6/curl59.out --include --trace-ascii log/6/trace59 --trace-config all --trace-time "http://127.0.0.1:37181?mooo/59" > log/6/stdout59 2> log/6/stderr59 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind14 ../src/curl -q --output log/51/curl14.out --include --trace-ascii log/51/trace14 --trace-config all --trace-time http://127.0.0.1:34903/want/14 -i --head > log/51/stdout14 2> log/51/stderr14 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind6 ../src/curl -q --output log/59/curl6.out --include --trace-ascii log/59/trace6 --trace-config all --trace-time http://127.0.0.1:43695/we/want/that/page/6 -b "name=contents;name2=content2" -b name3=content3 > log/59/stdout6 2> log/59/stderr6 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/50/server/http_server.pid" --logfile "log/50/http_server.log" --logdir "log/50" --portfile log/50/server/http_server.port --config log/50/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73759 port 45651 * pid http => 73759 73759 test 0015...[--write-out test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind15 ../src/curl -q --include --trace-ascii log/50/trace15 --trace-config all --trace-time http://127.0.0.1:45651/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n" > log/50/stdout15 2> log/50/stderr15 15: stdout FAILED: --- log/50/check-expected 2025-07-18 09:40:32.028612580 +0000 +++ log/50/check-generated 2025-07-18 09:40:32.027612581 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Fake: yes[CR][LF] -Fake: yes[CR][LF] -Fake: yes[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -Repeated nonsense-headers[LF] -http://127.0.0.1:45651/want/15 200 26[LF] == Contents of files in the log/50/ dir after test 15 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Fake: yes[CR][LF] Fake: yes[CR][LF] Fake: yes[CR][LF] Content-Length: 26[CR][LF] [CR][LF] Repeated nonsense-headers[LF] http://127.0.0.1:45651/want/15 200 26[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind15 ../src/curl -q --include --trace-ascii log/50/trace15 --trace-config all --trace-time http://127.0.0.1:45651/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n" > log/50/stdout15 2> log/50/stderr15 === End of file commands.log === Start of file http_server.log 09:40:30.656054 Running HTTP IPv4 version on port 45651 09:40:30.656891 Wrote pid 73759 to log/50/server/http_server.pid 09:40:30.657250 Wrote port 45651 to log/50/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 15 === End of file server.cmd === Start of file valgrind15 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind15 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/6/server/http_server.pid" --logfile "log/6/http_server.log" --logdir "log/6" --portfile log/6/server/http_server.port --config log/6/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73803 port 37181 * pid http => 73803 73803 test 0059...[HTTP URL with slash but with "parameter"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind59 ../src/curl -q --output log/6/curl59.out --include --trace-ascii log/6/trace59 --trace-config all --trace-time "http://127.0.0.1:37181?mooo/59" > log/6/stdout59 2> log/6/stderr59 59: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 59 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind59 ../src/curl -q --output log/6/curl59.out --include --trace-ascii log/6/trace59 --trace-config all --trace-time "http://127.0.0.1:37181?mooo/59" > log/6/stdout59 2> log/6/stderr59 === End of file commands.log === Start of file http_server.log 09:40:30.718400 Running HTTP IPv4 version on port 37181 09:40:30.722256 Wrote pid 73803 to log/6/server/http_server.pid 09:40:30.722713 Wrote port 37181 to log/6/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 59 === End of file server.cmd === Start of file valgrind59 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind59 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/54/server/http_server.pid" --logfile "log/54/http_server.log" --logdir "log/54" --portfile log/54/server/http_server.port --config log/54/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73756 port 44921 * pid http => 73756 73756 test 0011...[simple HTTP Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind11 ../src/curl -q --output log/54/curl11.out --include --trace-ascii log/54/trace11 --trace-config all --trace-time http://127.0.0.1:44921/want/11 -L > log/54/stdout11 2> log/54/stderr11 11: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 11 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind11 ../src/curl -q --output log/54/curl1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind58 ../src/curl -q --output log/7/curl58.out --include --trace-ascii log/7/trace58 --trace-config all --trace-time http://127.0.0.1:44647/we/want/ -T log/7/58te[]st.txt -g > log/7/stdout58 2> log/7/stderr58 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind17 ../src/curl -q --output log/48/curl17.out --include --trace-ascii log/48/trace17 --trace-config all --trace-time -K - 127.0.0.1:46339/that.site.com/17 log/48/stdout17 2> log/48/stderr17 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind7 ../src/curl -q --output log/58/curl7.out --include --trace-ascii log/58/trace7 --trace-config all --trace-time http://127.0.0.1:46727/we/want/7 -b none -D log/58/heads7.txt > log/58/stdout7 2> log/58/stderr7 1.out --include --trace-ascii log/54/trace11 --trace-config all --trace-time http://127.0.0.1:44921/want/11 -L > log/54/stdout11 2> log/54/stderr11 === End of file commands.log === Start of file http_server.log 09:40:30.489380 Running HTTP IPv4 version on port 44921 09:40:30.490220 Wrote pid 73756 to log/54/server/http_server.pid 09:40:30.493768 Wrote port 44921 to log/54/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 11 === End of file server.cmd === Start of file valgrind11 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind11 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/51/server/http_server.pid" --logfile "log/51/http_server.log" --logdir "log/51" --portfile log/51/server/http_server.port --config log/51/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73763 port 34903 * pid http => 73763 73763 test 0014...[HTTP HEAD with Connection: close] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind14 ../src/curl -q --output log/51/curl14.out --include --trace-ascii log/51/trace14 --trace-config all --trace-time http://127.0.0.1:34903/want/14 -i --head > log/51/stdout14 2> log/51/stderr14 14: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 14 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind14 ../src/curl -q --output log/51/curl14.out --include --trace-ascii log/51/trace14 --trace-config all --trace-time http://127.0.0.1:34903/want/14 -i --head > log/51/stdout14 2> log/51/stderr14 === End of file commands.log === Start of file http_server.log 09:40:30.694788 Running HTTP IPv4 version on port 34903 09:40:30.695818 Wrote pid 73763 to log/51/server/http_server.pid 09:40:30.696353 Wrote port 34903 to log/51/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 14 === End of file server.cmd === Start of file valgrind14 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind14 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/59/server/http_server.pid" --logfile "log/59/http_server.log" --logdir "log/59" --portfile log/59/server/http_server.port --config log/59/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73752 port 43695 * pid http => 73752 73752 test 0006...[HTTP with simple cookie send] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind6 ../src/curl -q --output log/59/curl6.out --include --trace-ascii log/59/trace6 --trace-config all --trace-time http://127.0.0.1:43695/we/want/that/page/6 -b "name=contents;name2=content2" -b name3=content3 > log/59/stdout6 2> log/59/stderr6 6: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 6 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind6 ../src/curl -q --output log/59/curl6.out --include --trace-ascii log/59/trace6 --trace-config all --trace-time http://127.0.0.1:43695/we/want/that/page/6 -b "name=contents;name2=content2" -b name3=content3 > log/59/stdout6 2> log/59/stderr6 === End of file commands.log === Start of file http_server.log 09:40:30.333928 Running HTTP IPv4 version on port 43695 09:40:30.340906 Wrote pid 73752 to log/59/server/http_server.pid 09:40:30.341309 Wrote port 43695 to log/59/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 6 === End of file server.cmd === Start of file valgrind6 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo vaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind12 ../src/curl -q --output log/53/curl12.out --include --trace-ascii log/53/trace12 --trace-config all --trace-time http://127.0.0.1:34639/want/12 -r 100-200 > log/53/stdout12 2> log/53/stderr12 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind3 ../src/curl -q --output log/62/curl3.out --include --trace-ascii log/62/trace3 --trace-config all --trace-time -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://127.0.0.1:38899/3 > log/62/stdout3 2> log/62/stderr3 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind10 ../src/curl -q --output log/55/curl10.out --include --trace-ascii log/55/trace10 --trace-config all --trace-time http://127.0.0.1:33071/we/want/10 -T log/55/test10.txt > log/55/stdout10 2> log/55/stderr10 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind13 ../src/curl -q --output log/52/curl13.out --include --trace-ascii log/52/trace13 --trace-config all --trace-time http://127.0.0.1:40089/want/13 -X DELETE > log/52/stdout13 2> log/52/stderr13 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind18 ../src/curl -q --include --trace-ascii log/47/trace18 --trace-config all --trace-time "127.0.0.1:41103/{18,180002,180003}" > log/47/stdout18 2> log/47/stderr18 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind26 ../src/curl -q --output log/39/curl26.out --include --trace-ascii log/39/trace26 --trace-config all --trace-time http://127.0.0.1:42899/want/26 -o - -o - > log/39/stdout26 2> log/39/stderr26 lgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind6 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/48/server/http_server.pid" --logfile "log/48/http_server.log" --logdir "log/48" --portfile log/48/server/http_server.port --config log/48/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73764 port 46339 * pid http => 73764 73764 test 0017...[HTTP with config file on stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind17 ../src/curl -q --output log/48/curl17.out --include --trace-ascii log/48/trace17 --trace-config all --trace-time -K - 127.0.0.1:46339/that.site.com/17 log/48/stdout17 2> log/48/stderr17 17: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 17 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind17 ../src/curl -q --output log/48/curl17.out --include --trace-ascii log/48/trace17 --trace-config all --trace-time -K - 127.0.0.1:46339/that.site.com/17 log/48/stdout17 2> log/48/stderr17 === End of file commands.log === Start of file http_server.log 09:40:30.530054 Running HTTP IPv4 version on port 46339 09:40:30.533025 Wrote pid 73764 to log/48/server/http_server.pid 09:40:30.533413 Wrote port 46339 to log/48/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 17 === End of file server.cmd === Start of file stdin-for-17 # # Use a silly request without '--': request MOOO # # Set the user-agent using a short-option: -A "agent007 license to drill\t" # # long option *with* '--': --max-time 180 === End of file stdin-for-17 === Start of file valgrind17 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind17 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/58/server/http_server.pid" --logfile "log/58/http_server.log" --logdir "log/58" --portfile log/58/server/http_server.port --config log/58/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73755 port 46727 * pid http => 73755 73755 test 0007...[HTTP with cookie parser and header recording] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind7 ../src/curl -q --output log/58/curl7.out --include --trace-ascii log/58/trace7 --trace-config all --trace-time http://127.0.0.1:46727/we/want/7 -b none -D log/58/heads7.txt > log/58/stdout7 2> log/58/stderr7 7: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 7 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind7 ../src/curl -q --output log/58/curl7.out --include --trace-ascii log/58/trace7 --trace-config all --trace-time http://127.0.0.1:46727/we/want/7 -b none -D log/58/heads7.txt > log/58/stdout7 2> log/58/stderr7 === End of file commands.log === Start of file http_server.log 09:40:30.764629 Running HTTP IPv4 version on port 46727 09:40:30.765831 Wrote pid 73755 to log/58/server/http_server.pid 09:40:30.766286 Wrote port 46727 to log/58/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 7 === End of file server.cmd === Start of file valgrind7 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind7 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/7/server/http_server.pid" --logfile "log/7/http_server.log" --logdir "log/7" --portfile log/7/server/http_server.port --config log/7/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73801 port 44647 * pid http => 73801 73801 test 0058...[HTTP PUT from file with weird letters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind58 ../src/curl -q --output log/7/curl58.out --include --trace-ascii log/7/trace58 --trace-config all --trace-time http://127.0.0.1:44647/we/want/ -T log/7/58te[]st.txt -g > log/7/stdout58 2> log/7/stderr58 58: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 58 === Start of file 58te[]st.txt a few bytes === End of file 58te[]st.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind58 ../src/curl -q --output log/7/curl58.out --include --trace-ascii log/7/trace58 --trace-config all --trace-time http://127.0.0.1:44647/we/want/ -T log/7/58te[]st.txt -g > log/7/stdout58 2> log/7/stderr58 === End of file commands.log === Start of file http_server.log 09:40:30.851706 Running HTTP IPv4 version on port 44647 09:40:30.852407 Wrote pid 73801 to log/7/server/http_server.pid 09:40:30.852824 Wrote port 44647 to log/7/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 58 === End of file server.cmd === Start of file valgrind58 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind58 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/53/server/http_server.pid" --logfile "log/53/http_server.log" --logdir "log/53" --portfile log/53/server/http_server.port --config log/53/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73761 port 34639 * pid http => 73761 73761 test 0012...[HTTP range support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind12 ../src/curl -q --output log/53/curl12.out --include --trace-ascii log/53/trace12 --trace-config all --trace-time http://127.0.0.1:34639/want/12 -r 100-200 > log/53/stdout12 2> log/53/stderr12 12: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 12 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind12 ../src/curl -q --output log/53/curl12.out --include --trace-ascii log/53/trace12 --trace-config all --trace-time http://127.0.0.1:34639/want/12 -r 100-200 > log/53/stdout12 2> log/53/stderr12 === End of file commands.log === Start of file http_server.log 09:40:30.654022 Running HTTP IPv4 version on port 34639 09:40:30.665871 Wrote pid 73761 to log/53/server/http_server.pid 09:40:30.666200 Wrote port 34639 to log/53/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 12 === End of file server.cmd === Start of file valgrind12 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind12 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/55/server/http_server.pid" --logfile "log/55/http_server.log" --logdir "log/55" --portfile log/55/server/http_server.port --config log/55/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73757 port 33071 * pid http => 73757 73757 test 0010...[simple HTTP PUT from file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind10 ../src/curl -q --output log/55/curl10.out --include --trace-ascii log/55/trace10 --trace-config all --trace-time http://127.0.0.1:33071/we/want/10 -T log/55/test10.txt > log/55/stdout10 2> log/55/stderr10 10: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 10 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind10 ../src/curl -q --output log/55/curl10.out --include --trace-ascii log/55/trace10 --trace-config all --trace-time http://127.0.0.1:33071/we/want/10 -T log/55/test10.txt > log/55/stdout10 2> log/55/stderr10 === End of file commands.log === Start of file http_server.log 09:40:30.495349 Running HTTP IPv4 version on port 33071 09:40:30.496236 Wrote pid 73757 to log/55/server/http_server.pid 09:40:30.500013 Wrote port 33071 to log/55/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 10 === End of file server.cmd === Start of file test10.txt Weird file to upload for testing the PUT feature === End of file test10.txt === Start of file valgrind10 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named functionCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind5 ../src/curl -q --output log/60/curl5.out --include --trace-ascii log/60/trace5 --trace-config all --trace-time http://127.0.0.1:38843/we/want/that/page/5#5 -x 127.0.0.1:38843 > log/60/stdout5 2> log/60/stderr5 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind21 ../src/curl -q --output log/44/curl21.out --include --trace-ascii log/44/trace21 --trace-config all --trace-time -I -d FOOO -F moo=moo localhost > log/44/stdout21 2> log/44/stderr21 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind33 ../src/curl -q --output log/32/curl33.out --include --trace-ascii log/32/trace33 --trace-config all --trace-time http://127.0.0.1:45607/33 -Tlog/32/test33.txt -C 50 > log/32/stdout33 2> log/32/stderr33 using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind10 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/62/server/http_server.pid" --logfile "log/62/http_server.log" --logdir "log/62" --portfile log/62/server/http_server.port --config log/62/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73749 port 38899 * pid http => 73749 73749 test 0003...[HTTP POST with auth and contents but with content-length set to 0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind3 ../src/curl -q --output log/62/curl3.out --include --trace-ascii log/62/trace3 --trace-config all --trace-time -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://127.0.0.1:38899/3 > log/62/stdout3 2> log/62/stderr3 3: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 3 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind3 ../src/curl -q --output log/62/curl3.out --include --trace-ascii log/62/trace3 --trace-config all --trace-time -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://127.0.0.1:38899/3 > log/62/stdout3 2> log/62/stderr3 === End of file commands.log === Start of file http_server.log 09:40:30.749992 Running HTTP IPv4 version on port 38899 09:40:30.750823 Wrote pid 73749 to log/62/server/http_server.pid 09:40:30.751204 Wrote port 38899 to log/62/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 3 === End of file server.cmd === Start of file valgrind3 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/39/server/http_server.pid" --logfile "log/39/http_server.log" --logdir "log/39" --portfile log/39/server/http_server.port --config log/39/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73769 port 42899 * pid http => 73769 73769 test 0026...[specify more -o than URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind26 ../src/curl -q --output log/39/curl26.out --include --trace-ascii log/39/trace26 --trace-config all --trace-time http://127.0.0.1:42899/want/26 -o - -o - > log/39/stdout26 2> log/39/stderr26 26: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 26 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind26 ../src/curl -q --output log/39/curl26.out --include --trace-ascii log/39/trace26 --trace-config all --trace-time http://127.0.0.1:42899/want/26 -o - -o - > log/39/stdout26 2> log/39/stderr26 === End of file commands.log === Start of file http_server.log 09:40:30.730317 Running HTTP IPv4 version on port 42899 09:40:30.735206 Wrote pid 73769 to log/39/server/http_server.pid 09:40:30.735676 Wrote port 42899 to log/39/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 26 === End of file server.cmd === Start of file valgrind26 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind26 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind41 ../src/curl -q --output log/24/curl41.out --include --trace-ascii log/24/trace41 --trace-config all --trace-time http://127.0.0.1:39259/want/41 -F moo=@boo > log/24/stdout41 2> log/24/stderr41 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind37 ../src/curl -q --output log/28/curl37.out --include --trace-ascii log/28/trace37 --trace-config all --trace-time http://127.0.0.1:37545/37 > log/28/stdout37 2> log/28/stderr37 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1 ../src/curl -q --output log/64/curl1.out --include --trace-ascii log/64/trace1 --trace-config all --trace-time http://127.0.0.1:33073/1 > log/64/stdout1 2> log/64/stderr1 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind57 ../src/curl -q --include --trace-ascii log/8/trace57 --trace-config all --trace-time -w "%{content_type}\n" http://127.0.0.1:46129/57 -o log/8/out57 > log/8/stdout57 2> log/8/stderr57 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind16 ../src/curl -q --output log/49/curl16.out --include --trace-ascii log/49/trace16 --trace-config all --trace-time -U fake@user:loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x 127.0.0.1:42667 http://we.want.that.site.com/16 > log/49/stdout16 2> log/49/stderr16 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind24 ../src/curl -q --output log/41/curl24.out --include --trace-ascii log/41/trace24 --trace-config all --trace-time http://127.0.0.1:35093/24 --fail --silent --show-error > log/41/stdout24 2> log/41/stderr24 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind42 ../src/curl -q --output log/23/curl42.out --include --trace-ascii log/23/trace42 --trace-config all --trace-time http://127.0.0.1:42467/we/are/all/twits/42 -L > log/23/stdout42 2> log/23/stderr42 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind35 ../src/curl -q --output log/30/curl35.out --include --trace-ascii log/30/trace35 --trace-config all --trace-time http://127.0.0.1:43913/we/want/35 --data-binary @log/30/test35.txt > log/30/stdout35 2> log/30/stderr35 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind54 ../src/curl -q --output log/11/curl54.out --include --trace-ascii log/11/trace54 --trace-config all --trace-time http://127.0.0.1:41387/want/54 -L > log/11/stdout54 2> log/11/stderr54 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind43 ../src/curl -q --output log/22/curl43.out --include --trace-ascii log/22/trace43 --trace-config all --trace-time http://127.0.0.1:40073/want/43 -L -x 127.0.0.1:40073 > log/22/stdout43 2> log/22/stderr43 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind2 ../src/curl -q --output log/63/curl2.out --include --trace-ascii log/63/trace2 --trace-config all --trace-time -u fake:user http://127.0.0.1:38797/2 > log/63/stdout2 2> log/63/stderr2 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind53 ../src/curl -q --output log/12/curl53.out --include --trace-ascii log/12/trace53 --trace-config all --trace-time 127.0.0.1:45579/want/53 -b log/12/injar53 -j > log/12/stdout53 2> log/12/stderr53 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind9 ../src/curl -q --output log/56/curl9.out --include --trace-ascii log/56/trace9 --trace-config all --trace-time http://127.0.0.1:43265/we/want/9 -F name=daniel -F tool=curl -F file=@log/56/test9.txt > log/56/stdout9 2> log/56/stderr9 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/47/server/http_server.pid" --logfile "log/47/http_server.log" --logdir "log/47" --portfile log/47/server/http_server.port --config log/47/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73762 port 41103 * pid http => 73762 73762 test 0018...[multiple requests using {} in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind18 ../src/curl -q --include --trace-ascii log/47/trace18 --trace-config all --trace-time "127.0.0.1:41103/{18,180002,180003}" > log/47/stdout18 2> log/47/stderr18 18: stdout FAILED: --- log/47/check-expected 2025-07-18 09:40:32.518612332 +0000 +++ log/47/check-generated 2025-07-18 09:40:32.517612333 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 4[CR][LF] -[CR][LF] -moo[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 4[CR][LF] -[CR][LF] -foo[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 4[CR][LF] -[CR][LF] -hoo[LF] == Contents of files in the log/47/ dir after test 18 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 4[CR][LF] [CR][LF] moo[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 4[CR][LF] [CR][LF] foo[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 4[CR][LF] [CR][LF] hoo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind18 ../src/curl -q --include --trace-ascii log/47/trace18 --trace-config all --trace-time "127.0.0.1:41103/{18,180002,180003}" > log/47/stdout18 2> log/47/stderr18 === End of file commands.log === Start of file http_server.log 09:40:30.595164 Running HTTP IPv4 version on port 41103 09:40:30.599036 Wrote pid 73762 to log/47/server/http_server.pid 09:40:30.599375 Wrote port 41103 to log/47/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 18 === End of file server.cmd === Start of file valgrind18 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind18 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/52/server/http_server.pid" --logfile "log/52/http_server.log" --logdir "log/52" --portfile log/52/server/http_server.port --config log/52/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73758 port 40089 * pid http => 73758 73758 test 0013...[HTTP custom request 'DELETE'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind13 ../src/curl -q --output log/52/curl13.out --include --trace-ascii log/52/trace13 --trace-config all --trace-time http://127.0.0.1:40089/want/13 -X DELETE > log/52/stdout13 2> log/52/stderr13 13: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 13 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind13 ../src/curl -q --output log/52/curl13.out --include --trace-ascii log/52/trace13 --trace-config all --trace-time http://127.0.0.1:40089/want/13 -X DELETE > log/52/stdout13 2> log/52/stderr13 === End of file commands.log === Start of file http_server.log 09:40:30.567252 Running HTTP IPv4 version on port 40089 09:40:30.568120 Wrote pid 73758 to log/52/server/http_server.pid 09:40:30.568544 Wrote port 40089 to log/52/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 13 === End of file server.cmd === Start of file valgrind13 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind13 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/60/server/http_server.pid" --logfile "log/60/http_server.log" --logdir "log/60" --portfile log/60/server/http_server.port --config log/60/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73750 port 38843 * pid http => 73750 73750 test 0005...[HTTP over proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind5 ../src/curl -q --output log/60/curl5.out --include --trace-ascii log/60/trace5 --trace-config all --trace-time http://127.0.0.1:38843/we/want/that/page/5#5 -x 127.0.0.1:38843 > log/60/stdout5 2> log/60/stderr5 5: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 5 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind29 ../src/curl -q --output log/36/curl29.out --include --trace-ascii log/36/trace29 --trace-config all --trace-time http://127.0.0.1:46395/want/29 -m 2 > log/36/stdout29 2> log/36/stderr29 s --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind5 ../src/curl -q --output log/60/curl5.out --include --trace-ascii log/60/trace5 --trace-config all --trace-time http://127.0.0.1:38843/we/want/that/page/5#5 -x 127.0.0.1:38843 > log/60/stdout5 2> log/60/stderr5 === End of file commands.log === Start of file http_server.log 09:40:30.374665 Running HTTP IPv4 version on port 38843 09:40:30.375389 Wrote pid 73750 to log/60/server/http_server.pid 09:40:30.375838 Wrote port 38843 to log/60/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 5 === End of file server.cmd === Start of file valgrind5 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind5 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind38 ../src/curl -q --include --trace-ascii log/27/trace38 --trace-config all --trace-time http://127.0.0.1:42323/want/38 -C - --no-include -o log/27/fewl38.txt > log/27/stdout38 2> log/27/stderr38 RUN: Process with pid 73774 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind27 ../src/curl -q --output log/38/curl27.out --include --trace-ascii log/38/trace27 --trace-config all --trace-time "http://127.0.0.1:33511/want/{27,27,27}" -b none > log/38/stdout27 2> log/38/stderr27 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind8 ../src/curl -q --output log/57/curl8.out --include --trace-ascii log/57/trace8 --trace-config all --trace-time http://127.0.0.1:35945/we/want/8 -b log/57/heads8.txt > log/57/stdout8 2> log/57/stderr8 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind23 ../src/curl -q --output log/42/curl23.out --include --trace-ascii log/42/trace23 --trace-config all --trace-time htfp://127.0.0.1:42819/none.htfml > log/42/stdout23 2> log/42/stderr23 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind40 ../src/curl -q --output log/25/curl40.out --include --trace-ascii log/25/trace40 --trace-config all --trace-time http://127.0.0.1:41727/we/are/all/twits/40 -L > log/25/stdout40 2> log/25/stderr40 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind25 ../src/curl -q --output log/40/curl25.out --include --trace-ascii log/40/trace25 --trace-config all --trace-time http://127.0.0.1:42139/want/25 -L --max-redirs 5 > log/40/stdout25 2> log/40/stderr25 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind30 ../src/curl -q --output log/35/curl30.out --include --trace-ascii log/35/trace30 --trace-config all --trace-time http://127.0.0.1:43179/want/30 > log/35/stdout30 2> log/35/stderr30 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind4 ../src/curl -q --output log/61/curl4.out --include --trace-ascii log/61/trace4 --trace-config all --trace-time -H "extra-header: here" -H "Accept: replaced" -H "X-Custom-Header;" -H "X-Test: foo; " -H "X-Test:" -H "X-Test2: foo;" -H "X-Test3: " -H "X-Test4; " -H "X-Test5;ignored" http://127.0.0.1:44381/4 http://127.0.0.1:44381/4 > log/61/stdout4 2> log/61/stderr4 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind55 ../src/curl -q --output log/10/curl55.out --include --trace-ascii log/10/trace55 --trace-config all --trace-time http://127.0.0.1:36913/55 -L > log/10/stdout55 2> log/10/stderr55 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind51 ../src/curl -q --output log/14/curl51.out --include --trace-ascii log/14/trace51 --trace-config all --trace-time http://127.0.0.1:43309/we/are/all/twits/51 -L > log/14/stdout51 2> log/14/stderr51 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/8/server/http_server.pid" --logfile "log/8/http_server.log" --logdir "log/8" --portfile log/8/server/http_server.port --config log/8/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73800 port 46129 * pid http => 73800 73800 test 0057...[HTTP content-type with spaces in] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind57 ../src/curl -q --include --trace-ascii log/8/trace57 --trace-config all --trace-time -w "%{content_type}\n" http://127.0.0.1:46129/57 -o log/8/out57 > log/8/stdout57 2> log/8/stderr57 57: stdout FAILED: --- log/8/check-expected 2025-07-18 09:40:32.631395215 +0000 +++ log/8/check-generated 2025-07-18 09:40:32.630612275 +0000 @@ -1 +0,0 @@ -text/html; charset=ISO-8859-4[CR][LF] == Contents of files in the log/8/ dir after test 57 === Start of file check-expected text/html; charset=ISO-8859-4[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind57 ../src/curl -q --include --trace-ascii log/8/trace57 --trace-config all --trace-time -w "%{content_type}\n" http://127.0.0.1:46129/57 -o log/8/out57 > log/8/stdout57 2> log/8/stderr57 === End of file commands.log === Start of file http_server.log 09:40:30.699360 Running HTTP IPv4 version on port 46129 09:40:30.700265 Wrote pid 73800 to log/8/server/http_server.pid 09:40:30.700774 Wrote port 46129 to log/8/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 57 === End of file server.cmd === Start of file valgrind57 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind57 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/11/server/http_server.pid" --logfile "log/11/http_server.log" --logdir "log/11" --portfile log/11/server/http_server.port --config log/11/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73809 port 41387 * pid http => 73809 73809 test 0054...[HTTP with blank Location:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind54 ../src/curl -q --output log/11/curl54.out --include --trace-ascii log/11/trace54 --trace-config all --trace-time http://127.0.0.1:41387/want/54 -L > log/11/stdout54 2> log/11/stderr54 54: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 54 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind54 ../src/curl -q --output log/11/curl54.out --include --trace-ascii log/11/trace54 --trace-config all --trace-time http://127.0.0.1:41387/want/54 -L > log/11/stdout54 2> log/11/stderr54 === End of file commands.log === Start of file http_server.log 09:40:30.845340 Running HTTP IPv4 version on port 41387 09:40:30.846168 Wrote pid 73809 to log/11/server/http_server.pid 09:40:30.846591 Wrote port 41387 to log/11/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 54 === End of file server.cmd === Start of file valgrind54 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind54 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/12/server/http_server.pid" --logfile "log/12/http_server.log" --logdir "log/12" --portfile log/12/server/http_server.port --config log/12/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73799 port 45579 * pid http => 73799 73799 test 0053...[HTTP, junk session cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind53 ../src/curl -q --output log/12/curl53.out --include --trace-ascii log/12/trace53 --trace-config all --trace-time 127.0.0.1:45579/want/53 -b log/12/injar53 -j > log/12/stdout53 2> log/12/stderr53 53: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 53 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind53 ../src/curl -q --output log/12/curl53.out --include --trace-ascii log/12/trace53 --trace-config all --trace-time 127.0.0.1:45579/want/53 -b log/12/injar53 -j > log/12/stdout53 2> log/12/stderr53 === End of file commands.log === Start of file http_server.log 09:40:30.664621 Running HTTP IPv4 version on port 45579 09:40:30.665320 Wrote pid 73799 to log/12/server/http_server.pid 09:40:30.665755RUN: Process with pid 73774 gracefully died Wrote port 45579 to log/12/server/http_server.port === End of file http_server.log === Start of file injar53 127.0.0.1 FALSE / FALSE 22139150993 mooo indeed 127.0.0.1 FALSE / FALSE 0 moo1 indeed 127.0.0.1 FALSE / FALSE 1 moo2 indeed === End of file injar53 === Start of file server.cmd Testnum 53 === End of file server.cmd === Start of file valgrind53 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind53 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/22/server/http_server.pid" --logfile "log/22/http_server.log" --logdir "log/22" --portfile log/22/server/http_server.port --config log/22/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73785 port 40073 * pid http => 73785 73785 test 0043...[HTTP Location: following over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind43 ../src/curl -q --output log/22/curl43.out --include --trace-ascii log/22/trace43 --trace-config all --trace-time http://127.0.0.1:40073/want/43 -L -x 127.0.0.1:40073 > log/22/stdout43 2> log/22/stderr43 43: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 43 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind43 ../src/curl -q --output log/22/curl43.out --include --trace-ascii log/22/trace43 --trace-config all --trace-time http://127.0.0.1:40073/want/43 -L -x 127.0.0.1:40073 > log/22/stdout43 2> log/22/stderr43 === End of file commands.log === Start of file http_server.log 09:40:30.648902 Running HTTP IPv4 version on port 40073 09:40:30.652994 Wrote pid 73785 to log/22/server/http_server.pid 09:40:30.653321 Wrote port 40073 to log/22/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 43 === End of file server.cmd === Start of file valgrind43 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind43 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/23/server/http_server.pid" --logfile "log/23/http_server.log" --logdir "log/23" --portfile log/23/server/http_server.port --config log/23/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73788 port 42467 * pid http => 73788 73788 test 0042...[HTTP redirect with whitespace in path (and conversion)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind42 ../src/curl -q --output log/23/curl42.out --include --trace-ascii log/23/trace42 --trace-config all --trace-time http://127.0.0.1:42467/we/are/all/twits/42 -L > log/23/stdout42 2> log/23/stderr42 42: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 42 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind42 ../src/curl -q --output log/23/curl42.out --include --trace-ascii log/23/trace42 --trace-config all --trace-time http://127.0.0.1:42467/we/are/all/twits/42 -L > log/23/stdout42 2> log/23/stderr42 === End of file commands.log === Start of file http_server.log 09:40:30.825564 Running HTTP IPv4 version on port 42467 09:40:30.826339 Wrote pid 73788 to log/23/server/http_server.pid 09:40:30.826806 Wrote port 42467 to log/23/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 42 === End of file server.cmd === Start of file valgrind42 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind64 ../src/curl -q --output log/1/curl64.out --include --trace-ascii log/1/trace64 --trace-config all --trace-time http://127.0.0.1:40633/64 -u testuser:testpass --digest > log/1/stdout64 2> log/1/stderr64 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind56 ../src/curl -q --output log/9/curl56.out --include --trace-ascii log/9/trace56 --trace-config all --trace-time -K - 127.0.0.1:46607/that.site.com/56 log/9/stdout56 2> log/9/stderr56 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind28 ../src/curl -q --output log/37/curl28.out --include --trace-ascii log/37/trace28 --trace-config all --trace-time http://127.0.0.1:37551/want/28 -L > log/37/stdout28 2> log/37/stderr28 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind60 ../src/curl -q --output log/5/curl60.out --include --trace-ascii log/5/trace60 --trace-config all --trace-time http://127.0.0.1:33413/bzz/60 -T - -H "Content-Length: 1" log/5/stdout60 2> log/5/stderr60 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind47 ../src/curl -q --output log/18/curl47.out --include --trace-ascii log/18/trace47 --trace-config all --trace-time http://127.0.0.1:41285/47 -0 > log/18/stdout47 2> log/18/stderr47 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind45 ../src/curl -q --output log/20/curl45.out --include --trace-ascii log/20/trace45 --trace-config all --trace-time 127.0.0.1:45475/want/45 -L > log/20/stdout45 2> log/20/stderr45 ind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind42 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/24/server/http_server.pid" --logfile "log/24/http_server.log" --logdir "log/24" --portfile log/24/server/http_server.port --config log/24/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73787 port 39259 * pid http => 73787 73787 test 0041...[HTTP formpost with missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind41 ../src/curl -q --output log/24/curl41.out --include --trace-ascii log/24/trace41 --trace-config all --trace-time http://127.0.0.1:39259/want/41 -F moo=@boo > log/24/stdout41 2> log/24/stderr41 curl returned 1, when expecting 26 41: exit FAILED == Contents of files in the log/24/ dir after test 41 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind41 ../src/curl -q --output log/24/curl41.out --include --trace-ascii log/24/trace41 --trace-config all --trace-time http://127.0.0.1:39259/want/41 -F moo=@boo > log/24/stdout41 2> log/24/stderr41 === End of file commands.log === Start of file http_server.log 09:40:30.772155 Running HTTP IPv4 version on port 39259 09:40:30.773058 Wrote pid 73787 to log/24/server/http_server.pid 09:40:30.773360 Wrote port 39259 to log/24/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 41 === End of file server.cmd === Start of file valgrind41 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind41 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/28/server/http_server.pid" --logfile "log/28/http_server.log" --logdir "log/28" --portfile log/28/server/http_server.port --config log/28/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73781 port 37545 * pid http => 73781 73781 test 0037...[HTTP GET with nothing returned from server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind37 ../src/curl -q --output log/28/curl37.out --include --trace-ascii log/28/trace37 --trace-config all --trace-time http://127.0.0.1:37545/37 > log/28/stdout37 2> log/28/stderr37 37: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 37 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind37 ../src/curl -q --output log/28/curl37.out --include --trace-ascii log/28/trace37 --trace-config all --trace-time http://127.0.0.1:37545/37 > log/28/stdout37 2> log/28/stderr37 === End of file commands.log === Start of file http_server.log 09:40:30.887609 Running HTTP IPv4 version on port 37545 09:40:30.888383 Wrote pid 73781 to log/28/server/http_server.pid 09:40:30.888857 Wrote port 37545 to log/28/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 37 === End of file server.cmd === Start of file valgrind37 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind37 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/30/server/http_server.pid" --logfile "log/30/http_server.log" --logdir "log/30" --portfile log/30/server/http_server.port --config log/30/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73779 port 43913 * pid http => 73779 73779 test 0035...[HTTP POST binary data with embedded NUL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind35 ../src/curl -q --output log/30/curl35.out --include --trace-ascii log/30/trace35 --trace-config all --trace-time http://127.0.0.1:43913/we/want/35 --data-binary @log/30/test35.txt > log/30/stdout35 2> log/30/stderr35 35: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 35 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind35 ../src/curl -q --output log/30/curl35.out --include --trace-ascii log/30/trace35 --trace-config all --trace-time http://127.0.0.1:43913/we/want/35 --data-binary @log/30/test35.txt > log/30/stdout35 2> log/30/stderr35 === End of file commands.log === Start of file http_server.log 09:40:30.829507 Running HTTP IPv4 version on port 43913 09:40:30.830266 Wrote pid 73779 to log/30/server/http_server.pid 09:40:30.830732 Wrote port 43913 to log/30/server/http_server.port === End of file http_sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind32 ../src/curl -q --output log/33/curl32.out --include --trace-ascii log/33/trace32 --trace-config all --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36559/32 -G > log/33/stdout32 2> log/33/stderr32 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind61 ../src/curl -q --output log/4/curl61.out --include --trace-ascii log/4/trace61 --trace-config all --trace-time http://127.0.0.1:43013/we/want/61 -c log/4/jar61.txt -H "Host: www.host.foo.com" > log/4/stdout61 2> log/4/stderr61 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind63 ../src/curl -q --output log/2/curl63.out --include --trace-ascii log/2/trace63 --trace-config all --trace-time http://we.want.that.site.com/63 > log/2/stdout63 2> log/2/stderr63 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind22 ../src/curl -q --output log/43/curl22.out --include --trace-ascii log/43/trace22 --trace-config all --trace-time 127.0.0.1:41267/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/22 > log/43/stdout22 2> log/43/stderr22 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind36 ../src/curl -q --output log/29/curl36.out --include --trace-ascii log/29/trace36 --trace-config all --trace-time http://127.0.0.1:36877/36 > log/29/stdout36 2> log/29/stderr36 erver.log === Start of file server.cmd Testnum 35 === End of file server.cmd === Start of file test35.txt This is binary data with an embedded NUL byte === End of file test35.txt === Start of file valgrind35 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind35 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/32/server/http_server.pid" --logfile "log/32/http_server.log" --logdir "log/32" --portfile log/32/server/http_server.port --config log/32/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73778 port 45607 * pid http => 73778 73778 test 0033...[HTTP PUT with resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind33 ../src/curl -q --output log/32/curl33.out --include --trace-ascii log/32/trace33 --trace-config all --trace-time http://127.0.0.1:45607/33 -Tlog/32/test33.txt -C 50 > log/32/stdout33 2> log/32/stderr33 33: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 33 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind33 ../src/curl -q --output log/32/curl33.out --include --trace-ascii log/32/trace33 --trace-config all --trace-time http://127.0.0.1:45607/33 -Tlog/32/test33.txt -C 50 > log/32/stdout33 2> log/32/stderr33 === End of file commands.log === Start of file http_server.log 09:40:30.701855 Running HTTP IPv4 version on port 45607 09:40:30.704897 Wrote pid 73778 to log/32/server/http_server.pid 09:40:30.705409 Wrote port 45607 to log/32/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 33 === End of file server.cmd === Start of file test33.txt 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file test33.txt === Start of file valgrind33 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind33 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/41/server/http_server.pid" --logfile "log/41/http_server.log" --logdir "log/41" --portfile log/41/server/http_server.port --config log/41/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73770 port 35093 * pid http => 73770 73770 test 0024...[HTTP GET fail silently on HTTP error return] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind24 ../src/curl -q --output log/41/curl24.out --include --trace-ascii log/41/trace24 --trace-config all --trace-time http://127.0.0.1:35093/24 --fail --silent --show-error > log/41/stdout24 2> log/41/stderr24 24: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 24 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind24 ../src/curl -q --output log/41/curl24.out --include --trace-ascii log/41/trace24 --trace-config all --trace-time http://127.0.0.1:35093/24 --fail --silent --show-error > log/41/stdout24 2> log/41/stderr24 === End of file commands.log === Start of file http_server.log 09:40:30.678261 Running HTTP IPv4 version on port 35093 09:40:30.679350 Wrote pid 73770 to log/41/server/http_server.pid 09:40:30.679839 Wrote port 35093 to log/41/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 24 === End of file server.cmd === Start of file valgrind24 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind49 ../src/curl -q --output log/16/curl49.out --include --trace-ascii log/16/trace49 --trace-config all --trace-time http://127.0.0.1:34829/we/are/all/twits/49 -L > log/16/stdout49 2> log/16/stderr49 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind50 ../src/curl -q --output log/15/curl50.out --include --trace-ascii log/15/trace50 --trace-config all --trace-time http://127.0.0.1:35435/we/are/all/twits/50 -L > log/15/stdout50 2> log/15/stderr50 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind31 ../src/curl -q --output log/34/curl31.out --include --trace-ascii log/34/trace31 --trace-config all --trace-time http://test31.curl:33117/we/want/31 -b none -c log/34/jar31.txt --resolve test31.curl:33117:127.0.0.1 > log/34/stdout31 2> log/34/stderr31 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind62 ../src/curl -q --output log/3/curl62.out --include --trace-ascii log/3/trace62 --trace-config all --trace-time http://127.0.0.1:42107/we/want/62 http://127.0.0.1:42107/we/want/62?hoge=fuga -b log/3/jar62.txt -H "Host: www.host.foo.com" > log/3/stdout62 2> log/3/stderr62 grind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind24 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/44/server/http_server.pid" --logfile "log/44/http_server.log" --logdir "log/44" --portfile log/44/server/http_server.port --config log/44/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73766 port 34655 * pid http => 73766 73766 test 0021...[use curl with multiple request methods] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind21 ../src/curl -q --output log/44/curl21.out --include --trace-ascii log/44/trace21 --trace-config all --trace-time -I -d FOOO -F moo=moo localhost > log/44/stdout21 2> log/44/stderr21 curl returned 1, when expecting 2 21: exit FAILED == Contents of files in the log/44/ dir after test 21 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind21 ../src/curl -q --output log/44/curl21.out --include --trace-ascii log/44/trace21 --trace-config all --trace-time -I -d FOOO -F moo=moo localhost > log/44/stdout21 2> log/44/stderr21 === End of file commands.log === Start of file http_server.log 09:40:30.822047 Running HTTP IPv4 version on port 34655 09:40:30.822942 Wrote pid 73766 to log/44/server/http_server.pid 09:40:30.823271 Wrote port 34655 to log/44/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 21 === End of file server.cmd === Start of file valgrind21 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind21 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/49/server/http_server.pid" --logfile "log/49/http_server.log" --logdir "log/49" --portfile log/49/server/http_server.port --config log/49/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73760 port 42667 * pid http => 73760 73760 test 0016...[HTTP with proxy authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind16 ../src/curl -q --output log/49/curl16.out --include --trace-ascii log/49/trace16 --trace-config all --trace-time -U fake@user:loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x 127.0.0.1:42667 http://we.want.that.site.com/16 > log/49/stdout16 2> log/49/stderr16 16: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 16 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind16 ../src/curl -q --output log/49/curl16.out --include --trace-ascii log/49/trace16 --trace-config all --trace-time -U fake@user:loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x 127.0.0.1:42667 http://we.want.that.site.com/16 > log/49/stdout16 2> log/49/stderr16 === End of file commands.log === Start of file http_server.log 09:40:30.502639 Running HTTP IPv4 version on port 42667 09:40:30.503346 Wrote pid 73760 to log/49/server/http_server.pid 09:40:30.510873 Wrote port 42667 to log/49/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 16 === End of file server.cmd === Start of file valgrind16 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind16 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/56/server/http_server.pid" --logfile "log/56/http_server.log" --logdir "log/56" --portfile log/56/server/http_server.port --config log/56/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73754 port 43265 * pid http => 73754 73754 test 0009...[HTTP RFC1867-type formposting] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind9 ../src/curl -q --output log/56/curl9.out --include --trace-ascii log/56/trace9 --trace-config all --trace-time http://127.0.0.1:43265/we/want/9 -F name=daniel -F tool=curl -F file=@log/56/test9.txt > log/56/stdout9 2> log/56/stderr9 9: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 9 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind9 ../src/curl -q --output log/56/curl9.out --include --trace-ascii log/56/trace9 --trace-config alCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind48 ../src/curl -q --output log/17/curl48.out --include --trace-ascii log/17/trace48 --trace-config all --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:44383/48 -G -I http://127.0.0.1:44383/48 > log/17/stdout48 2> log/17/stderr48 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind34 ../src/curl -q --output log/31/curl34.out --include --trace-ascii log/31/trace34 --trace-config all --trace-time http://127.0.0.1:45557/34 > log/31/stdout34 2> log/31/stderr34 l --trace-time http://127.0.0.1:43265/we/want/9 -F name=daniel -F tool=curl -F file=@log/56/test9.txt > log/56/stdout9 2> log/56/stderr9 === End of file commands.log === Start of file http_server.log 09:40:30.618825 Running HTTP IPv4 version on port 43265 09:40:30.619691 Wrote pid 73754 to log/56/server/http_server.pid 09:40:30.620192 Wrote port 43265 to log/56/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 9 === End of file server.cmd === Start of file test9.txt foo- This is a moo- bar === End of file test9.txt === Start of file valgrind9 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind9 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/63/server/http_server.pid" --logfile "log/63/http_server.log" --logdir "log/63" --portfile log/63/server/http_server.port --config log/63/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73747 port 38797 * pid http => 73747 73747 test 0002...[HTTP GET with user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind2 ../src/curl -q --output log/63/curl2.out --include --trace-ascii log/63/trace2 --trace-config all --trace-time -u fake:user http://127.0.0.1:38797/2 > log/63/stdout2 2> log/63/stderr2 2: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 2 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind2 ../src/curl -q --output log/63/curl2.out --include --trace-ascii log/63/trace2 --trace-config all --trace-time -u fake:user http://127.0.0.1:38797/2 > log/63/stdout2 2> log/63/stderr2 === End of file commands.log === Start of file http_server.log 09:40:30.658989 Running HTTP IPv4 version on port 38797 09:40:30.659926 Wrote pid 73747 to log/63/server/http_server.pid 09:40:30.660295 Wrote port 38797 to log/63/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 2 === End of file server.cmd === Start of file valgrind2 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/64/server/http_server.pid" --logfile "log/64/http_server.log" --logdir "log/64" --portfile log/64/server/http_server.port --config log/64/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73748 port 33073 * pid http => 73748 73748 test 0001...[HTTP GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1 ../src/curl -q --output log/64/curl1.out --include --trace-ascii log/64/trace1 --trace-config all --trace-time http://127.0.0.1:33073/1 > log/64/stdout1 2> log/64/stderr1 1: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1 ../src/curl -q --output log/64/curl1.out --include --trace-ascii log/64/trace1 --trace-config all --trace-time http://127.0.0.1:33073/1 > log/64/stdout1 2> log/64/stderr1 === End of file commands.log === Start of file http_server.log 09:40:30.435821 Running HTTP IPv4 version on port 33073 09:40:30.436672 Wrote pid 73748 to log/64/server/http_server.pid 09:40:30.437019 Wrote port 33073 to log/64/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 1 === End of file server.cmd === Start of file valgrind1 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will neeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind52 ../src/curl -q --output log/13/curl52.out --include --trace-ascii log/13/trace52 --trace-config all --trace-time http://127.0.0.1:44087/we/are/all/twits/52 -L > log/13/stdout52 2> log/13/stderr52 d a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/1/server/http_server.pid" --logfile "log/1/http_server.log" --logdir "log/1" --portfile log/1/server/http_server.port --config log/1/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73806 port 40633 * pid http => 73806 73806 test 0064...[HTTP with Digest authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind64 ../src/curl -q --output log/1/curl64.out --include --trace-ascii log/1/trace64 --trace-config all --trace-time http://127.0.0.1:40633/64 -u testuser:testpass --digest > log/1/stdout64 2> log/1/stderr64 64: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 64 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind64 ../src/curl -q --output log/1/curl64.out --include --trace-ascii log/1/trace64 --trace-config all --trace-time http://127.0.0.1:40633/64 -u testuser:testpass --digest > log/1/stdout64 2> log/1/stderr64 === End of file commands.log === Start of file http_server.log 09:40:30.796022 Running HTTP IPv4 version on port 40633 09:40:30.796809 Wrote pid 73806 to log/1/server/http_server.pid 09:40:30.797119 Wrote port 40633 to log/1/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 64 === End of file server.cmd === Start of file valgrind64 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind64 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/2/server/http_server.pid" --logfile "log/2/http_server.log" --logdir "log/2" --portfile log/2/server/http_server.port --config log/2/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73807 port 39659 * pid http => 73807 73807 setenv http_proxy = http://fake:user@127.0.0.1:39659/ test 0063...[HTTP with proxy authorization set in environment] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind63 ../src/curl -q --output log/2/curl63.out --include --trace-ascii log/2/trace63 --trace-config all --trace-time http://we.want.that.site.com/63 > log/2/stdout63 2> log/2/stderr63 63: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 63 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind63 ../src/curl -q --output log/2/curl63.out --include --trace-ascii log/2/trace63 --trace-config all --trace-time http://we.want.that.site.com/63 > log/2/stdout63 2> log/2/stderr63 === End of file commands.log === Start of file http_server.log 09:40:30.763925 Running HTTP IPv4 version on port 39659 09:40:30.764722 Wrote pid 73807 to log/2/server/http_server.pid 09:40:30.765054 Wrote port 39659 to log/2/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 63 === End of file server.cmd === Start of file valgrind63 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind63 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/3/server/http_server.pid" --logfile "log/3/http_server.log" --logdir "log/3" --portfile log/3/server/http_server.port --config log/3/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73802 port 42107 * pid http => 73802 73802 test 0062...[HTTP, send cookies when using custom Host:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind62 ../src/curl -q --output log/3/curl62.out --include --trace-ascii log/3/trace62 --trace-config all --trace-time http://127.0.0.1:42107/we/want/62 http://127.0.0.1:42107/we/want/62?hoge=fuga -b log/3/jar62.txt -H "Host: www.host.foo.com" > log/3/stdout62 2> log/3/stderr62 62: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 62 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind62 ../src/curl -q --output log/3/curl62.out --include --trace-ascii log/3/trace62 --trace-config all --trace-time http://127.0.0.1:42107/we/want/62 http://127.0.0.1:42107/we/want/62?hoge=fuga -b log/3/jar62.txt -H "Host: www.hCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind46 ../src/curl -q --output log/19/curl46.out --include --trace-ascii log/19/trace46 --trace-config all --trace-time domain..tld:35697/want/46 --resolve domain..tld:35697:127.0.0.1 -c log/19/jar46 -b log/19/injar46 > log/19/stdout46 2> log/19/stderr46 ost.foo.com" > log/3/stdout62 2> log/3/stderr62 === End of file commands.log === Start of file http_server.log 09:40:30.836688 Running HTTP IPv4 version on port 42107 09:40:30.837633 Wrote pid 73802 to log/3/server/http_server.pid 09:40:30.837976 Wrote port 42107 to log/3/server/http_server.port === End of file http_server.log === Start of file jar62.txt # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. #HttpOnly_.foo.com TRUE /we/want/ FALSE 22147483647 test yes .host.foo.com TRUE /we/want/ FALSE 22147483647 test2 yes .fake.host.foo.com TRUE /we/want/ FALSE 22147483647 test4 yes .foo.com TRUE /moo TRUE 0 test3 maybe === End of file jar62.txt === Start of file server.cmd Testnum 62 === End of file server.cmd === Start of file valgrind62 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind62 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/4/server/http_server.pid" --logfile "log/4/http_server.log" --logdir "log/4" --portfile log/4/server/http_server.port --config log/4/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73808 port 43013 * pid http => 73808 73808 setenv TZ = GMT test 0061...[HTTP with various cookies and custom Host:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind61 ../src/curl -q --output log/4/curl61.out --include --trace-ascii log/4/trace61 --trace-config all --trace-time http://127.0.0.1:43013/we/want/61 -c log/4/jar61.txt -H "Host: www.host.foo.com" > log/4/stdout61 2> log/4/stderr61 61: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 61 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind61 ../src/curl -q --output log/4/curl61.out --include --trace-ascii log/4/trace61 --trace-config all --trace-time http://127.0.0.1:43013/we/want/61 -c log/4/jar61.txt -H "Host: www.host.foo.com" > log/4/stdout61 2> log/4/stderr61 === End of file commands.log === Start of file http_server.log 09:40:30.772908 Running HTTP IPv4 version on port 43013 09:40:30.773859 Wrote pid 73808 to log/4/server/http_server.pid 09:40:30.774242 Wrote port 43013 to log/4/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 61 === End of file server.cmd === Start of file valgrind61 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind61 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/5/server/http_server.pid" --logfile "log/5/http_server.log" --logdir "log/5" --portfile log/5/server/http_server.port --config log/5/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73798 port 33413 * pid http => 73798 73798 test 0060...[HTTP PUT from stdin with wrong content-length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind60 ../src/curl -q --output log/5/curl60.out --include --trace-ascii log/5/trace60 --trace-config all --trace-time http://127.0.0.1:33413/bzz/60 -T - -H "Content-Length: 1" log/5/stdout60 2> log/5/stderr60 60: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 60 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind60 ../src/curl -q --output log/5/curl60.out --include --trace-ascii log/5/trace60 --trace-config all --trace-time http://127.0.0.1:33413/bzz/60 -T - -H "Content-Length: 1" log/5/stdout60 2> log/5/stderr60 === End of file commands.log === Start of file http_server.log 09:40:30.854180 Running HTTP IPv4 version on port 33413 09:40:30.855024 Wrote pid 73798 to log/5/server/http_server.pid 09:40:30.855345 Wrote port 33413 to log/5/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 60 === End of file server.cmd === Start of file stdin-for-60 more than one byte === End of file stdin-for-60 === Start of file valgrind60 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your LCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind39 ../src/curl -q --output log/26/curl39.out --include --trace-ascii log/26/trace39 --trace-config all --trace-time http://127.0.0.1:46481/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/26/stdout39 2> log/26/stderr39 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind44 ../src/curl -q --output log/21/curl44.out --include --trace-ascii log/21/trace44 --trace-config all --trace-time http://127.0.0.1:34827/we/want/44 -F name=daniel -F tool=curl -F file=@log/21/test44.txt -H "Expect:" > log/21/stdout44 2> log/21/stderr44 inux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind60 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/9/server/http_server.pid" --logfile "log/9/http_server.log" --logdir "log/9" --portfile log/9/server/http_server.port --config log/9/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73797 port 46607 * pid http => 73797 73797 test 0056...[HTTP POST with *HUGE* request and chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind56 ../src/curl -q --output log/9/curl56.out --include --trace-ascii log/9/trace56 --trace-config all --trace-time -K - 127.0.0.1:46607/that.site.com/56 log/9/stdout56 2> log/9/stderr56 56: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 56 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind56 ../src/curl -q --output log/9/curl56.out --include --trace-ascii log/9/trace56 --trace-config all --trace-time -K - 127.0.0.1:46607/that.site.com/56 log/9/stdout56 2> log/9/stderr56 === End of file commands.log === Start of file http_server.log 09:40:30.804109 Running HTTP IPv4 version on port 46607 09:40:30.804978 Wrote pid 73797 to log/9/server/http_server.pid 09:40:30.805575 Wrote port 46607 to log/9/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 56 === End of file server.cmd === Start of file stdin-for-56 # data "we post this" # # enforce chunky post header "Transfer-Encoding: chunked" # # Set the user-agent using a short-option: -A "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # === End of file stdin-for-56 === Start of file valgrind56 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind56 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/10/server/http_server.pid" --logfile "log/10/http_server.log" --logdir "log/10" --portfile log/10/server/http_server.port --config log/10/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73804 port 36913 * pid http => 73804 73804 test 0055...[HTTP follow redirect with single slash in path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind55 ../src/curl -q --output log/10/curl55.out --include --trace-ascii log/10/trace55 --trace-config all --trace-time http://127.0.0.1:36913/55 -L > log/10/stdout55 2> log/10/stderr55 55: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 55 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind55 ../src/curl -q --output log/10/curl55.out --include --trace-ascii log/10/trace55 --trace-config all --trace-time http://127.0.0.1:36913/55 -L > log/10/stdout55 2> log/10/stderr55 === End of file commands.log === Start of file http_server.log 09:40:30.711030 Running HTTP IPv4 version on port 36913 09:40:30.715942 Wrote pid 73804 to log/10/server/http_server.pid 09:40:30.716318 Wrote port 36913 to log/10/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 55 === End of file server.cmd === Start of file valgrind55 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind55 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/14/server/http_server.pid" --logfile "log/14/http_server.log" --logdir "log/14" --portfile log/14/server/http_server.port --config log/14/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73795 port 43309 * pid http => 73795 73795 test 0051...[HTTP follow redirect with excessive ../] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind51 ../src/curl -q --output log/14/curl51.out --include --trace-ascii log/14/trace51 --trace-config all --trace-time http://127.0.0.1:43309/we/are/all/twits/51 -L > log/14/stdout51 2> log/14/stderr51 51: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 51 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind51 ../src/curl -q --output log/14/curl51.out --include --trace-ascii log/14/trace51 --trace-config all --trace-time http://127.0.0.1:43309/we/are/all/twits/51 -L > log/14/stdout51 2> log/14/stderr51 === End of file commands.log === Start of file http_server.log 09:40:30.799102 Running HTTP IPv4 version on port 43309 09:40:30.799991 Wrote pid 73795 to log/14/server/http_server.pid 09:40:30.800341 Wrote port 43309 to log/14/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 51 === End of file server.cmd === Start of file valgrind51 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind51 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/15/server/http_server.pid" --logfile "log/15/http_server.log" --logdir "log/15" --portfile log/15/server/http_server.port --config log/15/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73793 port 35435 * pid http => 73793 73793 test 0050...[HTTP follow redirect with ../../] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind50 ../src/curl -q --output log/15/curl50.out --include --trace-ascii log/15/trace50 --trace-config all --trace-time http://127.0.0.1:35435/we/are/all/twits/50 -L > log/15/stdout50 2> log/15/stderr50 50: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 50 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind50 ../src/curl -q --output log/15/curl50.out --include --trace-ascii log/15/trace50 --trace-config all --trace-time http://127.0.0.1:35435/we/are/all/twits/50 -L > log/15/stdout50 2> log/15/stderr50 === End of file commands.log === Start of file http_server.log 09:40:30.735955 Running HTTP IPv4 version on port 35435 09:40:30.736738 Wrote pid 73793 to log/15/server/http_server.pid 09:40:30.737046 Wrote port 35435 to log/15/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 50 === End of file server.cmd === Start of file valgrind50 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind50 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/16/server/http_server.pid" --logfile "log/16/http_server.log" --logdir "log/16" --portfile log/16/server/http_server.port --config log/16/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73794 port 34829 * pid http => 73794 73794 test 0049...[HTTP follow redirect with ../] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind49 ../src/curl -q --output log/16/curl49.out --include --trace-ascii log/16/trace49 --trace-config all --trace-time http://127.0.0.1:34829/we/are/all/twits/49 -L > log/16/stdout49 2> log/16/stderr49 49: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 49 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind49 ../src/curl -q --output log/16/curl49.out --include --trace-ascii log/16/trace49 --trace-config all --trace-time http://127.0.0.1:34829/we/are/all/twits/49 -L > log/16/stdout49 2> log/16/stderr49 === End of file commands.log === Start of file http_server.log 09:40:30.779520 Running HTTP IPv4 version on port 34829 09:40:30.780289 Wrote pid 73794 to log/16/server/http_server.pid 09:40:30.780706 Wrote port 34829 to log/16/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 49 === End of file server.cmd === Start of file valgrind49 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind49 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/17/server/http_server.pid" --logfile "log/17/http_server.log" --logdir "log/17" --portfile log/17/server/http_server.port --config log/17/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73792 port 44383 * pid http => 73792 73792 test 0048...[HTTP with -d and -G and -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind48 ../src/curl -q --output log/17/curl48.out --include --trace-ascii log/17/trace48 --trace-config all --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:44383/48 -G -I http://127.0.0.1:44383/48 > log/17/stdout48 2> log/17/stderr48 48: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 48 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind48 ../src/curl -q --output log/17/curl48.out --include --trace-ascii log/17/trace48 --trace-config all --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:44383/48 -G -I http://127.0.0.1:44383/48 > log/17/stdout48 2> log/17/stderr48 === End of file commands.log === Start of file http_server.log 09:40:30.780599 Running HTTP IPv4 version on port 44383 09:40:30.781241 Wrote pid 73792 to log/17/server/http_server.pid 09:40:30.781627 Wrote port 44383 to log/17/server/http_server.port === End of file http_server.log === Start of file server.cmd connection-monitor Testnum 48 === End of file server.cmd === Start of file valgrind48 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind48 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/18/server/http_server.pid" --logfile "log/18/http_server.log" --logdir "log/18" --portfile log/18/server/http_server.port --config log/18/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73790 port 41285 * pid http => 73790 73790 test 0047...[simple HTTP 1.0 GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind47 ../src/curl -q --output log/18/curl47.out --include --trace-ascii log/18/trace47 --trace-config all --trace-time http://127.0.0.1:41285/47 -0 > log/18/stdout47 2> log/18/stderr47 47: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 47 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind47 ../src/curl -q --output log/18/curl47.out --include --trace-ascii log/18/trace47 --trace-config all --trace-time http://127.0.0.1:41285/47 -0 > log/18/stdout47 2> log/18/stderr47 === End of file commands.log === Start of file http_server.log 09:40:30.843893 Running HTTP IPv4 version on port 41285 09:40:30.844850 Wrote pid 73790 to log/18/server/http_server.pid 09:40:30.845170 Wrote port 41285 to log/18/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 47 === End of file server.cmd === Start of file valgrind47 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind47 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/20/server/http_server.pid" --logfile "log/20/http_server.log" --logdir "log/20" --portfile log/20/server/http_server.port --config log/20/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73786 port 45475 * pid http => 73786 73786 test 0045...[simple HTTP Location: without protocol in initial URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind45 ../src/curl -q --output log/20/curl45.out --include --trace-ascii log/20/trace45 --trace-config all --trace-time 127.0.0.1:45475/want/45 -L > log/20/stdout45 2> log/20/stderr45 45: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 45 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind45 ../src/curl -q --output log/20/curl45.out --include --trace-ascii log/20/trace45 --trace-config all --trace-time 127.0.0.1:45475/want/45 -L > log/20/stdout45 2> log/20/stderr45 === End of file commands.log === Start of file http_server.log 09:40:30.684722 Running HTTP IPv4 version on port 45475 09:40:30.685657 Wrote pid 73786 to log/20/server/http_server.pid 09:40:30.686027 Wrote port 45475 to log/20/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 45 === End of file server.cmd === Start of file valgrind45 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind45 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/25/server/http_server.pid" --logfile "log/25/http_server.log" --logdir "log/25" --portfile log/25/server/http_server.port --config log/25/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73784 port 41727 * pid http => 73784 73784 test 0040...[HTTP redirect with whitespace after ? (and conversion)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind40 ../src/curl -q --output log/25/curl40.out --include --trace-ascii log/25/trace40 --trace-config all --trace-time http://127.0.0.1:41727/we/are/all/twits/40 -L > log/25/stdout40 2> log/25/stderr40 40: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 40 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind40 ../src/curl -q --output log/25/curl40.out --include --trace-ascii log/25/trace40 --trace-config all --trace-time http://127.0.0.1:41727/we/are/all/twits/40 -L > log/25/stdout40 2> log/25/stderr40 === End of file commands.log === Start of file http_server.log 09:40:30.746987 Running HTTP IPv4 version on port 41727 09:40:30.747830 Wrote pid 73784 to log/25/server/http_server.pid 09:40:30.748179 Wrote port 41727 to log/25/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 40 === End of file server.cmd === Start of file valgrind40 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind40 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/27/server/http_server.pid" --logfile "log/27/http_server.log" --logdir "log/27" --portfile log/27/server/http_server.port --config log/27/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73783 port 42323 * pid http => 73783 73783 test 0038...[HTTP resume request without server supporting it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind38 ../src/curl -q --include --trace-ascii log/27/trace38 --trace-config all --trace-time http://127.0.0.1:42323/want/38 -C - --no-include -o log/27/fewl38.txt > log/27/stdout38 2> log/27/stderr38 38: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 38 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind38 ../src/curl -q --include --trace-ascii log/27/trace38 --trace-config all --trace-time http://127.0.0.1:42323/want/38 -C - --no-include -o log/27/fewl38.txt > log/27/stdout38 2> log/27/stderr38 === End of file commands.log === Start of file fewl38.txt This text is here to simulate a partly downloaded file to resume download on. === End of file fewl38.txt === Start of file http_server.log 09:40:30.730046 Running HTTP IPv4 version on port 42323 09:40:30.732033 Wrote pid 73783 to log/27/server/http_server.pid 09:40:30.732393 Wrote port 42323 to log/27/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 38 === End of file server.cmd === Start of file valgrind38 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind38 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/29/server/http_server.pid" --logfile "log/29/http_server.log" --logdir "log/29" --portfile log/29/server/http_server.port --config log/29/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73782 port 36877 * pid http => 73782 73782 test 0036...[HTTP GET with bad chunked Transfer-Encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind36 ../src/curl -q --output log/29/curl36.out --include --trace-ascii log/29/trace36 --trace-config all --trace-time http://127.0.0.1:36877/36 > log/29/stdout36 2> log/29/stderr36 36: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 36 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind36 ../src/curl -q --output log/29/curl36.out --include --trace-ascii log/29/trace36 --trace-config all --trace-time http://127.0.0.1:36877/36 > log/29/stdout36 2> log/29/stderr36 === End of file commands.log === Start of file http_server.log 09:40:30.726826 Running HTTP IPv4 version on port 36877 09:40:30.727633 Wrote pid 73782 to log/29/server/http_server.pid 09:40:30.727967 Wrote port 36877 to log/29/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 36 === End of file server.cmd === Start of file valgrind36 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind36 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/31/server/http_server.pid" --logfile "log/31/http_server.log" --logdir "log/31" --portfile log/31/server/http_server.port --config log/31/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73776 port 45557 * pid http => 73776 73776 test 0034...[HTTP GET with chunked Transfer-Encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind34 ../src/curl -q --output log/31/curl34.out --include --trace-ascii log/31/trace34 --trace-config all --trace-time http://127.0.0.1:45557/34 > log/31/stdout34 2> log/31/stderr34 34: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 34 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind34 ../src/curl -q --output log/31/curl34.out --include --trace-ascii log/31/trace34 --trace-config all --trace-time http://127.0.0.1:45557/34 > log/31/stdout34 2> log/31/stderr34 === End of file commands.log === Start of file http_server.log 09:40:30.863358 Running HTTP IPv4 version on port 45557 09:40:30.864176 Wrote pid 73776 to log/31/server/http_server.pid 09:40:30.864631 Wrote port 45557 to log/31/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 34 === End of file server.cmd === Start of file valgrind34 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind34 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/33/server/http_server.pid" --logfile "log/33/http_server.log" --logdir "log/33" --portfile log/33/server/http_server.port --config log/33/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73773 port 36559 * pid http => 73773 73773 test 0032...[HTTP with -d and -G] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind32 ../src/curl -q --output log/33/curl32.out --include --trace-ascii log/33/trace32 --trace-config all --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36559/32 -G > log/33/stdout32 2> log/33/stderr32 32: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 32 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind32 ../src/curl -q --output log/33/curl32.out --include --trace-ascii log/33/trace32 --trace-config all --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36559/32 -G > log/33/stdout32 2> log/33/stderr32 === End of file commands.log === Start of file http_server.log 09:40:30.595038 Running HTTP IPv4 version on port 36559 09:40:30.595945 Wrote pid 73773 to log/33/server/http_server.pid 09:40:30.596316 Wrote port 36559 to log/33/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 32 === End of file server.cmd === Start of file valgrind32 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind32 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/34/server/http_server.pid" --logfile "log/34/http_server.log" --logdir "log/34" --portfile log/34/server/http_server.port --config log/34/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73777 port 33117 * pid http => 73777 73777 setenv TZ = GMT test 0031...[HTTP with weirdly formatted cookies and cookiejar storage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind31 ../src/curl -q --output log/34/curl31.out --include --trace-ascii log/34/trace31 --trace-config all --trace-time http://test31.curl:33117/we/want/31 -b none -c log/34/jar31.txt --resolve test31.curl:33117:127.0.0.1 > log/34/stdout31 2> log/34/stderr31 31: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 31 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind31 ../src/curl -q --output log/34/curl31.out --include --trace-ascii log/34/trace31 --trace-config all --trace-time http://test31.curl:33117/we/want/31 -b none -c log/34/jar31.txt --resolve test31.curl:33117:127.0.0.1 > log/34/stdout31 2> log/34/stderr31 === End of file commands.log === Start of file http_server.log 09:40:30.631030 Running HTTP IPv4 version on port 33117 09:40:30.634009 Wrote pid 73777 to log/34/server/http_server.pid 09:40:30.634371 Wrote port 33117 to log/34/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 31 === End of file server.cmd === Start of file valgrind31 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind31 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/35/server/http_server.pid" --logfile "log/35/http_server.log" --logdir "log/35" --portfile log/35/server/http_server.port --config log/35/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73771 port 43179 * pid http => 73771 73771 test 0030...[HTTP with no data in server reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind30 ../src/curl -q --output log/35/curl30.out --include --trace-ascii log/35/trace30 --trace-config all --trace-time http://127.0.0.1:43179/want/30 > log/35/stdout30 2> log/35/stderr30 30: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 30 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind30 ../src/curl -q --output log/35/curl30.out --include --trace-ascii log/35/trace30 --trace-config all --trace-time http://127.0.0.1:43179/want/30 > log/35/stdout30 2> log/35/stderr30 === End of file commands.log === Start of file http_server.log 09:40:30.742286 Running HTTP IPv4 version on port 43179 09:40:30.743206 Wrote pid 73771 to log/35/server/http_server.pid 09:40:30.743670 Wrote port 43179 to log/35/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 30 === End of file server.cmd === Start of file valgrind30 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind30 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/36/server/http_server.pid" --logfile "log/36/http_server.log" --logdir "log/36" --portfile log/36/server/http_server.port --config log/36/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73774 port 46395 * pid http => 73774 73774 test 0029...[HTTP with 2 secs timeout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind29 ../src/curl -q --output log/36/curl29.out --include --trace-ascii log/36/trace29 --trace-config all --trace-time http://127.0.0.1:46395/want/29 -m 2 > log/36/stdout29 2> log/36/stderr29 29: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 29 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind29 ../src/curl -q --output log/36/curl29.out --include --trace-ascii log/36/trace29 --trace-config all --trace-time http://127.0.0.1:46395/want/29 -m 2 > log/36/stdout29 2> log/36/stderr29 === End of file commands.log === Start of file http_server.log 09:40:30.661054 Running HTTP IPv4 version on port 46395 09:40:30.661896 Wrote pid 73774 to log/36/server/http_server.pid 09:40:30.662236 Wrote port 46395 to log/36/server/http_server.port exit_signal_handler: called 09:40:32.904698 signalled to die 09:40:32.905962 ========> IPv4 sws (port 46395 pid: 73774) exits with signal (15) 09:40:32.906129 ========> sws quits === End of file http_server.log === Start of file server.cmd Testnum 29 === End of file server.cmd === Start of file valgrind29 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind29 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/37/server/http_server.pid" --logfile "log/37/http_server.log" --logdir "log/37" --portfile log/37/server/http_server.port --config log/37/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73772 port 37551 * pid http => 73772 73772 test 0028...[HTTP Location: following with extra spaces in header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind28 ../src/curl -q --output log/37/curl28.out --include --trace-ascii log/37/trace28 --trace-config all --trace-time http://127.0.0.1:37551/want/28 -L > log/37/stdout28 2> log/37/stderr28 28: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 28 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind28 ../src/curl -q --output log/37/curl28.out --include --trace-ascii log/37/trace28 --trace-config all --trace-time http://127.0.0.1:37551/want/28 -L > log/37/stdout28 2> log/37/stderr28 === End of file commands.log === Start of file http_server.log 09:40:30.584151 Running HTTP IPv4 version on port 37551 09:40:30.585065 Wrote pid 73772 to log/37/server/http_server.pid 09:40:30.585375 Wrote port 37551 to log/37/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 28 === End of file server.cmd === Start of file valgrind28 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind28 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/38/server/http_server.pid" --logfile "log/38/http_server.log" --logdir "log/38" --portfile log/38/server/http_server.port --config log/38/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73775 port 33511 * pid http => 73775 73775 test 0027...[Get same cookie page several times] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind27 ../src/curl -q --output log/38/curl27.out --include --trace-ascii log/38/trace27 --trace-config all --trace-time "http://127.0.0.1:33511/want/{27,27,27}" -b none > log/38/stdout27 2> log/38/stderr27 27: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 27 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind27 ../src/curl -q --output log/38/curl27.out --include --trace-ascii log/38/trace27 --trace-config all --trace-time "http://127.0.0.1:33511/want/{27,27,27}" -b none > log/38/stdout27 2> log/38/stderr27 === End of file commands.log === Start of file http_server.log 09:40:30.589661 Running HTTP IPv4 version on port 33511 09:40:30.590343 Wrote pid 73775 to log/38/server/http_server.pid 09:40:30.590796 Wrote port 33511 to log/38/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 27 === End of file server.cmd === Start of file valgrind27 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind27 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/40/server/http_server.pid" --logfile "log/40/http_server.log" --logdir "log/40" --portfile log/40/server/http_server.port --config log/40/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73767 port 42139 * pid http => 73767 73767 test 0025...[looping HTTP Location: following with --max-redirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind25 ../src/curl -q --output log/40/curl25.out --include --trace-ascii log/40/trace25 --trace-config all --trace-time http://127.0.0.1:42139/want/25 -L --max-redirs 5 > log/40/stdout25 2> log/40/stderr25 25: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 25 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind25 ../src/curl -q --output log/40/curl25.out --include --trace-ascii log/40/trace25 --trace-config all --trace-time http://127.0.0.1:42139/want/25 -L --max-redirs 5 > log/40/stdout25 2> log/40/stderr25 === End of file commands.log === Start of file http_server.log 09:40:30.465136 Running HTTP IPv4 version on port 42139 09:40:30.468962 Wrote pid 73767 to log/40/server/http_server.pid 09:40:30.469296 Wrote port 42139 to log/40/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 25 === End of file server.cmd === Start of file valgrind25 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind25 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/42/server/http_server.pid" --logfile "log/42/http_server.log" --logdir "log/42" --portfile log/42/server/http_server.port --config log/42/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73768 port 42819 * pid http => 73768 73768 test 0023...[unsupported protocol:// URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind23 ../src/curl -q --output log/42/curl23.out --include --trace-ascii log/42/trace23 --trace-config all --trace-time htfp://127.0.0.1:42819/none.htfml > log/42/stdout23 2> log/42/stderr23 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/42/ dir after test 23 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind23 ../src/curl -q --output log/42/curl23.out --include --trace-ascii log/42/trace23 --trace-config all --trace-time htfp://127.0.0.1:42819/none.htfml > log/42/stdout23 2> log/42/stderr23 === End of file commands.log === Start of file http_server.log 09:40:30.691069 Running HTTP IPv4 version on port 42819 09:40:30.691929 Wrote pid 73768 to log/42/server/http_server.pid 09:40:30.692421 Wrote port 42819 to log/42/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 23 === End of file server.cmd === Start of file valgrind23 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind23 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/43/server/http_server.pid" --logfile "log/43/http_server.log" --logdir "log/43" --portfile log/43/server/http_server.port --config log/43/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73765 port 41267 * pid http => 73765 73765 test 0022...[get HTTP with URL > 10000 bytes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind22 ../src/curl -q --output log/43/curl22.out --include --trace-ascii log/43/trace22 --trace-config all --trace-time 127.0.0.1:41267/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/22 > log/43/stdout22 2> log/43/stderr22 22: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 22 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind22 ../src/curl -q --output log/43/curl22.out --include --trace-ascii log/43/trace22 --trace-config all --trace-time 127.0.0.1:41267/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/22 > log/43/stdout22 2> log/43/stderr22 === End of file commands.log === Start of file http_server.log 09:40:30.413418 Running HTTP IPv4 version on port 41267 09:40:30.414287 Wrote pid 73765 to log/43/server/http_server.pid 09:40:30.427861 Wrote port 41267 to log/43/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 22 === End of file server.cmd === Start of file valgrind22 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind22 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/57/server/http_server.pid" --logfile "log/57/http_server.log" --logdir "log/57" --portfile log/57/server/http_server.port --config log/57/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73753 port 35945 * pid http => 73753 73753 prechecked /usr/bin/perl -e 'if("127.0.0.1" !~ /\.0\.0\.1$/) {print "Test only works for HOSTIPs ending with .0.0.1"; exit(1)}' test 0008...[HTTP with cookie parsing from header file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind8 ../src/curl -q --output log/57/curl8.out --include --trace-ascii log/57/trace8 --trace-config all --trace-time http://127.0.0.1:35945/we/want/8 -b log/57/heads8.txt > log/57/stdout8 2> log/57/stderr8 8: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 8 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind8 ../src/curl -q --output log/57/curl8.out --include --trace-ascii log/57/trace8 --trace-config all --trace-time http://127.0.0.1:35945/we/want/8 -b log/57/heads8.txt > log/57/stdout8 2> log/57/stderr8 === End of file commands.log === Start of file heads8.txt HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Type: text/html Funny-head: yesyes Set-Cookie: foobar=name; domain=127.0.0.1; path=/; Set-Cookie: mismatch=this; domain=127.0.0.1; path="/silly/"; Set-Cookie: partmatch=present; domain=.0.0.1; path=/w; Set-Cookie: duplicate=test; domain=.0.0.1; domain=.0.0.1; path=/donkey; Set-Cookie: cookie=yes; path=/we; Set-Cookie: cookie=perhaps; path=/we/want; Set-Cookie: name with space=is weird but; path=/we/want; Set-Cookie: trailingspace = removed; path=/we/want; Set-Cookie: nocookie=yes; path=/WE; Set-Cookie: blexp=yesyes; domain=127.0.0.1; domain=127.0.0.1; expiry=totally bad; Set-Cookie: partialip=nono; domain=.0.0.1; Set-Cookie: cookie1=-junk Set-Cookie: cookie2=-junk Set-Cookie: cookie3=-junk Set-Cookie: cookie4=-junk Set-Cookie: cookie5=-junk Set-Cookie: cookie6=-junk Set-Cookie: cookie7=-junk Set-Cookie: cookie8=-junk Set-Cookie: cookie9=junk-- Set-Cookie: cookie11= -junk Set-Cookie: cookie12= -junk Set-Cookie: cookie14=-junk Set-Cookie: cookie15=-junk Set-Cookie: cookie16=-junk Set-Cookie: cookie17=-junk Set-Cookie: cookie18=-junk Set-Cookie: cookie19=-junk Set-Cookie: cookie20=-junk Set-Cookie: cookie21=-junk Set-Cookie: cookie22=-junk Set-Cookie: cookie23=-junk Set-Cookie: cookie24=-junk Set-Cookie: cookie25=-junk Set-Cookie: cookie26= -junk Set-Cookie: cookie27=-junk Set-Cookie: cookie28=-junk Set-Cookie: cookie29=-junk Set-Cookie: cookie30=-junk Set-Cookie: cookie31=-junk Set-Cookie: cookie31=-junk === End of file heads8.txt === Start of file http_server.log 09:40:30.654911 Running HTTP IPv4 version on port 35945 09:40:30.655932 Wrote pid 73753 to log/57/server/http_server.pid 09:40:30.656269 Wrote port 35945 to log/57/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 8 === End of file server.cmd === Start of file valgrind8 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind8 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/61/server/http_server.pid" --logfile "log/61/http_server.log" --logdir "log/61" --portfile log/61/server/http_server.port --config log/61/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73751 port 44381 * pid http => 73751 73751 test 0004...[Replaced internal and added custom HTTP headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind4 ../src/curl -q --output log/61/curl4.out --include --trace-ascii log/61/trace4 --trace-config all --trace-time -H "extra-header: here" -H "Accept: replaced" -H "X-Custom-Header;" -H "X-Test: foo; " -H "X-Test:" -H "X-Test2: foo;" -H "X-Test3: " -H "X-Test4; " -H "X-Test5;ignored" http://127.0.0.1:44381/4 http://127.0.0.1:44381/4 > log/61/stdout4 2> log/61/stderr4 4: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 4 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind4 ../src/curl -q --output log/61/curl4.out --include --trace-ascii log/61/trace4 --trace-config all --trace-time -H "extra-header: here" -H "Accept: replaced" -H "X-Custom-Header;" -H "X-Test: foo; " -H "X-Test:" -H "X-Test2: foo;" -H "X-Test3: " -H "X-Test4; " -H "X-Test5;ignored" http://127.0.0.1:44381/4 http://127.0.0.1:44381/4 > log/61/stdout4 2> log/61/stderr4 === End of file commands.log === Start of file http_server.log 09:40:30.466591 Running HTTP IPv4 version on port 44381 09:40:30.467362 Wrote pid 73751 to log/61/server/http_server.pid 09:40:30.471171 Wrote port 44381 to log/61/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 4 === End of file server.cmd === Start of file valgrind4 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind4 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/13/server/http_server.pid" --logfile "log/13/http_server.log" --logdir "log/13" --portfile log/13/server/http_server.port --config log/13/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73796 port 44087 * pid http => 73796 73796 test 0052...[HTTP follow redirect with ./-prefix] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind52 ../src/curl -q --output log/13/curl52.out --include --trace-ascii log/13/trace52 --trace-config all --trace-time http://127.0.0.1:44087/we/are/all/twits/52 -L > log/13/stdout52 2> log/13/stderr52 52: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 52 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind52 ../src/curl -q --output log/13/curl52.out --include --trace-ascii log/13/trace52 --trace-config all --trace-time http://127.0.0.1:44087/we/are/all/twits/52 -L > log/13/stdout52 2> log/13/stderr52 === End of file commands.log === Start of file http_server.log 09:40:30.784014 Running HTTP IPv4 version on port 44087 09:40:30.784918 Wrote pid 73796 to log/13/server/http_server.pid 09:40:30.785320 Wrote port 44087 to log/13/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 52 === End of file server.cmd === Start of file valgrind52 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind52 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/19/server/http_server.pid" --logfile "log/19/http_server.log" --logdir "log/19" --portfile log/19/server/http_server.port --config log/19/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73791 port 35697 * pid http => 73791 73791 setenv TZ = GMT test 0046...[HTTP with bad domain name, get cookies and store in cookie jar] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind46 ../src/curl -q --output log/19/curl46.out --include --trace-ascii log/19/trace46 --trace-config all --trace-time domain..tld:35697/want/46 --resolve domain..tld:35697:127.0.0.1 -c log/19/jar46 -b log/19/injar46 > log/19/stdout46 2> log/19/stderr46 46: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 46 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind46 ../src/curl -q --output log/19/curl46.out --include --trace-ascii log/19/trace46 --trace-config all --trace-time domain..tld:35697/want/46 --resolve domain..tld:35697:127.0.0.1 -c log/19/jar46 -b log/19/injar46 > log/19/stdout46 2> log/19/stderr46 === End of file commands.log === Start of file http_server.log 09:40:30.640649 Running HTTP IPv4 version on port 35697 09:40:30.653544 Wrote pid 73791 to log/19/server/http_server.pid 09:40:30.653958 Wrote port 35697 to log/19/server/http_server.port === End of file http_server.log === Start of file injar46 # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This is generated by libcurl! Do not edit. www.fake.come FALSE / FALSE 22147483647 cookiecliente si www.loser.com FALSE / FALSE 22139150993 UID 99 domain..tld FALSE / FALSE 22139150993 mooo indeed #HttpOnly_domain..tld FALSE /want FALSE 22139150993 mooo2 indeed2 domain..tld FALSE /want FALSE 0 empty === End of file injar46 === Start of file server.cmd Testnum 46 === End of file server.cmd === Start of file valgrind46 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind46 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/21/server/http_server.pid" --logfile "log/21/http_server.log" --logdir "log/21" --portfile log/21/server/http_server.port --config log/21/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73789 port 34827 * pid http => 73789 73789 test 0044...[HTTP RFC1867-type formposting without Expect: header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind44 ../src/curl -q --output log/21/curl44.out --include --trace-ascii log/21/trace44 --trace-config all --trace-time http://127.0.0.1:34827/we/want/44 -F name=daniel -F tool=curl -F file=@log/21/test44.txt -H "Expect:" > log/21/stdout44 2> log/21/stderr44 44: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 44 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind44 ../src/curl -q --output log/21/curl44.out --include --trace-ascii log/21/trace44 --trace-config all --trace-time http://127.0.0.1:34827/we/want/44 -F name=daniel -F tool=curl -F file=@log/21/test44.txt -H "Expect:" > log/21/stdout44 2> log/21/stderr44 === End of file commands.log === Start of file http_server.log 09:40:30.623976 Running HTTP IPv4 version on port 34827 09:40:30.624836 Wrote pid 73789 to log/21/server/http_server.pid 09:40:30.625397 Wrote port 34827 to log/21/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 44 === End of file server.cmd === Start of file test44.txt foo- This is a moo- bar === End of file test44.txt === Start of file valgrind44 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind44 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/26/server/http_server.pid" --logfile "log/26/http_server.log" --logdir "log/26" --portfile log/26/server/http_server.port --config log/26/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73780 port 46481 * pid http => 73780 73780 test 0039...[HTTP RFC1867-type formposting with filename= and type=] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind39 ../src/curl -q --output log/26/curl39.out --include --trace-ascii log/26/trace39 --trace-config all --trace-time http://127.0.0.1:46481/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/26/stdout39 2> log/26/stderr39 39: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 39 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind39 ../src/curl -q --output log/26/curl39.out --include --trace-ascii log/26/trace39 --trace-config all --trace-time http://127.0.0.1:46481/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/26/stdout39 2> log/26/stderr39 === End of file commands.log === Start of file http_server.log 09:40:30.713979 Running HTTP IPv4 version on port 46481 09:40:30.717816 Wrote pid 73780 to log/26/server/http_server.pid 09:40:30.718157 Wrote port 46481 to log/26/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 39 === End of file server.cmd === Start of file test39.txt foo bar This is a bar foo bar foo === End of file test39.txt === Start of file valgrind39 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling convCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind70 ../src/curl -q --output log/58/curl70.out --include --trace-ascii log/58/trace70 --trace-config all --trace-time http://127.0.0.1:46727/70 -u testuser:testpass --anyauth > log/58/stdout70 2> log/58/stderr70 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind67 ../src/curl -q --output log/50/curl67.out --include --trace-ascii log/50/trace67 --trace-config all --trace-time http://127.0.0.1:45651/67 -u testuser:testpass --ntlm > log/50/stdout67 2> log/50/stderr67 entions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind39 test 0070...[HTTP with Digest *OR* NTLM authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind70 ../src/curl -q --output log/58/curl70.out --include --trace-ascii log/58/trace70 --trace-config all --trace-time http://127.0.0.1:46727/70 -u testuser:testpass --anyauth > log/58/stdout70 2> log/58/stderr70 70: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 70 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind70 ../src/curl -q --output log/58/curl70.out --include --trace-ascii log/58/trace70 --trace-config all --trace-time http://127.0.0.1:46727/70 -u testuser:testpass --anyauth > log/58/stdout70 2> log/58/stderr70 === End of file commands.log === Start of file http_server.log 09:40:32.924862 ====> Client connect 09:40:32.925201 accept_connection 3 returned 4 09:40:32.925385 accept_connection 3 returned 0 09:40:32.925750 Read 93 bytes 09:40:32.925860 Process 93 bytes request 09:40:32.925963 Got request: GET /verifiedserver HTTP/1.1 09:40:32.926052 Are-we-friendly question received 09:40:32.926304 Wrote request (93 bytes) input to log/58/server.input 09:40:32.926654 Identifying ourselves as friends 09:40:32.927641 Response sent (56 bytes) and written to log/58/server.response 09:40:32.927777 special request received, no persistency 09:40:32.927852 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 70 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind70 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind70 test 0067...[HTTP with NTLM authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind67 ../src/curl -q --output log/50/curl67.out --include --trace-ascii log/50/trace67 --trace-config all --trace-time http://127.0.0.1:45651/67 -u testuser:testpass --ntlm > log/50/stdout67 2> log/50/stderr67 67: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 67 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind67 ../src/curl -q --output log/50/curl67.out --include --trace-ascii log/50/trace67 --trace-config all --trace-time http://127.0.0.1:45651/67 -u testuser:testpass --ntlm > log/50/stdout67 2> log/50/stderr67 === End of file commands.log === Start of file http_server.log 09:40:32.836799 ====> Client connect 09:40:32.837193 accept_connection 3 returned 4 09:40:32.837377 accept_connection 3 returned 0 09:40:32.837630 Read 93 bytes 09:40:32.837750 Process 93 bytes request 09:40:32.837862 Got request: GET /verifiedserver HTTP/1.1 09:40:32.838024 Are-we-friendly question received 09:40:32.838407 Wrote request (93 bytes) input to log/50/server.input 09:40:32.838769 Identifying ourselves as friends 09:40:32.840554 Response sent (56 bytes) and written to log/50/server.response 09:40:32.840696 special request received, no persistency 09:40:32.840775 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 67 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind67 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libcCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind73 ../src/curl -q --output log/64/curl73.out --include --trace-ascii log/64/trace73 --trace-config all --trace-time http://127.0.0.1:33073/we/want/73 -c log/64/jar73.txt -H "Host: host.NOT_DISCLOSED.se" > log/64/stdout73 2> log/64/stderr73 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind65 ../src/curl -q --output log/45/curl65.out --include --trace-ascii log/45/trace65 --trace-config all --trace-time http://127.0.0.1:34239/65 -u testuser:test2pass --digest > log/45/stdout65 2> log/45/stderr65 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind66 ../src/curl -q --output log/46/curl66.out --include --trace-ascii log/46/trace66 --trace-config all --trace-time http://127.0.0.1:46523/66 --http0.9 > log/46/stdout66 2> log/46/stderr66 6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind67 test 0073...[HTTP, receive cookies when using custom Host:, domain using only two dots] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind73 ../src/curl -q --output log/64/curl73.out --include --trace-ascii log/64/trace73 --trace-config all --trace-time http://127.0.0.1:33073/we/want/73 -c log/64/jar73.txt -H "Host: host.NOT_DISCLOSED.se" > log/64/stdout73 2> log/64/stderr73 73: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 73 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind73 ../src/curl -q --output log/64/curl73.out --include --trace-ascii log/64/trace73 --trace-config all --trace-time http://127.0.0.1:33073/we/want/73 -c log/64/jar73.txt -H "Host: host.NOT_DISCLOSED.se" > log/64/stdout73 2> log/64/stderr73 === End of file commands.log === Start of file http_server.log 09:40:33.367911 ====> Client connect 09:40:33.368261 accept_connection 3 returned 4 09:40:33.368581 accept_connection 3 returned 0 09:40:33.368774 Read 93 bytes 09:40:33.368885 Process 93 bytes request 09:40:33.368990 Got request: GET /verifiedserver HTTP/1.1 09:40:33.369083 Are-we-friendly question received 09:40:33.369356 Wrote request (93 bytes) input to log/64/server.input 09:40:33.369682 Identifying ourselves as friends 09:40:33.373561 Response sent (56 bytes) and written to log/64/server.response 09:40:33.373721 special request received, no persistency 09:40:33.373812 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 73 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind73 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind73 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/45/server/http_server.pid" --logfile "log/45/http_server.log" --logdir "log/45" --portfile log/45/server/http_server.port --config log/45/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 75108 port 34239 * pid http => 75108 75108 test 0065...[HTTP with Digest authorization with bad password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind65 ../src/curl -q --output log/45/curl65.out --include --trace-ascii log/45/trace65 --trace-config all --trace-time http://127.0.0.1:34239/65 -u testuser:test2pass --digest > log/45/stdout65 2> log/45/stderr65 65: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 65 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind65 ../src/curl -q --output log/45/curl65.out --include --trace-ascii log/45/trace65 --trace-config all --trace-time http://127.0.0.1:34239/65 -u testuser:test2pass --digest > log/45/stdout65 2> log/45/stderr65 === End of file commands.log === Start of file http_server.log 09:40:31.219681 Running HTTP IPv4 version on port 34239 09:40:31.220697 Wrote pid 75108 to log/45/server/http_server.pid 09:40:31.221048 Wrote port 34239 to log/45/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 65 === End of file server.cmd === Start of file valgrind65 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind65 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/46/server/http_server.pid" --logfile "log/46/http_server.log" --logdir "log/46" --portfile log/46/server/http_server.port --config log/46/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 75714 port 46523 * pid http => 75714 75714 test 0066...[HTTP GET without headers in the response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind66 ../src/curl -q --output log/46/curl66.out --include --trace-ascii log/46/trace66 --trace-config all --trace-time http://127.0.0.1:46523/66 --http0.9 > log/46/stdout66 2> log/46/stderr66 66: protocol FAILED! ThCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind71 ../src/curl -q --output log/62/curl71.out --include --trace-ascii log/62/trace71 --trace-config all --trace-time http://127.0.0.1:38899/we/want/71 -K - log/62/stdout71 2> log/62/stderr71 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind72 ../src/curl -q --output log/60/curl72.out --include --trace-ascii log/60/trace72 --trace-config all --trace-time http://127.0.0.1:38843/72 -u testuser:testpass --anyauth > log/60/stdout72 2> log/60/stderr72 ere was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 66 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind66 ../src/curl -q --output log/46/curl66.out --include --trace-ascii log/46/trace66 --trace-config all --trace-time http://127.0.0.1:46523/66 --http0.9 > log/46/stdout66 2> log/46/stderr66 === End of file commands.log === Start of file http_server.log 09:40:32.699830 Running HTTP IPv4 version on port 46523 09:40:32.700733 Wrote pid 75714 to log/46/server/http_server.pid 09:40:32.701114 Wrote port 46523 to log/46/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 66 === End of file server.cmd === Start of file valgrind66 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind66 test 0071...[HTTP and -F upload in config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind71 ../src/curl -q --output log/62/curl71.out --include --trace-ascii log/62/trace71 --trace-config all --trace-time http://127.0.0.1:38899/we/want/71 -K - log/62/stdout71 2> log/62/stderr71 71: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 71 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind71 ../src/curl -q --output log/62/curl71.out --include --trace-ascii log/62/trace71 --trace-config all --trace-time http://127.0.0.1:38899/we/want/71 -K - log/62/stdout71 2> log/62/stderr71 === End of file commands.log === Start of file http_server.log 09:40:33.102927 ====> Client connect 09:40:33.103630 accept_connection 3 returned 4 09:40:33.104015 accept_connection 3 returned 0 09:40:33.105325 Read 93 bytes 09:40:33.105831 Process 93 bytes request 09:40:33.105945 Got request: GET /verifiedserver HTTP/1.1 09:40:33.106102 Are-we-friendly question received 09:40:33.106804 Wrote request (93 bytes) input to log/62/server.input 09:40:33.107058 Identifying ourselves as friends 09:40:33.108049 Response sent (56 bytes) and written to log/62/server.response 09:40:33.108165 special request received, no persistency 09:40:33.108251 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 71 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file stdin-for-71 -F name=daniel -F tool=curl -F file=@log/62/test71.txt user-agent = "" === End of file stdin-for-71 === Start of file test71.txt foo- This is a moo- bar === End of file test71.txt === Start of file valgrind71 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind71 test 0072...[HTTP with Digest *OR* Basic authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind72 ../src/curl -q --output log/60/curl72.out --include --trace-ascii log/60/trace72 --trace-config all --trace-time http://127.0.0.1:38843/72 -u testuser:testpass --anyauth > log/60/stdout72 2> log/60/stderr72 72: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 72 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind72 ../src/curl -q --output log/60/curl72.out --include --trace-ascii log/60/trace72 --trace-config all --trace-time http://127.0.0.1:38843/72 -u testuser:testpass --anyauth > log/60/stdout72 2> log/60/stderr72 === End of file commands.log === Start of file http_server.log 09:40:33.173051 ====> Client connect 09:40:33.173369 accept_connection 3 returned 4 09:40:33.173706 accept_connection 3 returned 0 09:40:33.174340 Read 93 bytes 09:40:33.174565 Process 93 bytes request 09:40:33.174712 Got request: GET /verifiedserver HTTP/1.1 09:40:33.174809 Are-we-friendly question received 09:40:33.175035 Wrote request (93 bytes) input to log/60/server.input 09:40:33.175259 Identifying ourselves as friends 09:40:33.175979 Response sent (56 bytes) and written to log/60/server.response 09:40:33.176151 special request received, no persistency 09:40:33.176277 ====> Client disconnect CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind68 ../src/curl -q --output log/54/curl68.out --include --trace-ascii log/54/trace68 --trace-config all --trace-time http://127.0.0.1:44921/68 -u testuser:testpass --ntlm > log/54/stdout68 2> log/54/stderr68 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind76 ../src/curl -q --output log/21/curl76.out --include --trace-ascii log/21/trace76 --trace-config all --trace-time http://127.0.0.1:34827/76 -u testuser:testpass --anyauth > log/21/stdout76 2> log/21/stderr76 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 72 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind72 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind72 test 0068...[HTTP with NTLM authorization and wrong password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind68 ../src/curl -q --output log/54/curl68.out --include --trace-ascii log/54/trace68 --trace-config all --trace-time http://127.0.0.1:44921/68 -u testuser:testpass --ntlm > log/54/stdout68 2> log/54/stderr68 68: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 68 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind68 ../src/curl -q --output log/54/curl68.out --include --trace-ascii log/54/trace68 --trace-config all --trace-time http://127.0.0.1:44921/68 -u testuser:testpass --ntlm > log/54/stdout68 2> log/54/stderr68 === End of file commands.log === Start of file http_server.log 09:40:32.841280 ====> Client connect 09:40:32.841762 accept_connection 3 returned 4 09:40:32.841937 accept_connection 3 returned 0 09:40:32.842850 Read 93 bytes 09:40:32.843014 Process 93 bytes request 09:40:32.843109 Got request: GET /verifiedserver HTTP/1.1 09:40:32.843197 Are-we-friendly question received 09:40:32.843504 Wrote request (93 bytes) input to log/54/server.input 09:40:32.843734 Identifying ourselves as friends 09:40:32.847714 Response sent (56 bytes) and written to log/54/server.response 09:40:32.847846 special request received, no persistency 09:40:32.847930 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 68 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind68 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind68 test 0076...[HTTP with comma-separated WWW-Authenticate header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind76 ../src/curl -q --output log/21/curl76.out --include --trace-ascii log/21/trace76 --trace-config all --trace-time http://127.0.0.1:34827/76 -u testuser:testpass --anyauth > log/21/stdout76 2> log/21/stderr76 76: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 76 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind76 ../src/curl -q --output log/21/curl76.out --include --trace-ascii log/21/trace76 --trace-config all --trace-time http://127.0.0.1:34827/76 -u testuser:testpass --anyauth > log/21/stdout76 2> log/21/stderr76 === End of file commands.log === Start of file http_server.log 09:40:33.864869 ====> Client connect 09:40:33.865170 accept_connection 3 returned 4 09:40:33.865341 accept_connection 3 returned 0 09:40:33.865644 Read 93 bytes 09:40:33.865774 Process 93 bytes request 09:40:33.865867 Got request: GET /verifiedserver HTTP/1.1 09:40:33.865951 Are-we-friendly question received 09:40:33.866183 Wrote request (93 bytes) input to log/21/server.input 09:40:33.866396 Identifying ourselves as friends 09:40:33.870713 Response sent (56 bytes) and written to log/21/server.response 09:40:33.870831 special request received, no persistency 09:40:33.870902 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === EnCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind69 ../src/curl -q --output log/59/curl69.out --include --trace-ascii log/59/trace69 --trace-config all --trace-time http://127.0.0.1:43695/69 -u testuser:testpass --anyauth > log/59/stdout69 2> log/59/stderr69 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind90 ../src/curl -q --output log/29/curl90.out --include --trace-ascii log/29/trace90 --trace-config all --trace-time http://127.0.0.1:36877/90 -u testuser:testpass --anyauth -L > log/29/stdout90 2> log/29/stderr90 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind79 ../src/curl -q --output log/57/curl79.out --include --trace-ascii log/57/trace79 --trace-config all --trace-time ftp://127.0.0.1:35945/we/want/that/page/79 -x 127.0.0.1:35945 > log/57/stdout79 2> log/57/stderr79 d of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 76 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind76 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind76 test 0069...[HTTP with NTLM, Basic or Wild-and-crazy authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind69 ../src/curl -q --output log/59/curl69.out --include --trace-ascii log/59/trace69 --trace-config all --trace-time http://127.0.0.1:43695/69 -u testuser:testpass --anyauth > log/59/stdout69 2> log/59/stderr69 69: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 69 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind69 ../src/curl -q --output log/59/curl69.out --include --trace-ascii log/59/trace69 --trace-config all --trace-time http://127.0.0.1:43695/69 -u testuser:testpass --anyauth > log/59/stdout69 2> log/59/stderr69 === End of file commands.log === Start of file http_server.log 09:40:32.982866 ====> Client connect 09:40:32.983175 accept_connection 3 returned 4 09:40:32.983353 accept_connection 3 returned 0 09:40:32.983587 Read 93 bytes 09:40:32.983708 Process 93 bytes request 09:40:32.983798 Got request: GET /verifiedserver HTTP/1.1 09:40:32.983896 Are-we-friendly question received 09:40:32.984096 Wrote request (93 bytes) input to log/59/server.input 09:40:32.984609 Identifying ourselves as friends 09:40:32.987298 Response sent (56 bytes) and written to log/59/server.response 09:40:32.990094 special request received, no persistency 09:40:32.990202 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd Testnum 69 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind69 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind69 test 0090...[HTTP with NTLM via --anyauth, and then follow-location with NTLM again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind90 ../src/curl -q --output log/29/curl90.out --include --trace-ascii log/29/trace90 --trace-config all --trace-time http://127.0.0.1:36877/90 -u testuser:testpass --anyauth -L > log/29/stdout90 2> log/29/stderr90 90: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 90 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind90 ../src/curl -q --output log/29/curl90.out --include --trace-ascii log/29/trace90 --trace-config all --trace-time http://127.0.0.1:36877/90 -u testuser:testpass --anyauth -L > log/29/stdout90 2> log/29/stderr90 === End of file commands.log === Start of file http_server.log 09:40:33.928407 ====> Client connect 09:40:33.928847 accept_connection 3 returned 4 09:40:33.929036 accept_connection 3 returned 0 09:40:33.930409 Read 93 bytes 09:40:33.930624 Process 93 bytes request 09:40:33.930750 Got request: GET /verifiedserver HTTP/1.1 09:40:33.930852 Are-we-friendly question received 09:40:33.931102 Wrote request (93 bytes) input to log/29/server.input 09:40:33.931323 Identifying ourselves as friends 09:40:33.932164 Response sent (56 bytes) and written to log/29/server.response 09:40:33.932282 special request received, no persistency 09:40:33.932355 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 90 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind90 valgrind: Fatal eCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind94 ../src/curl -q --output log/18/curl94.out --include --trace-ascii log/18/trace94 --trace-config all --trace-time https://test.anything.really.com:94 --proxy1.0 127.0.0.1:41285 > log/18/stdout94 2> log/18/stderr94 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind75 ../src/curl -q --include --trace-ascii log/26/trace75 --trace-config all --trace-time "http://a-site-never-accessed.example.org/[2-1]" -o "log/26/weee#1.dump" --stderr - > log/26/stdout75 2> log/26/stderr75 rror at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind90 test 0079...[FTP over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind79 ../src/curl -q --output log/57/curl79.out --include --trace-ascii log/57/trace79 --trace-config all --trace-time ftp://127.0.0.1:35945/we/want/that/page/79 -x 127.0.0.1:35945 > log/57/stdout79 2> log/57/stderr79 79: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 79 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind79 ../src/curl -q --output log/57/curl79.out --include --trace-ascii log/57/trace79 --trace-config all --trace-time ftp://127.0.0.1:35945/we/want/that/page/79 -x 127.0.0.1:35945 > log/57/stdout79 2> log/57/stderr79 === End of file commands.log === Start of file http_server.log 09:40:33.838284 ====> Client connect 09:40:33.838771 accept_connection 3 returned 4 09:40:33.838945 accept_connection 3 returned 0 09:40:33.839086 Read 93 bytes 09:40:33.839190 Process 93 bytes request 09:40:33.839287 Got request: GET /verifiedserver HTTP/1.1 09:40:33.839367 Are-we-friendly question received 09:40:33.839687 Wrote request (93 bytes) input to log/57/server.input 09:40:33.839906 Identifying ourselves as friends 09:40:33.846755 Response sent (56 bytes) and written to log/57/server.response 09:40:33.846888 special request received, no persistency 09:40:33.846963 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 79 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind79 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind79 test 0094...[HTTPS GET with failed proxy auth (CONNECT 1.0)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind94 ../src/curl -q --output log/18/curl94.out --include --trace-ascii log/18/trace94 --trace-config all --trace-time https://test.anything.really.com:94 --proxy1.0 127.0.0.1:41285 > log/18/stdout94 2> log/18/stderr94 94: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 94 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind94 ../src/curl -q --output log/18/curl94.out --include --trace-ascii log/18/trace94 --trace-config all --trace-time https://test.anything.really.com:94 --proxy1.0 127.0.0.1:41285 > log/18/stdout94 2> log/18/stderr94 === End of file commands.log === Start of file http_server.log 09:40:34.108163 ====> Client connect 09:40:34.108769 accept_connection 3 returned 4 09:40:34.108931 accept_connection 3 returned 0 09:40:34.109058 Read 93 bytes 09:40:34.109141 Process 93 bytes request 09:40:34.109230 Got request: GET /verifiedserver HTTP/1.1 09:40:34.109309 Are-we-friendly question received 09:40:34.112693 Wrote request (93 bytes) input to log/18/server.input 09:40:34.113062 Identifying ourselves as friends 09:40:34.117706 Response sent (56 bytes) and written to log/18/server.response 09:40:34.117830 special request received, no persistency 09:40:34.117898 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 94 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind94 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilstCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind129 ../src/curl -q --output log/6/curl129.out --include --trace-ascii log/6/trace129 --trace-config all --trace-time http://127.0.0.1:37181/129 > log/6/stdout129 2> log/6/stderr129 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind74 ../src/curl -q --include --trace-ascii log/61/trace74 --trace-config all --trace-time "http://127.0.0.1:44381/{74,740001}" -o "log/61/dumpit#1.dump" > log/61/stdout74 2> log/61/stderr74 processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind94 test 0129...[HTTP/1.2 is rejected] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind129 ../src/curl -q --output log/6/curl129.out --include --trace-ascii log/6/trace129 --trace-config all --trace-time http://127.0.0.1:37181/129 > log/6/stdout129 2> log/6/stderr129 129: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 129 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind129 ../src/curl -q --output log/6/curl129.out --include --trace-ascii log/6/trace129 --trace-config all --trace-time http://127.0.0.1:37181/129 > log/6/stdout129 2> log/6/stderr129 === End of file commands.log === Start of file http_server.log 09:40:34.140320 ====> Client connect 09:40:34.140825 accept_connection 3 returned 4 09:40:34.141004 accept_connection 3 returned 0 09:40:34.141711 Read 93 bytes 09:40:34.141857 Process 93 bytes request 09:40:34.141954 Got request: GET /verifiedserver HTTP/1.1 09:40:34.142051 Are-we-friendly question received 09:40:34.142300 Wrote request (93 bytes) input to log/6/server.input 09:40:34.142655 Identifying ourselves as friends 09:40:34.143290 Response sent (56 bytes) and written to log/6/server.response 09:40:34.143404 special request received, no persistency 09:40:34.143583 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 129 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind129 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind129 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind99 ../src/curl -q --output log/14/curl99.out --include --trace-ascii log/14/trace99 --trace-config all --trace-time http://127.0.0.1:43309/99 -C 9999999999 > log/14/stdout99 2> log/14/stderr99 * starts no server test 0075...[HTTP, urlglob retrieval with bad range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind75 ../src/curl -q --include --trace-ascii log/26/trace75 --trace-config all --trace-time "http://a-site-never-accessed.example.org/[2-1]" -o "log/26/weee#1.dump" --stderr - > log/26/stdout75 2> log/26/stderr75 75: stdout FAILED: --- log/26/check-expected 2025-07-18 09:40:34.864091145 +0000 +++ log/26/check-generated 2025-07-18 09:40:34.862611145 +0000 @@ -1,3 +0,0 @@ -curl: (3) bad range in URL position 47:[CR][LF] -http://a-site-never-accessed.example.org/[2-1][CR][LF] - ^[CR][LF] == Contents of files in the log/26/ dir after test 75 === Start of file check-expected curl: (3) bad range in URL position 47:[CR][LF] http://a-site-never-accessed.example.org/[2-1][CR][LF] ^[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind75 ../src/curl -q --include --trace-ascii log/26/trace75 --trace-config all --trace-time "http://a-site-never-accessed.example.org/[2-1]" -o "log/26/weee#1.dump" --stderr - > log/26/stdout75 2> log/26/stderr75 === End of file commands.log === Start of file server.cmd Testnum 75 === End of file server.cmd === Start of file valgrind75 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind75 test 0099...[HTTP GET with large-file resume point and failed resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind99 ../src/curl -q --output log/14/curl99.out --include --trace-ascii log/14/trace99 --trace-config all --trace-time http://127.0.0.1:43309/99 -C 9999999999 > log/14/stdout99 2> log/14/stderr99 99: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 99 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind99 ../src/curl -q --output log/14/curl99.out --include --trace-ascii log/14/trace99 --trace-config all --trace-time http://127.0.0.1:43309/99 -C 9999999999 > log/14/stdout99 2> log/14/stderr99 === End of file commands.log === Start of file http_server.log 09:40:34.012611 ====> Client connect 09:40:34.013012 accept_connection 3 returned 4 09:40:34.013210 accept_connection 3 returned 0 09:40:34.013372 Read 93 bytes 09:40:34.013588 Process 93 bytes request 09:40:34.013722 Got request: GET /verifiedserver HTTP/1.1 09:40:34.013819 Are-we-friendly question received 09:40:34.014090 Wrote request (93 bytes) input to log/14/server.input 09:40:34.014353 Identifying ourselves as friends 09:40:34.015289 Response sent (56 bytes) and written to log/14/server.response 09:40:34.015403 special request received, no persistency 09:40:34.018039 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 99 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind99 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind99 test 0074...[HTTP, urlglob {}-retrieval and -o #[num] usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind74 ../src/curl -q --include --trace-ascii log/61/trace74 --trace-config all --trace-time "http://127.0.0.1:44381/{74,740001}" -o "log/61/dumpit#1.dump" > log/61/stdout74 2> log/61/stderr74 74: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 74 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind74 ../src/curl -q --include --trace-ascii log/61/trace74 --trace-config all --trace-time "http://127.0.0.1:44381/{74,740001}" -o "log/61/dumpit#1.dump" > log/61/stdout74 2> log/61/stderr74 === End of file commands.log === Start of file http_server.log 09:40:33.840874 ====> Client connect 09:40:33.841195 accept_connection 3 returned 4 09:40:33.841355 accept_connection 3 returned 0 09:40:33.841645 Read 93 bytes 09:40:33.841765 Process 93 bytes request 09:40:33.841CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind78 ../src/curl -q --output log/13/curl78.out --include --trace-ascii log/13/trace78 --trace-config all --trace-time http://127.0.0.1:44087/78 -z "dec 12 11:00:00 1999 GMT" > log/13/stdout78 2> log/13/stderr78 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind93 ../src/curl -q --output log/20/curl93.out --include --trace-ascii log/20/trace93 --trace-config all --trace-time http://127.0.0.1:45475/93 -x 127.0.0.1:45475 > log/20/stdout93 2> log/20/stderr93 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind81 ../src/curl -q --output log/42/curl81.out --include --trace-ascii log/42/trace81 --trace-config all --trace-time http://127.0.0.1:42819/81 --proxy-user testuser:testpass -x http://127.0.0.1:42819 --proxy-ntlm > log/42/stdout81 2> log/42/stderr81 846 Got request: GET /verifiedserver HTTP/1.1 09:40:33.841912 Are-we-friendly question received 09:40:33.842150 Wrote request (93 bytes) input to log/61/server.input 09:40:33.842371 Identifying ourselves as friends 09:40:33.843288 Response sent (56 bytes) and written to log/61/server.response 09:40:33.843401 special request received, no persistency 09:40:33.843575 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 74 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind74 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind74 test 0078...[HTTP with -z "newer date"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind78 ../src/curl -q --output log/13/curl78.out --include --trace-ascii log/13/trace78 --trace-config all --trace-time http://127.0.0.1:44087/78 -z "dec 12 11:00:00 1999 GMT" > log/13/stdout78 2> log/13/stderr78 78: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 78 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind78 ../src/curl -q --output log/13/curl78.out --include --trace-ascii log/13/trace78 --trace-config all --trace-time http://127.0.0.1:44087/78 -z "dec 12 11:00:00 1999 GMT" > log/13/stdout78 2> log/13/stderr78 === End of file commands.log === Start of file http_server.log 09:40:34.015856 ====> Client connect 09:40:34.016261 accept_connection 3 returned 4 09:40:34.016575 accept_connection 3 returned 0 09:40:34.016752 Read 93 bytes 09:40:34.016846 Process 93 bytes request 09:40:34.016937 Got request: GET /verifiedserver HTTP/1.1 09:40:34.017048 Are-we-friendly question received 09:40:34.017344 Wrote request (93 bytes) input to log/13/server.input 09:40:34.020017 Identifying ourselves as friends 09:40:34.025000 Response sent (56 bytes) and written to log/13/server.response 09:40:34.025128 special request received, no persistency 09:40:34.025211 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 78 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file valgrind78 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind78 test 0093...[HTTP GET with failed proxy auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind93 ../src/curl -q --output log/20/curl93.out --include --trace-ascii log/20/trace93 --trace-config all --trace-time http://127.0.0.1:45475/93 -x 127.0.0.1:45475 > log/20/stdout93 2> log/20/stderr93 93: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 93 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind93 ../src/curl -q --output log/20/curl93.out --include --trace-ascii log/20/trace93 --trace-config all --trace-time http://127.0.0.1:45475/93 -x 127.0.0.1:45475 > log/20/stdout93 2> log/20/stderr93 === End of file commands.log === Start of file http_server.log 09:40:33.968878 ====> Client connect 09:40:33.969217 accept_connection 3 returned 4 09:40:33.969423 accept_connection 3 returned 0 09:40:33.969704 Read 93 bytes 09:40:33.969856 Process 93 bytes request 09:40:33.969948 Got request: GET /verifiedserver HTTP/1.1 09:40:33.970063 Are-we-friendly question received 09:40:33.970402 Wrote request (93 bytes) input to log/20/server.input 09:40:33.970734 Identifying ourselves as friends 09:40:33.971603 Response sent (56 bytes) and written to log/20/server.response 09:40:33.971731 special request received, no persistency 09:40:33.971808 ====> Client disconnect 0 === End of file http_server.log === Start of CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind88 ../src/curl -q --output log/33/curl88.out --include --trace-ascii log/33/trace88 --trace-config all --trace-time http://127.0.0.1:36559/88 -T log/33/put88 -u testuser:testpass --digest > log/33/stdout88 2> log/33/stderr88 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind97 ../src/curl -q --output log/16/curl97.out --include --trace-ascii log/16/trace97 --trace-config all --trace-time -d "hejsanallabarn" -H "Content-Type: silly/type" http://127.0.0.1:34829/97 > log/16/stdout97 2> log/16/stderr97 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind84 ../src/curl -q --output log/37/curl84.out --include --trace-ascii log/37/trace84 --trace-config all --trace-time http://127.0.0.1:37551/we/want/that/page/84 -x 127.0.0.1:37551 --user iam:myself > log/37/stdout84 2> log/37/stderr84 file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 93 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind93 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind93 test 0081...[HTTP with proxy using NTLM authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind81 ../src/curl -q --output log/42/curl81.out --include --trace-ascii log/42/trace81 --trace-config all --trace-time http://127.0.0.1:42819/81 --proxy-user testuser:testpass -x http://127.0.0.1:42819 --proxy-ntlm > log/42/stdout81 2> log/42/stderr81 81: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 81 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind81 ../src/curl -q --output log/42/curl81.out --include --trace-ascii log/42/trace81 --trace-config all --trace-time http://127.0.0.1:42819/81 --proxy-user testuser:testpass -x http://127.0.0.1:42819 --proxy-ntlm > log/42/stdout81 2> log/42/stderr81 === End of file commands.log === Start of file http_server.log 09:40:33.963752 ====> Client connect 09:40:33.964116 accept_connection 3 returned 4 09:40:33.964321 accept_connection 3 returned 0 09:40:33.964766 Read 93 bytes 09:40:33.964910 Process 93 bytes request 09:40:33.965007 Got request: GET /verifiedserver HTTP/1.1 09:40:33.965104 Are-we-friendly question received 09:40:33.965358 Wrote request (93 bytes) input to log/42/server.input 09:40:33.965869 Identifying ourselves as friends 09:40:33.966837 Response sent (56 bytes) and written to log/42/server.response 09:40:33.966962 special request received, no persistency 09:40:33.967033 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 81 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind81 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind81 test 0088...[HTTP PUT with Digest authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind88 ../src/curl -q --output log/33/curl88.out --include --trace-ascii log/33/trace88 --trace-config all --trace-time http://127.0.0.1:36559/88 -T log/33/put88 -u testuser:testpass --digest > log/33/stdout88 2> log/33/stderr88 88: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 88 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind88 ../src/curl -q --output log/33/curl88.out --include --trace-ascii log/33/trace88 --trace-config all --trace-time http://127.0.0.1:36559/88 -T log/33/put88 -u testuser:testpass --digest > log/33/stdout88 2> log/33/stderr88 === End of file commands.log === Start of file http_server.log 09:40:33.982895 ====> Client connect 09:40:33.983196 accept_connection 3 returned 4 09:40:33.983378 accept_connection 3 returned 0 09:40:33.983629 Read 93 bytes 09:40:33.983784 Process 93 bytes request 09:40:33.983865 Got request: GET /verifiedserver HTTP/1.1 09:40:33.983929 Are-we-friendly question received 09:40:33.984127 Wrote request (93 bytes) input to log/33/server.input 09:40:33.984301 Identifying ourselves as friends 09:40:33.987978 Response sent (56 bytes) and written to log/33/server.response 09:40:33.988104 special request received, no persistency 09:40:33.988176 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind86 ../src/curl -q --include --trace-ascii log/35/trace86 --trace-config all --trace-time "http://127.0.0.1:43179/[860001-860003]" -o "log/35/dumpit#1.dump" > log/35/stdout86 2> log/35/stderr86 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind91 ../src/curl -q --output log/27/curl91.out --include --trace-ascii log/27/trace91 --trace-config all --trace-time http://127.0.0.1:42323/91 --anyauth -u mydomain\\myself:secret > log/27/stdout91 2> log/27/stderr91 7 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file put88 This is data we upload with PUT a second line line three four is the number of lines === End of file put88 === Start of file server.cmd auth_required Testnum 88 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind88 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind88 test 0097...[HTTP POST with custom content-type] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind97 ../src/curl -q --output log/16/curl97.out --include --trace-ascii log/16/trace97 --trace-config all --trace-time -d "hejsanallabarn" -H "Content-Type: silly/type" http://127.0.0.1:34829/97 > log/16/stdout97 2> log/16/stderr97 97: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 97 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind97 ../src/curl -q --output log/16/curl97.out --include --trace-ascii log/16/trace97 --trace-config all --trace-time -d "hejsanallabarn" -H "Content-Type: silly/type" http://127.0.0.1:34829/97 > log/16/stdout97 2> log/16/stderr97 === End of file commands.log === Start of file http_server.log 09:40:34.144854 ====> Client connect 09:40:34.145167 accept_connection 3 returned 4 09:40:34.145326 accept_connection 3 returned 0 09:40:34.149657 Read 93 bytes 09:40:34.149814 Process 93 bytes request 09:40:34.149911 Got request: GET /verifiedserver HTTP/1.1 09:40:34.150003 Are-we-friendly question received 09:40:34.150254 Wrote request (93 bytes) input to log/16/server.input 09:40:34.150605 Identifying ourselves as friends 09:40:34.151408 Response sent (56 bytes) and written to log/16/server.response 09:40:34.151618 special request received, no persistency 09:40:34.151694 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 97 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind97 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind97 test 0084...[HTTP over proxy with site authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind84 ../src/curl -q --output log/37/curl84.out --include --trace-ascii log/37/trace84 --trace-config all --trace-time http://127.0.0.1:37551/we/want/that/page/84 -x 127.0.0.1:37551 --user iam:myself > log/37/stdout84 2> log/37/stderr84 84: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 84 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind84 ../src/curl -q --output log/37/curl84.out --include --trace-ascii log/37/trace84 --trace-config all --trace-time http://127.0.0.1:37551/we/want/that/page/84 -x 127.0.0.1:37551 --user iam:myself > log/37/stdout84 2> log/37/stderr84 === End of file commands.log === Start of file http_server.log 09:40:34.086266 ====> Client connect 09:40:34.086717 accept_connection 3 returned 4 09:40:34.086875 accept_connection 3 returned 0 09:40:34.086995 Read 93 bytes 09:40:34.087089 Process 93 bytes request 09:40:34.087177 Got request: GET /verifiedserver HTTP/1.1 09:40:34.087257 Are-we-friendly question received 09:40:34.087566 Wrote request (93 bytes) input to log/37/server.input 09:40:34.087801 Identifying ourselves as friends 09:40:34.088574 Response sent (56 bytes) and written to log/37/server.response 09:40:34.088689 special request received, no persistency 09:40:34.088757 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === EndCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind92 ../src/curl -q --output log/25/curl92.out --include --trace-ascii log/25/trace92 --trace-config all --trace-time http://127.0.0.1:41727/want/92 -C 87 > log/25/stdout92 2> log/25/stderr92 of file http_verify.out === Start of file server.cmd Testnum 84 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind84 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind84 test 0092...[HTTP resume transfer with the whole file already downloaded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind92 ../src/curl -q --output log/25/curl92.out --include --trace-ascii log/25/trace92 --trace-config all --trace-time http://127.0.0.1:41727/want/92 -C 87 > log/25/stdout92 2> log/25/stderr92 92: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 92 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind92 ../src/curl -q --output log/25/curl92.out --include --trace-ascii log/25/trace92 --trace-config all --trace-time http://127.0.0.1:41727/want/92 -C 87 > log/25/stdout92 2> log/25/stderr92 === End of file commands.log === Start of file http_server.log 09:40:33.954746 ====> Client connect 09:40:33.955131 accept_connection 3 returned 4 09:40:33.955331 accept_connection 3 returned 0 09:40:33.955595 Read 93 bytes 09:40:33.955737 Process 93 bytes request 09:40:33.955887 Got request: GET /verifiedserver HTTP/1.1 09:40:33.956013 Are-we-friendly question received 09:40:33.956376 Wrote request (93 bytes) input to log/25/server.input 09:40:33.958058 Identifying ourselves as friends 09:40:33.960777 Response sent (56 bytes) and written to log/25/server.response 09:40:33.960913 special request received, no persistency 09:40:33.960992 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd Testnum 92 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind92 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind92 test 0091...[HTTP with NTLM/Negotiate/Basic, anyauth and user with domain, with size 0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind91 ../src/curl -q --output log/27/curl91.out --include --trace-ascii log/27/trace91 --trace-config all --trace-time http://127.0.0.1:42323/91 --anyauth -u mydomain\\myself:secret > log/27/stdout91 2> log/27/stderr91 91: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 91 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind91 ../src/curl -q --output log/27/curl91.out --include --trace-ascii log/27/trace91 --trace-config all --trace-time http://127.0.0.1:42323/91 --anyauth -u mydomain\\myself:secret > log/27/stdout91 2> log/27/stderr91 === End of file commands.log === Start of file http_server.log 09:40:34.014681 ====> Client connect 09:40:34.015098 accept_connection 3 returned 4 09:40:34.015306 accept_connection 3 returned 0 09:40:34.015519 Read 93 bytes 09:40:34.015652 Process 93 bytes request 09:40:34.015752 Got request: GET /verifiedserver HTTP/1.1 09:40:34.015840 Are-we-friendly question received 09:40:34.016085 Wrote request (93 bytes) input to log/27/server.input 09:40:34.016348 Identifying ourselves as friends 09:40:34.017224 Response sent (56 bytes) and written to log/27/server.response 09:40:34.017351 special request received, no persistency 09:40:34.017427 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 91 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind91 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind89 ../src/curl -q --output log/31/curl89.out --include --trace-ascii log/31/trace89 --trace-config all --trace-time http://127.0.0.1:45557/89 -u testuser:testpass --ntlm -L > log/31/stdout89 2> log/31/stderr89 grind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind91 test 0086...[HTTP, urlglob []-retrieval and -o #[num] usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind86 ../src/curl -q --include --trace-ascii log/35/trace86 --trace-config all --trace-time "http://127.0.0.1:43179/[860001-860003]" -o "log/35/dumpit#1.dump" > log/35/stdout86 2> log/35/stderr86 86: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 86 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind86 ../src/curl -q --include --trace-ascii log/35/trace86 --trace-config all --trace-time "http://127.0.0.1:43179/[860001-860003]" -o "log/35/dumpit#1.dump" > log/35/stdout86 2> log/35/stderr86 === End of file commands.log === Start of file http_server.log 09:40:33.961963 ====> Client connect 09:40:33.962304 accept_connection 3 returned 4 09:40:33.962621 accept_connection 3 returned 0 09:40:33.962784 Read 93 bytes 09:40:33.962893 Process 93 bytes request 09:40:33.962983 Got request: GET /verifiedserver HTTP/1.1 09:40:33.963069 Are-we-friendly question received 09:40:33.963297 Wrote request (93 bytes) input to log/35/server.input 09:40:33.963591 Identifying ourselves as friends 09:40:33.964311 Response sent (56 bytes) and written to log/35/server.response 09:40:33.964426 special request received, no persistency 09:40:33.968684 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 86 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind86 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind86 test 0089...[HTTP with NTLM and follow-location] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind89 ../src/curl -q --output log/31/curl89.out --include --trace-ascii log/31/trace89 --trace-config all --trace-time http://127.0.0.1:45557/89 -u testuser:testpass --ntlm -L > log/31/stdout89 2> log/31/stderr89 89: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 89 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind89 ../src/curl -q --output log/31/curl89.out --include --trace-ascii log/31/trace89 --trace-config all --trace-time http://127.0.0.1:45557/89 -u testuser:testpass --ntlm -L > log/31/stdout89 2> log/31/stderr89 === End of file commands.log === Start of file http_server.log 09:40:33.982240 ====> Client connect 09:40:33.982897 accept_connection 3 returned 4 09:40:33.983077 accept_connection 3 returned 0 09:40:33.983728 Read 93 bytes 09:40:33.983856 Process 93 bytes request 09:40:33.983931 Got request: GET /verifiedserver HTTP/1.1 09:40:33.983989 Are-we-friendly question received 09:40:33.984172 Wrote request (93 bytes) input to log/31/server.input 09:40:33.984323 Identifying ourselves as friends 09:40:33.984916 Response sent (56 bytes) and written to log/31/server.response 09:40:33.985029 special request received, no persistency 09:40:33.985098 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 89 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind89 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind82 ../src/curl -q --output log/40/curl82.out --include --trace-ascii log/40/trace82 --trace-config all --trace-time http://127.0.0.1:42139/82 --proxy-user testuser:testpass -x http://127.0.0.1:42139 > log/40/stdout82 2> log/40/stderr82 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind109 ../src/curl -q --output log/49/curl109.out --include --trace-ascii log/49/trace109 --trace-config all --trace-time ftp://127.0.0.1:34533/109 -T log/49/upload109 --append > log/49/stdout109 2> log/49/stderr109 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind87 ../src/curl -q --include --trace-ascii log/34/trace87 --trace-config all --trace-time "http://127.0.0.1:33117/[870001-870002]" -o "log/34/dumpit87-#2.dump" > log/34/stdout87 2> log/34/stderr87 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind98 ../src/curl -q --output log/15/curl98.out --include --trace-ascii log/15/trace98 --trace-config all --trace-time -T - -H "Transfer-Encoding:" -H "Content-Length: 14" http://127.0.0.1:35435/98 log/15/stdout98 2> log/15/stderr98 : package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind89 test 0082...[HTTP with proxy requiring NTLM, but we send Basic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind82 ../src/curl -q --output log/40/curl82.out --include --trace-ascii log/40/trace82 --trace-config all --trace-time http://127.0.0.1:42139/82 --proxy-user testuser:testpass -x http://127.0.0.1:42139 > log/40/stdout82 2> log/40/stderr82 82: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 82 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind82 ../src/curl -q --output log/40/curl82.out --include --trace-ascii log/40/trace82 --trace-config all --trace-time http://127.0.0.1:42139/82 --proxy-user testuser:testpass -x http://127.0.0.1:42139 > log/40/stdout82 2> log/40/stderr82 === End of file commands.log === Start of file http_server.log 09:40:34.016266 ====> Client connect 09:40:34.016746 accept_connection 3 returned 4 09:40:34.016934 accept_connection 3 returned 0 09:40:34.024579 Read 93 bytes 09:40:34.024781 Process 93 bytes request 09:40:34.024885 Got request: GET /verifiedserver HTTP/1.1 09:40:34.024977 Are-we-friendly question received 09:40:34.025252 Wrote request (93 bytes) input to log/40/server.input 09:40:34.025580 Identifying ourselves as friends 09:40:34.026413 Response sent (56 bytes) and written to log/40/server.response 09:40:34.026630 special request received, no persistency 09:40:34.026714 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd Testnum 82 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file valgrind82 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind82 test 0098...[HTTP PUT from stdin with set size, disabling chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind98 ../src/curl -q --output log/15/curl98.out --include --trace-ascii log/15/trace98 --trace-config all --trace-time -T - -H "Transfer-Encoding:" -H "Content-Length: 14" http://127.0.0.1:35435/98 log/15/stdout98 2> log/15/stderr98 98: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 98 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind98 ../src/curl -q --output log/15/curl98.out --include --trace-ascii log/15/trace98 --trace-config all --trace-time -T - -H "Transfer-Encoding:" -H "Content-Length: 14" http://127.0.0.1:35435/98 log/15/stdout98 2> log/15/stderr98 === End of file commands.log === Start of file http_server.log 09:40:34.114912 ====> Client connect 09:40:34.115257 accept_connection 3 returned 4 09:40:34.115587 accept_connection 3 returned 0 09:40:34.115825 Read 93 bytes 09:40:34.115986 Process 93 bytes request 09:40:34.116266 Got request: GET /verifiedserver HTTP/1.1 09:40:34.116399 Are-we-friendly question received 09:40:34.117101 Wrote request (93 bytes) input to log/15/server.input 09:40:34.126208 Identifying ourselves as friends 09:40:34.127960 Response sent (56 bytes) and written to log/15/server.response 09:40:34.128087 special request received, no persistency 09:40:34.128188 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 98 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file stdin-for-98 data on stdin === End of file stdin-for-98 === Start of file valgrind98 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind98 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind77 ../src/curl -q --output log/19/curl77.out --include --trace-ascii log/19/trace77 --trace-config all --trace-time http://127.0.0.1:35697/77 -z "dec 12 12:00:00 1999 GMT" > log/19/stdout77 2> log/19/stderr77 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind114 ../src/curl -q --output log/28/curl114.out --include --trace-ascii log/28/trace114 --trace-config all --trace-time ftp://127.0.0.1:34373/114 > log/28/stdout114 2> log/28/stderr114 test 0087...[urlglob with out of range -o #[num] usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind87 ../src/curl -q --include --trace-ascii log/34/trace87 --trace-config all --trace-time "http://127.0.0.1:33117/[870001-870002]" -o "log/34/dumpit87-#2.dump" > log/34/stdout87 2> log/34/stderr87 87: output (log/34/dumpit87-#2.dump) FAILED: --- log/34/check-expected 2025-07-18 09:40:35.431595917 +0000 +++ log/34/check-generated 2025-07-18 09:40:35.430610858 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 16[CR][LF] -[CR][LF] -two is nice too[LF] == Contents of files in the log/34/ dir after test 87 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 16[CR][LF] [CR][LF] two is nice too[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind87 ../src/curl -q --include --trace-ascii log/34/trace87 --trace-config all --trace-time "http://127.0.0.1:33117/[870001-870002]" -o "log/34/dumpit87-#2.dump" > log/34/stdout87 2> log/34/stderr87 === End of file commands.log === Start of file http_server.log 09:40:34.064975 ====> Client connect 09:40:34.065294 accept_connection 3 returned 4 09:40:34.065613 accept_connection 3 returned 0 09:40:34.066618 Read 93 bytes 09:40:34.066912 Process 93 bytes request 09:40:34.067002 Got request: GET /verifiedserver HTTP/1.1 09:40:34.067086 Are-we-friendly question received 09:40:34.067595 Wrote request (93 bytes) input to log/34/server.input 09:40:34.067822 Identifying ourselves as friends 09:40:34.068507 Response sent (56 bytes) and written to log/34/server.response 09:40:34.071653 special request received, no persistency 09:40:34.071796 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file server.cmd Testnum 87 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file valgrind87 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind87 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/49/server/ftp_server.pid" --logfile "log/49/ftp_server.log" --logdir "log/49" --portfile "log/49/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34533 (log/49/server/ftp_server.port) RUN: FTP server is PID 77434 port 34533 * pid ftp => 77434 77434 test 0109...[FTP PASV upload append] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind109 ../src/curl -q --output log/49/curl109.out --include --trace-ascii log/49/trace109 --trace-config all --trace-time ftp://127.0.0.1:34533/109 -T log/49/upload109 --append > log/49/stdout109 2> log/49/stderr109 109: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 109 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind109 ../src/curl -q --output log/49/curl109.out --include --trace-ascii log/49/trace109 --trace-config all --trace-time ftp://127.0.0.1:34533/109 -T log/49/upload109 --append > log/49/stdout109 2> log/49/stderr109 === End of file commands.log === Start of file ftp_server.log 09:40:34.186061 FTP server listens on port IPv4/34533 09:40:34.187161 logged pid 77434 in log/49/server/ftp_server.pid 09:40:34.187456 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.436649 Running IPv4 version 09:40:34.437295 Listening on port 34533 09:40:34.437924 Wrote pid 78153 to log/49/server/ftp_sockctrl.pid 09:40:34.438288 Wrote port 34533 to log/49/server/ftp_server.port 09:40:34.438797 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 109 === End of file server.cmd === Start of file upload109 Moooooooooooo upload this === End of file upload109 === Start of file valgrind109 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind109 test 0077...[HTTP with -z "older date"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind77 ../src/curl -q --output log/19/curl77.out --include --trace-ascii log/19/trace77 --trace-config all --trace-time http://1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind111 ../src/curl -q --output log/41/curl111.out --include --trace-ascii log/41/trace111 --trace-config all --trace-time ftp://127.0.0.1:41781/111 -C 2000 > log/41/stdout111 2> log/41/stderr111 27.0.0.1:35697/77 -z "dec 12 12:00:00 1999 GMT" > log/19/stdout77 2> log/19/stderr77 77: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 77 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind77 ../src/curl -q --output log/19/curl77.out --include --trace-ascii log/19/trace77 --trace-config all --trace-time http://127.0.0.1:35697/77 -z "dec 12 12:00:00 1999 GMT" > log/19/stdout77 2> log/19/stderr77 === End of file commands.log === Start of file http_server.log 09:40:34.187972 ====> Client connect 09:40:34.188300 accept_connection 3 returned 4 09:40:34.188633 accept_connection 3 returned 0 09:40:34.188815 Read 93 bytes 09:40:34.188937 Process 93 bytes request 09:40:34.189047 Got request: GET /verifiedserver HTTP/1.1 09:40:34.189148 Are-we-friendly question received 09:40:34.189540 Wrote request (93 bytes) input to log/19/server.input 09:40:34.189847 Identifying ourselves as friends 09:40:34.190939 Response sent (56 bytes) and written to log/19/server.response 09:40:34.191051 special request received, no persistency 09:40:34.191116 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 77 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind77 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind77 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/28/server/ftp_server.pid" --logfile "log/28/ftp_server.log" --logdir "log/28" --portfile "log/28/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34373 (log/28/server/ftp_server.port) RUN: FTP server is PID 77437 port 34373 * pid ftp => 77437 77437 test 0114...[FTP download, failed login: PASS not valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind114 ../src/curl -q --output log/28/curl114.out --include --trace-ascii log/28/trace114 --trace-config all --trace-time ftp://127.0.0.1:34373/114 > log/28/stdout114 2> log/28/stderr114 114: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 114 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind114 ../src/curl -q --output log/28/curl114.out --include --trace-ascii log/28/trace114 --trace-config all --trace-time ftp://127.0.0.1:34373/114 > log/28/stdout114 2> log/28/stderr114 === End of file commands.log === Start of file ftp_server.log 09:40:33.927231 FTP server listens on port IPv4/34373 09:40:33.928222 logged pid 77437 in log/28/server/ftp_server.pid 09:40:33.928481 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:33.178031 Running IPv4 version 09:40:33.178990 Listening on port 34373 09:40:33.179538 Wrote pid 77903 to log/28/server/ftp_sockctrl.pid 09:40:33.179932 Wrote port 34373 to log/28/server/ftp_server.port 09:40:33.180129 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY PASS 314 bluah you f00l Testnum 114 === End of file server.cmd === Start of file valgrind114 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind114 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/41/server/ftp_server.pid" --logfile "log/41/ftp_server.log" --logdir "log/41" --portfile "log/41/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41781 (log/41/server/ftp_server.port) RUN: FTP server is PID 77417 port 41781 * pid ftp => 77417 77417 test 0111...[FTP download resume beyond file size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind111 ../src/curl -q --output log/41/curl111.out --include --trace-ascii log/41/trace111 --trace-config all --trace-time ftp://127.0.0.1:41781/111 -C 2000 > log/41/stdout111 2> log/41/stderr111 111: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 111 === Start of file commands.loCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind115 ../src/curl -q --output log/24/curl115.out --include --trace-ascii log/24/trace115 --trace-config all --trace-time ftp://127.0.0.1:37935/115 > log/24/stdout115 2> log/24/stderr115 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind113 ../src/curl -q --output log/30/curl113.out --include --trace-ascii log/30/trace113 --trace-config all --trace-time ftp://127.0.0.1:42901/113 > log/30/stdout113 2> log/30/stderr113 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind106 ../src/curl -q --output log/1/curl106.out --include --trace-ascii log/1/trace106 --trace-config all --trace-time "ftp://127.0.0.1:33417//path%20with%20%20spaces//and%20things2/106;type=A" > log/1/stdout106 2> log/1/stderr106 g ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind111 ../src/curl -q --output log/41/curl111.out --include --trace-ascii log/41/trace111 --trace-config all --trace-time ftp://127.0.0.1:41781/111 -C 2000 > log/41/stdout111 2> log/41/stderr111 === End of file commands.log === Start of file ftp_server.log 09:40:33.975155 FTP server listens on port IPv4/41781 09:40:33.976568 logged pid 77417 in log/41/server/ftp_server.pid 09:40:33.977072 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:33.218121 Running IPv4 version 09:40:33.219245 Listening on port 41781 09:40:33.223365 Wrote pid 77922 to log/41/server/ftp_sockctrl.pid 09:40:33.224313 Wrote port 41781 to log/41/server/ftp_server.port 09:40:33.224720 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 111 === End of file server.cmd === Start of file valgrind111 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind111 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/24/server/ftp_server.pid" --logfile "log/24/ftp_server.log" --logdir "log/24" --portfile "log/24/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37935 (log/24/server/ftp_server.port) RUN: FTP server is PID 77469 port 37935 * pid ftp => 77469 77469 test 0115...[FTP download, failed PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind115 ../src/curl -q --output log/24/curl115.out --include --trace-ascii log/24/trace115 --trace-config all --trace-time ftp://127.0.0.1:37935/115 > log/24/stdout115 2> log/24/stderr115 115: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 115 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind115 ../src/curl -q --output log/24/curl115.out --include --trace-ascii log/24/trace115 --trace-config all --trace-time ftp://127.0.0.1:37935/115 > log/24/stdout115 2> log/24/stderr115 === End of file commands.log === Start of file ftp_server.log 09:40:34.254284 FTP server listens on port IPv4/37935 09:40:34.255221 logged pid 77469 in log/24/server/ftp_server.pid 09:40:34.255494 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.499134 Running IPv4 version 09:40:34.499956 Listening on port 37935 09:40:34.504242 Wrote pid 78221 to log/24/server/ftp_sockctrl.pid 09:40:34.506989 Wrote port 37935 to log/24/server/ftp_server.port 09:40:34.507169 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY PASV 314 bluah you f00l REPLY EPSV 314 bluah you f00l Testnum 115 === End of file server.cmd === Start of file valgrind115 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind115 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/1/server/ftp_server.pid" --logfile "log/1/ftp_server.log" --logdir "log/1" --portfile "log/1/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33417 (log/1/server/ftp_server.port) RUN: FTP server is PID 77379 port 33417 * pid ftp => 77379 77379 test 0106...[FTP GET with type=A style ASCII URL using %20 codes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind106 ../src/curl -q --output log/1/curl106.out --include --trace-ascii log/1/trace106 --trace-config all --trace-time "ftp://127.0.0.1:33417//path%20with%20%20spaces//and%20things2/106;type=A" > log/1/stdout106 2> log/1/stderr106 106: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 106 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind106 ../src/curl -q --output log/1/curl106.out --include --trace-ascii log/1/trace106 --trace-config all --trace-time "ftp://127.0.0.1:33417//path%20with%20%20spaces//and%20things2/106;type=A" > log/1/stdout106 2> log/1/stderr106 === End of file commands.log === Start of file ftp_server.log 09:40:33.936278 FTP server listens on port IPv4/33417 09:40:33.937224 logged pid 77379 in log/1/server/ftp_server.pid 09:40:33.937496 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:33.187773 Running IPv4 version 09:40:33.188326 Listening on port 33417 09:40:33.188828 Wrote pid 77905 to log/1/server/ftp_sockctrl.pid 09:40:33.189155 Wrote port 33417 to log/1/server/ftp_server.port 09:40:33.189318 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd TCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind104 ../src/curl -q --output log/3/curl104.out --include --trace-ascii log/3/trace104 --trace-config all --trace-time ftp://127.0.0.1:42255/a/path/104 --head > log/3/stdout104 2> log/3/stderr104 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind110 ../src/curl -q --output log/44/curl110.out --include --trace-ascii log/44/trace110 --trace-config all --trace-time ftp://127.0.0.1:41125/110 -C 20 > log/44/stdout110 2> log/44/stderr110 estnum 106 === End of file server.cmd === Start of file valgrind106 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind106 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/30/server/ftp_server.pid" --logfile "log/30/ftp_server.log" --logdir "log/30" --portfile "log/30/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42901 (log/30/server/ftp_server.port) RUN: FTP server is PID 77429 port 42901 * pid ftp => 77429 77429 test 0113...[FTP download, failed login: USER not valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind113 ../src/curl -q --output log/30/curl113.out --include --trace-ascii log/30/trace113 --trace-config all --trace-time ftp://127.0.0.1:42901/113 > log/30/stdout113 2> log/30/stderr113 113: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 113 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind113 ../src/curl -q --output log/30/curl113.out --include --trace-ascii log/30/trace113 --trace-config all --trace-time ftp://127.0.0.1:42901/113 > log/30/stdout113 2> log/30/stderr113 === End of file commands.log === Start of file ftp_server.log 09:40:33.891324 FTP server listens on port IPv4/42901 09:40:33.892239 logged pid 77429 in log/30/server/ftp_server.pid 09:40:33.892546 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:33.138613 Running IPv4 version 09:40:33.139186 Listening on port 42901 09:40:33.141746 Wrote pid 77868 to log/30/server/ftp_sockctrl.pid 09:40:33.142126 Wrote port 42901 to log/30/server/ftp_server.port 09:40:33.142300 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY USER 314 bluah you fewl Testnum 113 === End of file server.cmd === Start of file valgrind113 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind113 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/ftp_server.pid" --logfile "log/3/ftp_server.log" --logdir "log/3" --portfile "log/3/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42255 (log/3/server/ftp_server.port) RUN: FTP server is PID 77381 port 42255 * pid ftp => 77381 77381 test 0104...[FTP --head to get file size only] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind104 ../src/curl -q --output log/3/curl104.out --include --trace-ascii log/3/trace104 --trace-config all --trace-time ftp://127.0.0.1:42255/a/path/104 --head > log/3/stdout104 2> log/3/stderr104 104: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 104 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind104 ../src/curl -q --output log/3/curl104.out --include --trace-ascii log/3/trace104 --trace-config all --trace-time ftp://127.0.0.1:42255/a/path/104 --head > log/3/stdout104 2> log/3/stderr104 === End of file commands.log === Start of file ftp_server.log 09:40:34.208204 FTP server listens on port IPv4/42255 09:40:34.209382 logged pid 77381 in log/3/server/ftp_server.pid 09:40:34.209678 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.458532 Running IPv4 version 09:40:34.459013 Listening on port 42255 09:40:34.459359 Wrote pid 78183 to log/3/server/ftp_sockctrl.pid 09:40:34.459750 Wrote port 42255 to log/3/server/ftp_server.port 09:40:34.461178 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 104 === End of file server.cmd === Start of file valgrind104 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind119 ../src/curl -q --output log/11/curl119.out --include --trace-ascii log/11/trace119 --trace-config all --trace-time ftp://127.0.0.1:39847/119 -P - > log/11/stdout119 2> log/11/stderr119 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind116 ../src/curl -q --output log/23/curl116.out --include --trace-ascii log/23/trace116 --trace-config all --trace-time ftp://127.0.0.1:35595/116 -P 1.2.3.4 > log/23/stdout116 2> log/23/stderr116 On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind104 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/44/server/ftp_server.pid" --logfile "log/44/ftp_server.log" --logdir "log/44" --portfile "log/44/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41125 (log/44/server/ftp_server.port) RUN: FTP server is PID 77468 port 41125 * pid ftp => 77468 77468 test 0110...[FTP download resume with set limit] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind110 ../src/curl -q --output log/44/curl110.out --include --trace-ascii log/44/trace110 --trace-config all --trace-time ftp://127.0.0.1:41125/110 -C 20 > log/44/stdout110 2> log/44/stderr110 110: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 110 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind110 ../src/curl -q --output log/44/curl110.out --include --trace-ascii log/44/trace110 --trace-config all --trace-time ftp://127.0.0.1:41125/110 -C 20 > log/44/stdout110 2> log/44/stderr110 === End of file commands.log === Start of file ftp_server.log 09:40:34.345059 FTP server listens on port IPv4/41125 09:40:34.345971 logged pid 77468 in log/44/server/ftp_server.pid 09:40:34.346263 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.595600 Running IPv4 version 09:40:34.596136 Listening on port 41125 09:40:34.597317 Wrote pid 78370 to log/44/server/ftp_sockctrl.pid 09:40:34.597932 Wrote port 41125 to log/44/server/ftp_server.port 09:40:34.598093 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 110 === End of file server.cmd === Start of file valgrind110 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind110 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/11/server/ftp_server.pid" --logfile "log/11/ftp_server.log" --logdir "log/11" --portfile "log/11/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39847 (log/11/server/ftp_server.port) RUN: FTP server is PID 77498 port 39847 * pid ftp => 77498 77498 test 0119...[FTP download, failed RETR with PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind119 ../src/curl -q --output log/11/curl119.out --include --trace-ascii log/11/trace119 --trace-config all --trace-time ftp://127.0.0.1:39847/119 -P - > log/11/stdout119 2> log/11/stderr119 119: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 119 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind119 ../src/curl -q --output log/11/curl119.out --include --trace-ascii log/11/trace119 --trace-config all --trace-time ftp://127.0.0.1:39847/119 -P - > log/11/stdout119 2> log/11/stderr119 === End of file commands.log === Start of file ftp_server.log 09:40:34.245133 FTP server listens on port IPv4/39847 09:40:34.247354 logged pid 77498 in log/11/server/ftp_server.pid 09:40:34.247668 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.496137 Running IPv4 version 09:40:34.496849 Listening on port 39847 09:40:34.497246 Wrote pid 78224 to log/11/server/ftp_sockctrl.pid 09:40:34.497867 Wrote port 39847 to log/11/server/ftp_server.port 09:40:34.498055 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY RETR 314 bluah you f00l REPLY SIZE 500 command not understood Testnum 119 === End of file server.cmd === Start of file valgrind119 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind119 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/23/server/ftp_server.pid" --logfile "log/23/ftp_server.log" --logdir "log/23" --portfile "log/23/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35595 (log/23/server/ftp_server.port) RUN: FTP server is PID 77500 port 35595 * pid ftp => 77500 77500 test 0116...[FTP download, failed PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind125 ../src/curl -q --output log/53/curl125.out --include --trace-ascii log/53/trace125 --trace-config all --trace-time ftp://127.0.0.1:42281/path/to/file/125 > log/53/stdout125 2> log/53/stderr125 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind101 ../src/curl -q --output log/9/curl101.out --include --trace-ascii log/9/trace101 --trace-config all --trace-time ftp://127.0.0.1:36293/ -P 127.0.0.1 > log/9/stdout101 2> log/9/stderr101 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind102 ../src/curl -q --output log/5/curl102.out --include --trace-ascii log/5/trace102 --trace-config all --trace-time ftp://127.0.0.1:42831/102 > log/5/stdout102 2> log/5/stderr102 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind103 ../src/curl -q --output log/4/curl103.out --include --trace-ascii log/4/trace103 --trace-config all --trace-time ftp://127.0.0.1:39979/a/path/103 -P - > log/4/stdout103 2> log/4/stderr103 ests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind116 ../src/curl -q --output log/23/curl116.out --include --trace-ascii log/23/trace116 --trace-config all --trace-time ftp://127.0.0.1:35595/116 -P 1.2.3.4 > log/23/stdout116 2> log/23/stderr116 116: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 116 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind116 ../src/curl -q --output log/23/curl116.out --include --trace-ascii log/23/trace116 --trace-config all --trace-time ftp://127.0.0.1:35595/116 -P 1.2.3.4 > log/23/stdout116 2> log/23/stderr116 === End of file commands.log === Start of file ftp_server.log 09:40:34.326985 FTP server listens on port IPv4/35595 09:40:34.329846 logged pid 77500 in log/23/server/ftp_server.pid 09:40:34.330185 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.578026 Running IPv4 version 09:40:34.578622 Listening on port 35595 09:40:34.579055 Wrote pid 78327 to log/23/server/ftp_sockctrl.pid 09:40:34.579367 Wrote port 35595 to log/23/server/ftp_server.port 09:40:34.579675 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPRT 500 we don't like EPRT now REPLY PORT 314 bluah you f00l Testnum 116 === End of file server.cmd === Start of file valgrind116 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind116 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/9/server/ftp_server.pid" --logfile "log/9/ftp_server.log" --logdir "log/9" --portfile "log/9/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36293 (log/9/server/ftp_server.port) RUN: FTP server is PID 77386 port 36293 * pid ftp => 77386 77386 test 0101...[FTP dir list, PORT with specified IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind101 ../src/curl -q --output log/9/curl101.out --include --trace-ascii log/9/trace101 --trace-config all --trace-time ftp://127.0.0.1:36293/ -P 127.0.0.1 > log/9/stdout101 2> log/9/stderr101 101: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 101 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind101 ../src/curl -q --output log/9/curl101.out --include --trace-ascii log/9/trace101 --trace-config all --trace-time ftp://127.0.0.1:36293/ -P 127.0.0.1 > log/9/stdout101 2> log/9/stderr101 === End of file commands.log === Start of file ftp_server.log 09:40:33.948392 FTP server listens on port IPv4/36293 09:40:33.949323 logged pid 77386 in log/9/server/ftp_server.pid 09:40:33.949586 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:33.199628 Running IPv4 version 09:40:33.200272 Listening on port 36293 09:40:33.200778 Wrote pid 77913 to log/9/server/ftp_sockctrl.pid 09:40:33.201110 Wrote port 36293 to log/9/server/ftp_server.port 09:40:33.201273 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 101 === End of file server.cmd === Start of file valgrind101 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind101 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/53/server/ftp_server.pid" --logfile "log/53/ftp_server.log" --logdir "log/53" --portfile "log/53/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42281 (log/53/server/ftp_server.port) RUN: FTP server is PID 77508 port 42281 * pid ftp => 77508 77508 test 0125...[FTP download, failed CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind125 ../src/curl -q --output log/53/curl125.out --include --trace-ascii log/53/trace125 --trace-config all --trace-time ftp://127.0.0.1:42281/path/to/file/125 > log/53/stdout125 2> log/53/stderr125 125: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 125 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind125 ../src/curl -q --output log/53/curl125.out --include --trace-ascii log/53/trace125 --trace-config all --trace-time ftp://127.0.0.1:42281/path/to/file/125 > log/53/stdout125 2> log/53/stderr125 === End of file commands.log === Start of file ftp_server.log 09:40:34.102849 FTP server listens on port IPv4/42281 09:40:34.103735 logged pid 77508 in log/53/server/ftp_server.piCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind128 ../src/curl -q --output log/51/curl128.out --include --trace-ascii log/51/trace128 --trace-config all --trace-time ftp://127.0.0.1:42737/128 -T log/51/upload128 --crlf > log/51/stdout128 2> log/51/stderr128 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind127 ../src/curl -q --output log/48/curl127.out --include --trace-ascii log/48/trace127 --trace-config all --trace-time ftp://127.0.0.1:39061/path/to/file/127 --disable-epsv > log/48/stdout127 2> log/48/stderr127 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind105 ../src/curl -q --output log/2/curl105.out --include --trace-ascii log/2/trace105 --trace-config all --trace-time ftp://userdude:passfellow@127.0.0.1:36419/105 --use-ascii > log/2/stdout105 2> log/2/stderr105 d 09:40:34.104076 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.353937 Running IPv4 version 09:40:34.354832 Listening on port 42281 09:40:34.355254 Wrote pid 78038 to log/53/server/ftp_sockctrl.pid 09:40:34.355687 Wrote port 42281 to log/53/server/ftp_server.port 09:40:34.355858 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY CWD 314 bluah you f00l Testnum 125 === End of file server.cmd === Start of file valgrind125 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind125 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/ftp_server.pid" --logfile "log/4/ftp_server.log" --logdir "log/4" --portfile "log/4/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39979 (log/4/server/ftp_server.port) RUN: FTP server is PID 77399 port 39979 * pid ftp => 77399 77399 test 0103...[FTP RETR PORT with CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind103 ../src/curl -q --output log/4/curl103.out --include --trace-ascii log/4/trace103 --trace-config all --trace-time ftp://127.0.0.1:39979/a/path/103 -P - > log/4/stdout103 2> log/4/stderr103 103: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 103 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind103 ../src/curl -q --output log/4/curl103.out --include --trace-ascii log/4/trace103 --trace-config all --trace-time ftp://127.0.0.1:39979/a/path/103 -P - > log/4/stdout103 2> log/4/stderr103 === End of file commands.log === Start of file ftp_server.log 09:40:34.326433 FTP server listens on port IPv4/39979 09:40:34.327373 logged pid 77399 in log/4/server/ftp_server.pid 09:40:34.327635 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.577738 Running IPv4 version 09:40:34.578377 Listening on port 39979 09:40:34.578889 Wrote pid 78345 to log/4/server/ftp_sockctrl.pid 09:40:34.579231 Wrote port 39979 to log/4/server/ftp_server.port 09:40:34.579387 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 103 === End of file server.cmd === Start of file valgrind103 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind103 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/ftp_server.pid" --logfile "log/5/ftp_server.log" --logdir "log/5" --portfile "log/5/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42831 (log/5/server/ftp_server.port) RUN: FTP server is PID 77456 port 42831 * pid ftp => 77456 77456 test 0102...[FTP RETR PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind102 ../src/curl -q --output log/5/curl102.out --include --trace-ascii log/5/trace102 --trace-config all --trace-time ftp://127.0.0.1:42831/102 > log/5/stdout102 2> log/5/stderr102 102: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 102 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind102 ../src/curl -q --output log/5/curl102.out --include --trace-ascii log/5/trace102 --trace-config all --trace-time ftp://127.0.0.1:42831/102 > log/5/stdout102 2> log/5/stderr102 === End of file commands.log === Start of file ftp_server.log 09:40:34.013272 FTP server listens on port IPv4/42831 09:40:34.014562 logged pid 77456 in log/5/server/ftp_server.pid 09:40:34.014912 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.262097 Running IPv4 version 09:40:34.262730 Listening on port 42831 09:40:34.263275 Wrote pid 77958 to log/5/server/ftp_sockctrl.pid 09:40:34.263742 Wrote port 42831 to log/5/server/ftp_server.port 09:40:34.263958 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 102 === End of file server.cmd === Start of file valgrind102 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind83 ../src/curl -q --output log/38/curl83.out --include --trace-ascii log/38/trace83 --trace-config all --trace-time http://test.83:33511/we/want/that/page/83 -p -x 127.0.0.1:34063 --user 'iam:my:;self' > log/38/stdout83 2> log/38/stderr83 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind121 ../src/curl -q --output log/52/curl121.out --include --trace-ascii log/52/trace121 --trace-config all --trace-time ftp://127.0.0.1:42589/121 -Q "-DELE after_transfer" -Q "DELE before_transfer" > log/52/stdout121 2> log/52/stderr121 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind117 ../src/curl -q --output log/22/curl117.out --include --trace-ascii log/22/trace117 --trace-config all --trace-time ftp://127.0.0.1:41867/117 > log/22/stdout117 2> log/22/stderr117 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind108 ../src/curl -q --output log/56/curl108.out --include --trace-ascii log/56/trace108 --trace-config all --trace-time ftp://127.0.0.1:36539/CWD/STOR/RETR/108 -T log/56/upload108 -P - > log/56/stdout108 2> log/56/stderr108 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind126 ../src/curl -q --output log/7/curl126.out --include --trace-ascii log/7/trace126 --trace-config all --trace-time ftp://127.0.0.1:41691/blalbla/lululul/126 > log/7/stdout126 2> log/7/stderr126 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind118 ../src/curl -q --output log/12/curl118.out --include --trace-ascii log/12/trace118 --trace-config all --trace-time ftp://127.0.0.1:32959/118 > log/12/stdout118 2> log/12/stderr118 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind107 ../src/curl -q --output log/63/curl107.out --include --trace-ascii log/63/trace107 --trace-config all --trace-time ftp://127.0.0.1:33267/107 -T log/63/test107.txt > log/63/stdout107 2> log/63/stderr107 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind85 ../src/curl -q --output log/36/curl85.out --include --trace-ascii log/36/trace85 --trace-config all --trace-time http://127.0.0.1:44255/we/want/that/page/85 -x 127.0.0.1:44255 --user iam:myself --proxy-user testing:this > log/36/stdout85 2> log/36/stderr85 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind122 ../src/curl -q --output log/47/curl122.out --include --trace-ascii log/47/trace122 --trace-config all --trace-time ftp://127.0.0.1:45575/122 -C 5 > log/47/stdout122 2> log/47/stderr122 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind124 ../src/curl -q --output log/55/curl124.out --include --trace-ascii log/55/trace124 --trace-config all --trace-time ftp://127.0.0.1:40139/124 > log/55/stdout124 2> log/55/stderr124 r term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind102 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/51/server/ftp_server.pid" --logfile "log/51/ftp_server.log" --logdir "log/51" --portfile "log/51/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42737 (log/51/server/ftp_server.port) RUN: FTP server is PID 77543 port 42737 * pid ftp => 77543 77543 test 0128...[FTP upload with --crlf] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind128 ../src/curl -q --output log/51/curl128.out --include --trace-ascii log/51/trace128 --trace-config all --trace-time ftp://127.0.0.1:42737/128 -T log/51/upload128 --crlf > log/51/stdout128 2> log/51/stderr128 128: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 128 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind128 ../src/curl -q --output log/51/curl128.out --include --trace-ascii log/51/trace128 --trace-config all --trace-time ftp://127.0.0.1:42737/128 -T log/51/upload128 --crlf > log/51/stdout128 2> log/51/stderr128 === End of file commands.log === Start of file ftp_server.log 09:40:34.516223 FTP server listens on port IPv4/42737 09:40:34.517187 logged pid 77543 in log/51/server/ftp_server.pid 09:40:34.517443 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.761959 Running IPv4 version 09:40:34.762738 Listening on port 42737 09:40:34.763189 Wrote pid 78635 to log/51/server/ftp_sockctrl.pid 09:40:34.768926 Wrote port 42737 to log/51/server/ftp_server.port 09:40:34.769155 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 128 === End of file server.cmd === Start of file upload128 file with Unix newlines meant to be converted with the --crlf option === End of file upload128 === Start of file valgrind128 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind128 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/2/server/ftp_server.pid" --logfile "log/2/ftp_server.log" --logdir "log/2" --portfile "log/2/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36419 (log/2/server/ftp_server.port) RUN: FTP server is PID 77416 port 36419 * pid ftp => 77416 77416 test 0105...[FTP user+password in URL and ASCII transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind105 ../src/curl -q --output log/2/curl105.out --include --trace-ascii log/2/trace105 --trace-config all --trace-time ftp://userdude:passfellow@127.0.0.1:36419/105 --use-ascii > log/2/stdout105 2> log/2/stderr105 105: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 105 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind105 ../src/curl -q --output log/2/curl105.out --include --trace-ascii log/2/trace105 --trace-config all --trace-time ftp://userdude:passfellow@127.0.0.1:36419/105 --use-ascii > log/2/stdout105 2> log/2/stderr105 === End of file commands.log === Start of file ftp_server.log 09:40:34.379047 FTP server listens on port IPv4/36419 09:40:34.380011 logged pid 77416 in log/2/server/ftp_server.pid 09:40:34.380296 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.630311 Running IPv4 version 09:40:34.630967 Listening on port 36419 09:40:34.631388 Wrote pid 78421 to log/2/server/ftp_sockctrl.pid 09:40:34.631919 Wrote port 36419 to log/2/server/ftp_server.port 09:40:34.632098 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 105 === End of file server.cmd === Start of file valgrind105 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind105 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/48/server/ftp_server.pid" --logfile "log/48/ftp_server.log" --logdir "log/48" --portfile "log/48/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39061 (log/48/server/ftp_server.port) RUN: FTP server is PID 77544 port 39061 * pid ftp => 77544 77544 test 0127...[FTP --disable-epsv] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind127 ../src/curl -q --output log/48/curl127.out --include --trace-ascii log/48/trace127 --trace-config all --trace-time ftp://127.0.0.1:39061/path/to/file/127 --disable-epsv > log/48/stdout127 2> log/48/stderr127 127: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 127 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind127 ../src/curl -q --output log/48/curl127.out --include --trace-ascii log/48/trace127 --trace-config all --trace-time ftp://127.0.0.1:39061/path/to/file/127 --disable-epsv > log/48/stdout127 2> log/48/stderr127 === End of file commands.log === Start of file ftp_server.log 09:40:34.458334 FTP server listens on port IPv4/39061 09:40:34.459454 logged pid 77544 in log/48/server/ftp_server.pid 09:40:34.459820 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.708227 Running IPv4 version 09:40:34.708943 Listening on port 39061 09:40:34.709385 Wrote pid 78524 to log/48/server/ftp_sockctrl.pid 09:40:34.709843 Wrote port 39061 to log/48/server/ftp_server.port 09:40:34.709993 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 127 === End of file server.cmd === Start of file valgrind127 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind127 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/7/server/ftp_server.pid" --logfile "log/7/ftp_server.log" --logdir "log/7" --portfile "log/7/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41691 (log/7/server/ftp_server.port) RUN: FTP server is PID 77570 port 41691 * pid ftp => 77570 77570 test 0126...[FTP download with multiple replies at once in RETR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind126 ../src/curl -q --output log/7/curl126.out --include --trace-ascii log/7/trace126 --trace-config all --trace-time ftp://127.0.0.1:41691/blalbla/lululul/126 > log/7/stdout126 2> log/7/stderr126 126: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 126 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind126 ../src/curl -q --output log/7/curl126.out --include --trace-ascii log/7/trace126 --trace-config all --trace-time ftp://127.0.0.1:41691/blalbla/lululul/126 > log/7/stdout126 2> log/7/stderr126 === End of file commands.log === Start of file ftp_server.log 09:40:34.331496 FTP server listens on port IPv4/41691 09:40:34.332590 logged pid 77570 in log/7/server/ftp_server.pid 09:40:34.332959 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.582369 Running IPv4 version 09:40:34.583037 Listening on port 41691 09:40:34.583420 Wrote pid 78354 to log/7/server/ftp_sockctrl.pid 09:40:34.583857 Wrote port 41691 to log/7/server/ftp_server.port 09:40:34.584156 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd RETRWEIRDO Testnum 126 === End of file server.cmd === Start of file valgrind126 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind126 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/12/server/ftp_server.pid" --logfile "log/12/ftp_server.log" --logdir "log/12" --portfile "log/12/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 32959 (log/12/server/ftp_server.port) RUN: FTP server is PID 77501 port 32959 * pid ftp => 77501 77501 test 0118...[FTP download, failed RETR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind118 ../src/curl -q --output log/12/curl118.out --include --trace-ascii log/12/trace118 --trace-config all --trace-time ftp://127.0.0.1:32959/118 > log/12/stdout118 2> log/12/stderr118 118: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 118 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck -CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind130 ../src/curl -q --output log/58/curl130.out --include --trace-ascii log/58/trace130 --trace-config all --trace-time --netrc-optional --netrc-file log/58/netrc130 ftp://127.0.0.1:38901/ > log/58/stdout130 2> log/58/stderr130 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind132 ../src/curl -q --output log/64/curl132.out --include --trace-ascii log/64/trace132 --trace-config all --trace-time --netrc-optional --netrc-file log/64/netrc132 ftp://mary:mark@127.0.0.1:37199/ > log/64/stdout132 2> log/64/stderr132 -quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind118 ../src/curl -q --output log/12/curl118.out --include --trace-ascii log/12/trace118 --trace-config all --trace-time ftp://127.0.0.1:32959/118 > log/12/stdout118 2> log/12/stderr118 === End of file commands.log === Start of file ftp_server.log 09:40:34.307660 FTP server listens on port IPv4/32959 09:40:34.308885 logged pid 77501 in log/12/server/ftp_server.pid 09:40:34.309164 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.558046 Running IPv4 version 09:40:34.558653 Listening on port 32959 09:40:34.559043 Wrote pid 78311 to log/12/server/ftp_sockctrl.pid 09:40:34.559365 Wrote port 32959 to log/12/server/ftp_server.port 09:40:34.559598 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY RETR 314 bluah you f00l REPLY EPSV 314 bluah you f00l REPLY SIZE 500 command not understood Testnum 118 === End of file server.cmd === Start of file valgrind118 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind118 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/22/server/ftp_server.pid" --logfile "log/22/ftp_server.log" --logdir "log/22" --portfile "log/22/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41867 (log/22/server/ftp_server.port) RUN: FTP server is PID 77494 port 41867 * pid ftp => 77494 77494 test 0117...[FTP download, failed TYPE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind117 ../src/curl -q --output log/22/curl117.out --include --trace-ascii log/22/trace117 --trace-config all --trace-time ftp://127.0.0.1:41867/117 > log/22/stdout117 2> log/22/stderr117 117: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 117 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind117 ../src/curl -q --output log/22/curl117.out --include --trace-ascii log/22/trace117 --trace-config all --trace-time ftp://127.0.0.1:41867/117 > log/22/stdout117 2> log/22/stderr117 === End of file commands.log === Start of file ftp_server.log 09:40:34.304368 FTP server listens on port IPv4/41867 09:40:34.305296 logged pid 77494 in log/22/server/ftp_server.pid 09:40:34.305559 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.554925 Running IPv4 version 09:40:34.556368 Listening on port 41867 09:40:34.556917 Wrote pid 78301 to log/22/server/ftp_sockctrl.pid 09:40:34.557295 Wrote port 41867 to log/22/server/ftp_server.port 09:40:34.557557 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 314 bluah you f00l REPLY TYPE 314 bluah you f00l Testnum 117 === End of file server.cmd === Start of file valgrind117 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind117 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/36/server/http_server.pid" --logfile "log/36/http_server.log" --logdir "log/36" --portfile log/36/server/http_server.port --config log/36/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 77175 port 44255 * pid http => 77175 77175 test 0085...[HTTP over proxy with site and proxy authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind85 ../src/curl -q --output log/36/curl85.out --include --trace-ascii log/36/trace85 --trace-config all --trace-time http://127.0.0.1:44255/we/want/that/page/85 -x 127.0.0.1:44255 --user iam:myself --proxy-user testing:this > log/36/stdout85 2> log/36/stderr85 85: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 85 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind85 ../src/curl -q --output log/36/curl85.out --include --trace-ascii log/36/trace85 --trace-config all --trace-time http://127.0.0.1:44255/we/want/that/page/85 -x 127.0.0.1:44255 --user iam:myself --proxy-user testing:this > log/36/stdout85 2> log/36/stderr85 === End of file commands.log === Start of file http_server.log 09:40:33.939545 Running HTTP IPv4 version on port 44255 09:40:33.940274 Wrote pid 77175 to log/36/server/http_server.pid 09:40:33.940727 Wrote port 44255 to log/36/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 85 === End of file server.cmd === Start of file valgrind85 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. DeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind95 ../src/curl -q --output log/17/curl95.out --include --trace-ascii log/17/trace95 --trace-config all --trace-time http://test.95:44383/we/want/that/page/95 -p -x 127.0.0.1:46847 -d "datatopost=ohthatsfunyesyes" > log/17/stdout95 2> log/17/stderr95 tails of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind85 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/38/server/http2_server.pid" --logfile "log/38/http2_server.log" --logdir "log/38" --portfile log/38/server/http2_server.port --config log/38/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 77705 port 34063 * pid http-proxy => 77705 77705 test 0083...[HTTP over proxy-tunnel with site authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind83 ../src/curl -q --output log/38/curl83.out --include --trace-ascii log/38/trace83 --trace-config all --trace-time http://test.83:33511/we/want/that/page/83 -p -x 127.0.0.1:34063 --user 'iam:my:;self' > log/38/stdout83 2> log/38/stderr83 83: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 83 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind83 ../src/curl -q --output log/38/curl83.out --include --trace-ascii log/38/trace83 --trace-config all --trace-time http://test.83:33511/we/want/that/page/83 -p -x 127.0.0.1:34063 --user 'iam:my:;self' > log/38/stdout83 2> log/38/stderr83 === End of file commands.log === Start of file http2_server.log 09:40:33.248062 Run as proxy, CONNECT to host 127.0.0.1 09:40:33.248878 Running HTTP IPv4 version on port 34063 09:40:33.249303 Wrote pid 77705 to log/38/server/http2_server.pid 09:40:33.249700 Wrote port 34063 to log/38/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:40:33.904920 ====> Client connect 09:40:33.905254 accept_connection 3 returned 4 09:40:33.905415 accept_connection 3 returned 0 09:40:33.915646 Read 93 bytes 09:40:33.915796 Process 93 bytes request 09:40:33.915898 Got request: GET /verifiedserver HTTP/1.1 09:40:33.915990 Are-we-friendly question received 09:40:33.916249 Wrote request (93 bytes) input to log/38/server.input 09:40:33.916572 Identifying ourselves as friends 09:40:33.917364 Response sent (56 bytes) and written to log/38/server.response 09:40:33.917558 special request received, no persistency 09:40:33.917651 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 83 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind83 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind83 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/47/server/ftp_server.pid" --logfile "log/47/ftp_server.log" --logdir "log/47" --portfile "log/47/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45575 (log/47/server/ftp_server.port) RUN: FTP server is PID 77499 port 45575 * pid ftp => 77499 77499 test 0122...[FTP download resume with whole file already downloaded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind122 ../src/curl -q --output log/47/curl122.out --include --trace-ascii log/47/trace122 --trace-config all --trace-time ftp://127.0.0.1:45575/122 -C 5 > log/47/stdout122 2> log/47/stderr122 122: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 122 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind122 ../src/curl -q --output log/47/curl122.out --include --trace-ascii log/47/trace122 --trace-config all --trace-time ftp://127.0.0.1:45575/122 -C 5 > log/47/stdout122 2> log/47/stderr122 === End of file commands.log === Start of file ftp_server.log 09:40:34.206610 FTP server listens on port IPv4/45575 09:40:34.207653 logged pid 77499 in log/47/server/ftp_server.pid 09:40:34.208056 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.458236 Running IPv4 version 09:40:34.458865 Listening on port 45575 09:40:34.459244 Wrote pid 78188 to log/47/server/ftp_sockctrl.pid 09:40:34.459641 Wrote port 45575 to log/47/server/ftp_server.port 09:40:34.459791 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 122 === End of file server.cmd === Start of file valgrind122 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind122 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/52/server/ftp_server.pid" --logfile "log/52/ftp_server.log" --logdir "log/52" --portfile "log/52/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42589 (log/52/server/ftp_server.port) RUN: FTP server is PID 77504 port 42589 * pid ftp => 77504 77504 test 0121...[ftp download with post- and pre-transfer delete operations] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind121 ../src/curl -q --output log/52/curl121.out --include --trace-ascii log/52/trace121 --trace-config all --trace-time ftp://127.0.0.1:42589/121 -Q "-DELE after_transfer" -Q "DELE before_transfer" > log/52/stdout121 2> log/52/stderr121 121: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 121 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind121 ../src/curl -q --output log/52/curl121.out --include --trace-ascii log/52/trace121 --trace-config all --trace-time ftp://127.0.0.1:42589/121 -Q "-DELE after_transfer" -Q "DELE before_transfer" > log/52/stdout121 2> log/52/stderr121 === End of file commands.log === Start of file ftp_server.log 09:40:34.104241 FTP server listens on port IPv4/42589 09:40:34.106918 logged pid 77504 in log/52/server/ftp_server.pid 09:40:34.107538 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.351073 Running IPv4 version 09:40:34.351744 Listening on port 42589 09:40:34.352131 Wrote pid 78042 to log/52/server/ftp_sockctrl.pid 09:40:34.356636 Wrote port 42589 to log/52/server/ftp_server.port 09:40:34.356873 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 121 === End of file server.cmd === Start of file valgrind121 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind121 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/55/server/ftp_server.pid" --logfile "log/55/ftp_server.log" --logdir "log/55" --portfile "log/55/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40139 (log/55/server/ftp_server.port) RUN: FTP server is PID 77586 port 40139 * pid ftp => 77586 77586 test 0124...[FTP download, failed PWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind124 ../src/curl -q --output log/55/curl124.out --include --trace-ascii log/55/trace124 --trace-config all --trace-time ftp://127.0.0.1:40139/124 > log/55/stdout124 2> log/55/stderr124 124: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 124 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind124 ../src/curl -q --output log/55/curl124.out --include --trace-ascii log/55/trace124 --trace-config all --trace-time ftp://127.0.0.1:40139/124 > log/55/stdout124 2> log/55/stderr124 === End of file commands.log === Start of file ftp_server.log 09:40:34.067287 FTP server listens on port IPv4/40139 09:40:34.068262 logged pid 77586 in log/55/server/ftp_server.pid 09:40:34.068525 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.314877 Running IPv4 version 09:40:34.316598 Listening on port 40139 09:40:34.317031 Wrote pid 77998 to log/55/server/ftp_sockctrl.pid 09:40:34.317379 Wrote port 40139 to log/55/server/ftp_server.port 09:40:34.317655 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY PWD 314 bluah you f00l REPLY EPSV 314 bluah you f00l Testnum 124 === End of file server.cmd === Start of file valgrind124 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind124 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/56/server/ftp_server.pid" --logfile "log/56/ftp_server.log" --logdir "log/56" --portfile "log/56/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36539 (log/56/server/ftp_server.port) RUN: FTP server is PID 77376 port 36539 * pid ftp => 77376 77376 test 0108...[FTP PORT upload with CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind108 ../src/curl -q --output log/56/curl108.out --include --trace-ascii log/56/trace108 --trace-config all --trace-time ftp://127.0.0.1:36539/CWD/STOR/RETR/108 -T log/56/upload108 -P - > log/56/stdout108 2> log/56/stderr108 108: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 108 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind108 ../src/curl -q --output log/56/curl108.out --include --trace-ascii log/56/trace108 --trace-config all --trace-time ftp://127.0.0.1:36539/CWD/STOR/RETR/108 -T log/56/upload108 -P - > log/56/stdout108 2> log/56/stderr108 === End of file commands.log === Start of file ftp_server.log 09:40:34.230229 FTP server listens on port IPv4/36539 09:40:34.231275 logged pid 77376 in log/56/server/ftp_server.pid 09:40:34.231633 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.468179 Running IPv4 version 09:40:34.468829 Listening on port 36539 09:40:34.481601 Wrote pid 78179 to log/56/server/ftp_sockctrl.pid 09:40:34.482061 Wrote port 36539 to log/56/server/ftp_server.port 09:40:34.482296 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 108 === End of file server.cmd === Start of file upload108 Moooooooooooo upload this === End of file upload108 === Start of file valgrind108 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind108 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/63/server/ftp_server.pid" --logfile "log/63/ftp_server.log" --logdir "log/63" --portfile "log/63/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33267 (log/63/server/ftp_server.port) RUN: FTP server is PID 77431 port 33267 * pid ftp => 77431 77431 test 0107...[FTP PASV upload file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind107 ../src/curl -q --output log/63/curl107.out --include --trace-ascii log/63/trace107 --trace-config all --trace-time ftp://127.0.0.1:33267/107 -T log/63/test107.txt > log/63/stdout107 2> log/63/stderr107 107: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 107 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind107 ../src/curl -q --output log/63/curl107.out --include --trace-ascii log/63/trace107 --trace-config all --trace-time ftp://127.0.0.1:33267/107 -T log/63/test107.txt > log/63/stdout107 2> log/63/stderr107 === End of file commands.log === Start of file ftp_server.log 09:40:34.184140 FTP server listens on port IPv4/33267 09:40:34.185136 logged pid 77431 in log/63/server/ftp_server.pid 09:40:34.185444 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.435242 Running IPv4 version 09:40:34.435950 Listening on port 33267 09:40:34.436383 Wrote pid 78151 to log/63/server/ftp_sockctrl.pid 09:40:34.436844 Wrote port 33267 to log/63/server/ftp_server.port 09:40:34.437025 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 107 === End of file server.cmd === Start of file test107.txt data to see that FTP works so does it? === End of file test107.txt === Start of file valgrind107 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind107 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/17/server/http2_server.pid" --logfile "log/17/http2_server.log" --logdir "log/17" --portfile log/17/server/http2_server.port --config log/17/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 77835 port 468CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind131 ../src/curl -q --output log/50/curl131.out --include --trace-ascii log/50/trace131 --trace-config all --trace-time --netrc-optional --netrc-file log/50/netrc131 ftp://user2@127.0.0.1:36567/ > log/50/stdout131 2> log/50/stderr131 47 * pid http-proxy => 77835 77835 test 0095...[HTTP over proxytunnel using POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind95 ../src/curl -q --output log/17/curl95.out --include --trace-ascii log/17/trace95 --trace-config all --trace-time http://test.95:44383/we/want/that/page/95 -p -x 127.0.0.1:46847 -d "datatopost=ohthatsfunyesyes" > log/17/stdout95 2> log/17/stderr95 95: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 95 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind95 ../src/curl -q --output log/17/curl95.out --include --trace-ascii log/17/trace95 --trace-config all --trace-time http://test.95:44383/we/want/that/page/95 -p -x 127.0.0.1:46847 -d "datatopost=ohthatsfunyesyes" > log/17/stdout95 2> log/17/stderr95 === End of file commands.log === Start of file http2_server.log 09:40:34.563855 Run as proxy, CONNECT to host 127.0.0.1 09:40:34.564896 Running HTTP IPv4 version on port 46847 09:40:34.565413 Wrote pid 77835 to log/17/server/http2_server.pid 09:40:34.566104 Wrote port 46847 to log/17/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:40:34.053244 ====> Client connect 09:40:34.053734 accept_connection 3 returned 4 09:40:34.053946 accept_connection 3 returned 0 09:40:34.054695 Read 93 bytes 09:40:34.054845 Process 93 bytes request 09:40:34.054929 Got request: GET /verifiedserver HTTP/1.1 09:40:34.055002 Are-we-friendly question received 09:40:34.055224 Wrote request (93 bytes) input to log/17/server.input 09:40:34.055546 Identifying ourselves as friends 09:40:34.056145 Response sent (56 bytes) and written to log/17/server.response 09:40:34.056251 special request received, no persistency 09:40:34.056311 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 95 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind95 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind95 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/58/server/ftp_server.pid" --logfile "log/58/ftp_server.log" --logdir "log/58" --portfile "log/58/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38901 (log/58/server/ftp_server.port) RUN: FTP server is PID 77973 port 38901 * pid ftp => 77973 77973 test 0130...[FTP (optional .netrc; no user/pass) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind130 ../src/curl -q --output log/58/curl130.out --include --trace-ascii log/58/trace130 --trace-config all --trace-time --netrc-optional --netrc-file log/58/netrc130 ftp://127.0.0.1:38901/ > log/58/stdout130 2> log/58/stderr130 130: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 130 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind130 ../src/curl -q --output log/58/curl130.out --include --trace-ascii log/58/trace130 --trace-config all --trace-time --netrc-optional --netrc-file log/58/netrc130 ftp://127.0.0.1:38901/ > log/58/stdout130 2> log/58/stderr130 === End of file commands.log === Start of file ftp_server.log 09:40:34.513111 FTP server listens on port IPv4/38901 09:40:34.514023 logged pid 77973 in log/58/server/ftp_server.pid 09:40:34.514296 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.763327 Running IPv4 version 09:40:34.763950 Listening on port 38901 09:40:34.764362 Wrote pid 78633 to log/58/server/ftp_sockctrl.pid 09:40:34.765860 Wrote port 38901 to log/58/server/ftp_server.port 09:40:34.766026 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file netrc130 # the following two lines were created while testing curl # machine 127.0.0.1 login user1 password commented machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 default login userdef password passwddef === End of file netrc130 === Start of file server.cmd Testnum 130 === End of file server.cmd === Start of file valgrind130 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind80 ../src/curl -q --output log/43/curl80.out --include --trace-ascii log/43/trace80 --trace-config all --trace-time http://test.80:41267/we/want/that/page/80 -p --proxy1.0 127.0.0.1:44417 --user iam:myself --proxy-user youare:yourself -A "" > log/43/stdout80 2> log/43/stderr80 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind137 ../src/curl -q --output log/54/curl137.out --include --trace-ascii log/54/trace137 --trace-config all --trace-time ftp://127.0.0.1:41829/blalbla/lululul/137 > log/54/stdout137 2> log/54/stderr137 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind133 ../src/curl -q --output log/45/curl133.out --include --trace-ascii log/45/trace133 --trace-config all --trace-time -n --netrc-file log/45/netrc133 ftp://mary:mark@127.0.0.1:41719/ > log/45/stdout133 2> log/45/stderr133 Sorry. === End of file valgrind130 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/64/server/ftp_server.pid" --logfile "log/64/ftp_server.log" --logdir "log/64" --portfile "log/64/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37199 (log/64/server/ftp_server.port) RUN: FTP server is PID 78009 port 37199 * pid ftp => 78009 78009 test 0132...[FTP (optional .netrc; user/passwd supplied) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind132 ../src/curl -q --output log/64/curl132.out --include --trace-ascii log/64/trace132 --trace-config all --trace-time --netrc-optional --netrc-file log/64/netrc132 ftp://mary:mark@127.0.0.1:37199/ > log/64/stdout132 2> log/64/stderr132 132: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 132 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind132 ../src/curl -q --output log/64/curl132.out --include --trace-ascii log/64/trace132 --trace-config all --trace-time --netrc-optional --netrc-file log/64/netrc132 ftp://mary:mark@127.0.0.1:37199/ > log/64/stdout132 2> log/64/stderr132 === End of file commands.log === Start of file ftp_server.log 09:40:34.482064 FTP server listens on port IPv4/37199 09:40:34.483154 logged pid 78009 in log/64/server/ftp_server.pid 09:40:34.483438 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.733153 Running IPv4 version 09:40:34.733742 Listening on port 37199 09:40:34.734175 Wrote pid 78591 to log/64/server/ftp_sockctrl.pid 09:40:34.734682 Wrote port 37199 to log/64/server/ftp_server.port 09:40:34.734858 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file netrc132 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc132 === Start of file server.cmd Testnum 132 === End of file server.cmd === Start of file valgrind132 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind132 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/50/server/ftp_server.pid" --logfile "log/50/ftp_server.log" --logdir "log/50" --portfile "log/50/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36567 (log/50/server/ftp_server.port) RUN: FTP server is PID 77995 port 36567 * pid ftp => 77995 77995 test 0131...[FTP (optional .netrc; user/no pass) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind131 ../src/curl -q --output log/50/curl131.out --include --trace-ascii log/50/trace131 --trace-config all --trace-time --netrc-optional --netrc-file log/50/netrc131 ftp://user2@127.0.0.1:36567/ > log/50/stdout131 2> log/50/stderr131 131: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 131 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind131 ../src/curl -q --output log/50/curl131.out --include --trace-ascii log/50/trace131 --trace-config all --trace-time --netrc-optional --netrc-file log/50/netrc131 ftp://user2@127.0.0.1:36567/ > log/50/stdout131 2> log/50/stderr131 === End of file commands.log === Start of file ftp_server.log 09:40:34.656174 FTP server listens on port IPv4/36567 09:40:34.657203 logged pid 77995 in log/50/server/ftp_server.pid 09:40:34.657491 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.907590 Running IPv4 version 09:40:34.908146 Listening on port 36567 09:40:34.908658 Wrote pid 78857 to log/50/server/ftp_sockctrl.pid 09:40:34.908993 Wrote port 36567 to log/50/server/ftp_server.port 09:40:34.909158 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file netrc131 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc131 === Start of file server.cmd Testnum 131 === End of file server.cmd === Start of file valgrind131 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind131 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/43/server/http2_server.pid" --logfile "log/43/http2_server.log" --logdir "log/43" --portfile log/43/server/http2_server.port --config log/43/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 77906 port 44417 * pid http-proxy => 77906 7790CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind135 ../src/curl -q --output log/62/curl135.out --include --trace-ascii log/62/trace135 --trace-config all --trace-time -r 4-16 ftp://127.0.0.1:38963/135 > log/62/stdout135 2> log/62/stderr135 6 test 0080...[HTTP 1.0 CONNECT with proxytunnel and proxy+host Basic authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind80 ../src/curl -q --output log/43/curl80.out --include --trace-ascii log/43/trace80 --trace-config all --trace-time http://test.80:41267/we/want/that/page/80 -p --proxy1.0 127.0.0.1:44417 --user iam:myself --proxy-user youare:yourself -A "" > log/43/stdout80 2> log/43/stderr80 80: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 80 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind80 ../src/curl -q --output log/43/curl80.out --include --trace-ascii log/43/trace80 --trace-config all --trace-time http://test.80:41267/we/want/that/page/80 -p --proxy1.0 127.0.0.1:44417 --user iam:myself --proxy-user youare:yourself -A "" > log/43/stdout80 2> log/43/stderr80 === End of file commands.log === Start of file http2_server.log 09:40:34.430755 Run as proxy, CONNECT to host 127.0.0.1 09:40:34.431544 Running HTTP IPv4 version on port 44417 09:40:34.431958 Wrote pid 77906 to log/43/server/http2_server.pid 09:40:34.432238 Wrote port 44417 to log/43/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:40:34.146098 ====> Client connect 09:40:34.146781 accept_connection 3 returned 4 09:40:34.146973 accept_connection 3 returned 0 09:40:34.147125 Read 93 bytes 09:40:34.147233 Process 93 bytes request 09:40:34.147323 Got request: GET /verifiedserver HTTP/1.1 09:40:34.147407 Are-we-friendly question received 09:40:34.149927 Wrote request (93 bytes) input to log/43/server.input 09:40:34.150200 Identifying ourselves as friends 09:40:34.154046 Response sent (56 bytes) and written to log/43/server.response 09:40:34.154191 special request received, no persistency 09:40:34.154288 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 80 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind80 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind80 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/54/server/ftp_server.pid" --logfile "log/54/ftp_server.log" --logdir "log/54" --portfile "log/54/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41829 (log/54/server/ftp_server.port) RUN: FTP server is PID 78730 port 41829 * pid ftp => 78730 78730 test 0137...[FTP download without size in RETR string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind137 ../src/curl -q --output log/54/curl137.out --include --trace-ascii log/54/trace137 --trace-config all --trace-time ftp://127.0.0.1:41829/blalbla/lululul/137 > log/54/stdout137 2> log/54/stderr137 137: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 137 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind137 ../src/curl -q --output log/54/curl137.out --include --trace-ascii log/54/trace137 --trace-config all --trace-time ftp://127.0.0.1:41829/blalbla/lululul/137 > log/54/stdout137 2> log/54/stderr137 === End of file commands.log === Start of file ftp_server.log 09:40:35.467220 FTP server listens on port IPv4/41829 09:40:35.468958 logged pid 78730 in log/54/server/ftp_server.pid 09:40:35.469306 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.702862 Running IPv4 version 09:40:35.717679 Listening on port 41829 09:40:35.718110 Wrote pid 80269 to log/54/server/ftp_sockctrl.pid 09:40:35.718426 Wrote port 41829 to log/54/server/ftp_server.port 09:40:35.718719 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd RETRNOSIZE Testnum 137 === End of file server.cmd === Start of file valgrind137 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind137 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/45/server/ftp_server.pid" --logfile "log/45/ftp_server.log" --logdir "log/45" --portfile "log/45/server/ftp_server.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind152 ../src/curl -q --output log/35/curl152.out --include --trace-ascii log/35/trace152 --trace-config all --trace-time http://127.0.0.1:43179/152 --fail > log/35/stdout152 2> log/35/stderr152 port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41719 (log/45/server/ftp_server.port) RUN: FTP server is PID 78026 port 41719 * pid ftp => 78026 78026 test 0133...[FTP compulsory .netrc; ignore passwd in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind133 ../src/curl -q --output log/45/curl133.out --include --trace-ascii log/45/trace133 --trace-config all --trace-time -n --netrc-file log/45/netrc133 ftp://mary:mark@127.0.0.1:41719/ > log/45/stdout133 2> log/45/stderr133 133: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 133 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind133 ../src/curl -q --output log/45/curl133.out --include --trace-ascii log/45/trace133 --trace-config all --trace-time -n --netrc-file log/45/netrc133 ftp://mary:mark@127.0.0.1:41719/ > log/45/stdout133 2> log/45/stderr133 === End of file commands.log === Start of file ftp_server.log 09:40:34.478379 FTP server listens on port IPv4/41719 09:40:34.479356 logged pid 78026 in log/45/server/ftp_server.pid 09:40:34.479609 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.729028 Running IPv4 version 09:40:34.730398 Listening on port 41719 09:40:34.730971 Wrote pid 78588 to log/45/server/ftp_sockctrl.pid 09:40:34.731284 Wrote port 41719 to log/45/server/ftp_server.port 09:40:34.731536 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file netrc133 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login mary password drfrank === End of file netrc133 === Start of file server.cmd Testnum 133 === End of file server.cmd === Start of file valgrind133 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind133 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/62/server/ftp_server.pid" --logfile "log/62/ftp_server.log" --logdir "log/62" --portfile "log/62/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38963 (log/62/server/ftp_server.port) RUN: FTP server is PID 78462 port 38963 * pid ftp => 78462 78462 test 0135...[FTP retrieve a byte-range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind135 ../src/curl -q --output log/62/curl135.out --include --trace-ascii log/62/trace135 --trace-config all --trace-time -r 4-16 ftp://127.0.0.1:38963/135 > log/62/stdout135 2> log/62/stderr135 135: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 135 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind135 ../src/curl -q --output log/62/curl135.out --include --trace-ascii log/62/trace135 --trace-config all --trace-time -r 4-16 ftp://127.0.0.1:38963/135 > log/62/stdout135 2> log/62/stderr135 === End of file commands.log === Start of file ftp_server.log 09:40:35.200079 FTP server listens on port IPv4/38963 09:40:35.201175 logged pid 78462 in log/62/server/ftp_server.pid 09:40:35.201446 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.447607 Running IPv4 version 09:40:35.451800 Listening on port 38963 09:40:35.452266 Wrote pid 79785 to log/62/server/ftp_sockctrl.pid 09:40:35.452765 Wrote port 38963 to log/62/server/ftp_server.port 09:40:35.452978 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 135 === End of file server.cmd === Start of file valgrind135 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind135 test 0152...[HTTP GET with an error code that might trick authentication and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind152 ../src/curl -q --output log/35/curl152.out --include --trace-ascii log/35/trace152 --trace-config all --trace-time http://127.0.0.1:43179/152 --fail > log/35/stdout152 2> log/35/stderr152 152: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 152 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind152 ../src/curl -q --output log/35/curl152.out --include --trace-ascii log/35/trace152 --trace-config all --trace-time http://127.0.0.1:43179/152 --fail > log/35/stdout152 2> log/35/stderCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind134 ../src/curl -q --output log/46/curl134.out --include --trace-ascii log/46/trace134 --trace-config all --trace-time --netrc-optional --netrc-file log/46/netrc134 -u romulus:rhemus ftp://mary:mark@127.0.0.1:37853/ > log/46/stdout134 2> log/46/stderr134 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind138 ../src/curl -q --output log/21/curl138.out --include --trace-ascii log/21/trace138 --trace-config all --trace-time ftp://127.0.0.1:40295/blalbla/lululul/138 > log/21/stdout138 2> log/21/stderr138 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind151 ../src/curl -q --output log/37/curl151.out --include --trace-ascii log/37/trace151 --trace-config all --trace-time http://127.0.0.1:37551/151 > log/37/stdout151 2> log/37/stderr151 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind123 ../src/curl -q --output log/39/curl123.out --include --trace-ascii log/39/trace123 --trace-config all --trace-time ftp://127.0.0.1:35393/123 -T log/39/upload123 -C 51 > log/39/stdout123 2> log/39/stderr123 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind112 ../src/curl -q --output log/32/curl112.out --include --trace-ascii log/32/trace112 --trace-config all --trace-time ftp://127.0.0.1:42387/112 -T log/32/upload112 -C 40 > log/32/stdout112 2> log/32/stderr112 r152 === End of file commands.log === Start of file http_server.log 09:40:35.918235 ====> Client connect 09:40:35.918904 accept_connection 3 returned 4 09:40:35.919193 accept_connection 3 returned 0 09:40:35.919392 Read 93 bytes 09:40:35.924039 Process 93 bytes request 09:40:35.924152 Got request: GET /verifiedserver HTTP/1.1 09:40:35.924261 Are-we-friendly question received 09:40:35.924831 Wrote request (93 bytes) input to log/35/server.input 09:40:35.925013 Identifying ourselves as friends 09:40:35.929393 Response sent (56 bytes) and written to log/35/server.response 09:40:35.929696 special request received, no persistency 09:40:35.929807 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 152 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind152 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind152 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/46/server/ftp_server.pid" --logfile "log/46/ftp_server.log" --logdir "log/46" --portfile "log/46/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37853 (log/46/server/ftp_server.port) RUN: FTP server is PID 78258 port 37853 * pid ftp => 78258 78258 test 0134...[FTP (optional .netrc; programmatic user/passwd) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind134 ../src/curl -q --output log/46/curl134.out --include --trace-ascii log/46/trace134 --trace-config all --trace-time --netrc-optional --netrc-file log/46/netrc134 -u romulus:rhemus ftp://mary:mark@127.0.0.1:37853/ > log/46/stdout134 2> log/46/stderr134 134: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 134 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind134 ../src/curl -q --output log/46/curl134.out --include --trace-ascii log/46/trace134 --trace-config all --trace-time --netrc-optional --netrc-file log/46/netrc134 -u romulus:rhemus ftp://mary:mark@127.0.0.1:37853/ > log/46/stdout134 2> log/46/stderr134 === End of file commands.log === Start of file ftp_server.log 09:40:35.020187 FTP server listens on port IPv4/37853 09:40:35.021200 logged pid 78258 in log/46/server/ftp_server.pid 09:40:35.021843 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.270017 Running IPv4 version 09:40:35.272030 Listening on port 37853 09:40:35.272396 Wrote pid 79462 to log/46/server/ftp_sockctrl.pid 09:40:35.272874 Wrote port 37853 to log/46/server/ftp_server.port 09:40:35.273044 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file netrc134 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc134 === Start of file server.cmd Testnum 134 === End of file server.cmd === Start of file valgrind134 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind134 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/21/server/ftp_server.pid" --logfile "log/21/ftp_server.log" --logdir "log/21" --portfile "log/21/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40295 (log/21/server/ftp_server.port) RUN: FTP server is PID 78763 port 40295 * pid ftp => 78763 78763 test 0138...[FTP download without size in RETR string and no SIZE command] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind138 ../src/curl -q --output log/21/curl138.out --include --trace-ascii log/21/trace138 --trace-config all --trace-time ftp://127.0.0.1:40295/blalbla/lululul/138 > log/21/stdout138 2> log/21/stderr138 138: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 138 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind138 ../src/curl -q --output log/21/curl138.out --include --trace-ascii log/21/trace138 --trace-config all --trace-time ftp://127.0.0.1:40295/blalbla/lululul/138 > log/21/stdout138 2> log/21/stderr138 === End of file commands.log === Start of file ftp_server.log 09:40:35.326318 FTP server listens on port IPv4/40295 09:40:35.327343 logged pid 78763 in log/21/server/ftp_server.pid 09:40:35.327621 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.573927 Running IPv4 version 09:40:35.577565 Listening on port 40295 09:40:35.578062 Wrote pid 79996 to log/21/server/ftp_sockctrl.pid 09:40:35.578424 Wrote port 40295 to log/21/server/ftp_server.port 09:40:35.578704 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd RETRNOSIZE REPLY SIZE 500 command not understood Testnum 138 === End of file server.cmd === Start of file valgrind138 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind138 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/32/server/ftp_server.pid" --logfile "log/32/ftp_server.log" --logdir "log/32" --portfile "log/32/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42387 (log/32/server/ftp_server.port) RUN: FTP server is PID 77461 port 42387 * pid ftp => 77461 77461 test 0112...[FTP PASV upload resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind112 ../src/curl -q --output log/32/curl112.out --include --trace-ascii log/32/trace112 --trace-config all --trace-time ftp://127.0.0.1:42387/112 -T log/32/upload112 -C 40 > log/32/stdout112 2> log/32/stderr112 112: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 112 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind112 ../src/curl -q --output log/32/curl112.out --include --trace-ascii log/32/trace112 --trace-config all --trace-time ftp://127.0.0.1:42387/112 -T log/32/upload112 -C 40 > log/32/stdout112 2> log/32/stderr112 === End of file commands.log === Start of file ftp_server.log 09:40:34.782931 FTP server listens on port IPv4/42387 09:40:34.784091 logged pid 77461 in log/32/server/ftp_server.pid 09:40:34.784387 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.033258 Running IPv4 version 09:40:34.033870 Listening on port 42387 09:40:34.034301 Wrote pid 78994 to log/32/server/ftp_sockctrl.pid 09:40:34.034746 Wrote port 42387 to log/32/server/ftp_server.port 09:40:34.034925 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 112 === End of file server.cmd === Start of file upload112 this is the *****crap******** that we're gonna upload worx? === End of file upload112 === Start of file valgrind112 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind112 test 0151...[HTTP GET with an error code that might trick authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind151 ../src/curl -q --output log/37/curl151.out --include --trace-ascii log/37/trace151 --trace-config all --trace-time http://127.0.0.1:37551/151 > log/37/stdout151 2> log/37/stderr151 151: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 151 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind151 ../src/curl -q --output log/37/curl151.out --include --trace-ascii log/37/trace151 --trace-config all --trace-time http://127.0.0.1:37551/151 > log/37/stdout151 2> log/37/stderr151 === End of file commands.log === Start of file http_server.log 09:40:35.822191 ====> Client connect 09:40:35.822632 accept_connection 3 returned 4 09:40:35.822829 accept_connection 3 returned 0 09:40:35.833798 Read 93 bytes 09:40:35.834044 Process 93 bytes request 09:40:35.834209 Got request: GET /verifiedserver HTTP/1.1 09:40:35.837618 Are-we-friendly question received 09:40:35.838025 Wrote request (93 bytes) input to log/37/server.input 09:40:35.838256 Identifying ourselves as friends 09:40:35.843032 Response sent (56 bytes) and written to log/37/server.response 09:40:35.843174 special request received, no persistency 09:40:35.843256 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 151 === End of file serveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind150 ../src/curl -q --output log/33/curl150.out --include --trace-ascii log/33/trace150 --trace-config all --trace-time http://127.0.0.1:36559/150 -u testuser:testpass --ntlm --fail > log/33/stdout150 2> log/33/stderr150 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind140 ../src/curl -q --output log/29/curl140.out --include --trace-ascii log/29/trace140 --trace-config all --trace-time ftp://127.0.0.1:36763/blalbla/140 -z "1 jan 2004" > log/29/stdout140 2> log/29/stderr140 r.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind151 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind151 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/39/server/ftp_server.pid" --logfile "log/39/ftp_server.log" --logdir "log/39" --portfile "log/39/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35393 (log/39/server/ftp_server.port) RUN: FTP server is PID 77518 port 35393 * pid ftp => 77518 77518 test 0123...[FTP upload resume with whole file already downloaded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind123 ../src/curl -q --output log/39/curl123.out --include --trace-ascii log/39/trace123 --trace-config all --trace-time ftp://127.0.0.1:35393/123 -T log/39/upload123 -C 51 > log/39/stdout123 2> log/39/stderr123 123: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 123 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind123 ../src/curl -q --output log/39/curl123.out --include --trace-ascii log/39/trace123 --trace-config all --trace-time ftp://127.0.0.1:35393/123 -T log/39/upload123 -C 51 > log/39/stdout123 2> log/39/stderr123 === End of file commands.log === Start of file ftp_server.log 09:40:34.604442 FTP server listens on port IPv4/35393 09:40:34.605384 logged pid 77518 in log/39/server/ftp_server.pid 09:40:34.605644 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.856126 Running IPv4 version 09:40:34.856671 Listening on port 35393 09:40:34.857035 Wrote pid 78780 to log/39/server/ftp_sockctrl.pid 09:40:34.857293 Wrote port 35393 to log/39/server/ftp_server.port 09:40:34.857516 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 123 === End of file server.cmd === Start of file upload123 -------------------------------------------------- === End of file upload123 === Start of file valgrind123 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind123 test 0150...[HTTP with NTLM authorization and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind150 ../src/curl -q --output log/33/curl150.out --include --trace-ascii log/33/trace150 --trace-config all --trace-time http://127.0.0.1:36559/150 -u testuser:testpass --ntlm --fail > log/33/stdout150 2> log/33/stderr150 150: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 150 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind150 ../src/curl -q --output log/33/curl150.out --include --trace-ascii log/33/trace150 --trace-config all --trace-time http://127.0.0.1:36559/150 -u testuser:testpass --ntlm --fail > log/33/stdout150 2> log/33/stderr150 === End of file commands.log === Start of file http_server.log 09:40:35.727736 ====> Client connect 09:40:35.728027 accept_connection 3 returned 4 09:40:35.728172 accept_connection 3 returned 0 09:40:35.728293 Read 93 bytes 09:40:35.728385 Process 93 bytes request 09:40:35.728567 Got request: GET /verifiedserver HTTP/1.1 09:40:35.728665 Are-we-friendly question received 09:40:35.728889 Wrote request (93 bytes) input to log/33/server.input 09:40:35.729061 Identifying ourselves as friends 09:40:35.732294 Response sent (56 bytes) and written to log/33/server.response 09:40:35.732413 special request received, no persistency 09:40:35.732601 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 150 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind150 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind136 ../src/curl -q --output log/60/curl136.out --include --trace-ascii log/60/trace136 --trace-config all --trace-time -u user: ftp://127.0.0.1:41385/136 > log/60/stdout136 2> log/60/stderr136 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind139 ../src/curl -q --output log/59/curl139.out --include --trace-ascii log/59/trace139 --trace-config all --trace-time ftp://127.0.0.1:43961/blalbla/139 -z "1 jan 1989" > log/59/stdout139 2> log/59/stderr139 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind141 ../src/curl -q --include --trace-ascii log/57/trace141 --trace-config all --trace-time ftp://127.0.0.1:42129/blalbla/141 -I > log/57/stdout141 2> log/57/stderr141 lst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind150 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/29/server/ftp_server.pid" --logfile "log/29/ftp_server.log" --logdir "log/29" --portfile "log/29/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36763 (log/29/server/ftp_server.port) RUN: FTP server is PID 78998 port 36763 * pid ftp => 78998 78998 test 0140...[FTP download file with -z, expected to not transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind140 ../src/curl -q --output log/29/curl140.out --include --trace-ascii log/29/trace140 --trace-config all --trace-time ftp://127.0.0.1:36763/blalbla/140 -z "1 jan 2004" > log/29/stdout140 2> log/29/stderr140 140: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 140 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind140 ../src/curl -q --output log/29/curl140.out --include --trace-ascii log/29/trace140 --trace-config all --trace-time ftp://127.0.0.1:36763/blalbla/140 -z "1 jan 2004" > log/29/stdout140 2> log/29/stderr140 === End of file commands.log === Start of file ftp_server.log 09:40:35.334918 FTP server listens on port IPv4/36763 09:40:35.341049 logged pid 78998 in log/29/server/ftp_server.pid 09:40:35.341334 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.582079 Running IPv4 version 09:40:35.582763 Listening on port 36763 09:40:35.583187 Wrote pid 80034 to log/29/server/ftp_sockctrl.pid 09:40:35.583605 Wrote port 36763 to log/29/server/ftp_server.port 09:40:35.585208 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 140 === End of file server.cmd === Start of file valgrind140 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind140 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/60/server/ftp_server.pid" --logfile "log/60/ftp_server.log" --logdir "log/60" --portfile "log/60/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41385 (log/60/server/ftp_server.port) RUN: FTP server is PID 78622 port 41385 * pid ftp => 78622 78622 test 0136...[FTP with user and no password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind136 ../src/curl -q --output log/60/curl136.out --include --trace-ascii log/60/trace136 --trace-config all --trace-time -u user: ftp://127.0.0.1:41385/136 > log/60/stdout136 2> log/60/stderr136 136: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 136 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind136 ../src/curl -q --output log/60/curl136.out --include --trace-ascii log/60/trace136 --trace-config all --trace-time -u user: ftp://127.0.0.1:41385/136 > log/60/stdout136 2> log/60/stderr136 === End of file commands.log === Start of file ftp_server.log 09:40:35.348967 FTP server listens on port IPv4/41385 09:40:35.349738 logged pid 78622 in log/60/server/ftp_server.pid 09:40:35.350108 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.599566 Running IPv4 version 09:40:35.600234 Listening on port 41385 09:40:35.601412 Wrote pid 80052 to log/60/server/ftp_sockctrl.pid 09:40:35.601879 Wrote port 41385 to log/60/server/ftp_server.port 09:40:35.602047 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 136 === End of file server.cmd === Start of file valgrind136 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind136 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/59/server/ftp_server.pid" --logfile "log/59/ftp_server.log" --logdir "log/59" --portfile "log/59/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43961 (log/59/server/ftp_server.port) RUN: FTP server is PID 78816 port 43961 * pid ftp => 78816 78816 test 0139...[FTP download a newer file with -z] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind139 ../src/curl -q --output log/59/curl139.out --include --trace-ascii log/59/trace139 --trace-config all --trace-time ftp://127.0.0.1:43961/blalbla/139 -z "1 jan 1989" > log/59/stdout139 2> log/59/stderr139 139: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 139 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind139 ../src/curl -q --output log/59/curl139.out --include --trace-ascii log/59/trace139 --trace-config all --trace-time ftp://127.0.0.1:43961/blalbla/139 -z "1 jan 1989" > log/59/stdout139 2> log/59/stderr139 === End of file commands.log === Start of file ftp_server.log 09:40:35.444412 FTP server listens on port IPv4/43961 09:40:35.445625 logged pid 78816 in log/59/server/ftp_server.pid 09:40:35.446036 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.689276 Running IPv4 version 09:40:35.690054 Listening on port 43961 09:40:35.695203 Wrote pid 80270 to log/59/server/ftp_sockctrl.pid 09:40:35.695743 Wrote port 43961 to log/59/server/ftp_server.port 09:40:35.695924 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 139 === End of file server.cmd === Start of file valgrind139 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind139 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind120 ../src/curl -q --output log/8/curl120.out --include --trace-ascii log/8/trace120 --trace-config all --trace-time ftp://127.0.0.1:32769/120 -Q "-DELE file" > log/8/stdout120 2> log/8/stderr120 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind100 ../src/curl -q --output log/10/curl100.out --include --trace-ascii log/10/trace100 --trace-config all --trace-time ftp://127.0.0.1:32859/test-100/ > log/10/stdout100 2> log/10/stderr100 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind165 ../src/curl -q --output log/24/curl165.out --include --trace-ascii log/24/trace165 --trace-config all --trace-time http://www.åäö.se/page/165 -x 127.0.0.1:39259 http://www.große.de/page/165 > log/24/stdout165 2> log/24/stderr165 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/57/server/ftp_server.pid" --logfile "log/57/ftp_server.log" --logdir "log/57" --portfile "log/57/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42129 (log/57/server/ftp_server.port) RUN: FTP server is PID 79056 port 42129 * pid ftp => 79056 79056 test 0141...[FTP download info with -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind141 ../src/curl -q --include --trace-ascii log/57/trace141 --trace-config all --trace-time ftp://127.0.0.1:42129/blalbla/141 -I > log/57/stdout141 2> log/57/stderr141 141: stdout FAILED: --- log/57/check-expected 2025-07-18 09:40:37.053610036 +0000 +++ log/57/check-generated 2025-07-18 09:40:37.052610037 +0000 @@ -1,3 +0,0 @@ -Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT[CR][LF] -Content-Length: 42[CR][LF] -Accept-ranges: bytes[CR][LF] == Contents of files in the log/57/ dir after test 141 === Start of file check-expected Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT[CR][LF] Content-Length: 42[CR][LF] Accept-ranges: bytes[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind141 ../src/curl -q --include --trace-ascii log/57/trace141 --trace-config all --trace-time ftp://127.0.0.1:42129/blalbla/141 -I > log/57/stdout141 2> log/57/stderr141 === End of file commands.log === Start of file ftp_server.log 09:40:35.327937 FTP server listens on port IPv4/42129 09:40:35.328870 logged pid 79056 in log/57/server/ftp_server.pid 09:40:35.329145 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.577222 Running IPv4 version 09:40:35.579932 Listening on port 42129 09:40:35.580348 Wrote pid 80023 to log/57/server/ftp_sockctrl.pid 09:40:35.580870 Wrote port 42129 to log/57/server/ftp_server.port 09:40:35.581021 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 141 === End of file server.cmd === Start of file valgrind141 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind141 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/8/server/ftp_server.pid" --logfile "log/8/ftp_server.log" --logdir "log/8" --portfile "log/8/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 32769 (log/8/server/ftp_server.port) RUN: FTP server is PID 77502 port 32769 * pid ftp => 77502 77502 test 0120...[ftp download with post-quote delete operation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind120 ../src/curl -q --output log/8/curl120.out --include --trace-ascii log/8/trace120 --trace-config all --trace-time ftp://127.0.0.1:32769/120 -Q "-DELE file" > log/8/stdout120 2> log/8/stderr120 120: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 120 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind120 ../src/curl -q --output log/8/curl120.out --include --trace-ascii log/8/trace120 --trace-config all --trace-time ftp://127.0.0.1:32769/120 -Q "-DELE file" > log/8/stdout120 2> log/8/stderr120 === End of file commands.log === Start of file ftp_server.log 09:40:34.727307 FTP server listens on port IPv4/32769 09:40:34.728508 logged pid 77502 in log/8/server/ftp_server.pid 09:40:34.728995 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.973023 Running IPv4 version 09:40:34.975113 Listening on port 32769 09:40:34.975812 Wrote pid 78921 to log/8/server/ftp_sockctrl.pid 09:40:34.976217 Wrote port 32769 to log/8/server/ftp_server.port 09:40:34.976391 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 314 bluah you f00l Testnum 120 === End of file server.cmd === Start of file valgrind120 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind120 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/10/server/ftp_server.pid" --logfile "log/10/ftp_server.log" --logdir "log/10" --portfile "log/10/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 32859 (log/10/server/ftp_server.port) RUN: FTP server is PID 77425 port 32859 * pid ftp => 77425 77425 test 0100...[FTP dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind100 ../src/curl -q --output log/10/curl100.out --include --trace-ascii log/10/trace100 --trace-config all --trace-time ftp://127.0.0.1:32859/tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind153 ../src/curl -q --include --trace-ascii log/31/trace153 --trace-config all --trace-time http://127.0.0.1:45557/1530001 -u testuser:testpass --digest http://127.0.0.1:45557/1530002 > log/31/stdout153 2> log/31/stderr153 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind158 ../src/curl -q --output log/28/curl158.out --include --trace-ascii log/28/trace158 --trace-config all --trace-time http://127.0.0.1:37545/158 -F name=daniel > log/28/stdout158 2> log/28/stderr158 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind143 ../src/curl -q --output log/26/curl143.out --include --trace-ascii log/26/trace143 --trace-config all --trace-time "ftp://127.0.0.1:39753/%2ftmp/moo/143;type=a" > log/26/stdout143 2> log/26/stderr143 est-100/ > log/10/stdout100 2> log/10/stderr100 100: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 100 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind100 ../src/curl -q --output log/10/curl100.out --include --trace-ascii log/10/trace100 --trace-config all --trace-time ftp://127.0.0.1:32859/test-100/ > log/10/stdout100 2> log/10/stderr100 === End of file commands.log === Start of file ftp_server.log 09:40:34.607074 FTP server listens on port IPv4/32859 09:40:34.607983 logged pid 77425 in log/10/server/ftp_server.pid 09:40:34.608270 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:34.858384 Running IPv4 version 09:40:34.858992 Listening on port 32859 09:40:34.859416 Wrote pid 78785 to log/10/server/ftp_sockctrl.pid 09:40:34.859880 Wrote port 32859 to log/10/server/ftp_server.port 09:40:34.860056 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 100 === End of file server.cmd === Start of file valgrind100 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind100 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0165...[HTTP over proxy with IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind165 ../src/curl -q --output log/24/curl165.out --include --trace-ascii log/24/trace165 --trace-config all --trace-time http://www.åäö.se/page/165 -x 127.0.0.1:39259 http://www.große.de/page/165 > log/24/stdout165 2> log/24/stderr165 165: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 165 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind165 ../src/curl -q --output log/24/curl165.out --include --trace-ascii log/24/trace165 --trace-config all --trace-time http://www.åäö.se/page/165 -x 127.0.0.1:39259 http://www.große.de/page/165 > log/24/stdout165 2> log/24/stderr165 === End of file commands.log === Start of file http_server.log 09:40:36.356851 ====> Client connect 09:40:36.357164 accept_connection 3 returned 4 09:40:36.357395 accept_connection 3 returned 0 09:40:36.358279 Read 93 bytes 09:40:36.358425 Process 93 bytes request 09:40:36.358607 Got request: GET /verifiedserver HTTP/1.1 09:40:36.358722 Are-we-friendly question received 09:40:36.359012 Wrote request (93 bytes) input to log/24/server.input 09:40:36.359270 Identifying ourselves as friends 09:40:36.359981 Response sent (56 bytes) and written to log/24/server.response 09:40:36.360096 special request received, no persistency 09:40:36.360173 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 165 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind165 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind165 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind170 ../src/curl -q --output log/11/curl170.out --include --trace-ascii log/11/trace170 --trace-config all --trace-time http://a.galaxy.far.far.away/170 --proxy http://127.0.0.1:41387 --proxy-user foo:bar --proxy-ntlm -F "dummy=value" > log/11/stdout170 2> log/11/stderr170 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind157 ../src/curl -q --output log/49/curl157.out --include --trace-ascii log/49/trace157 --trace-config all --trace-time http://127.0.0.1:42667/157 -u testuser:testpass --anyauth > log/49/stdout157 2> log/49/stderr157 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind146 ../src/curl -q --output log/6/curl146.out --include --trace-ascii log/6/trace146 --trace-config all --trace-time ftp://127.0.0.1:34161/first/dir/here/146 ftp://127.0.0.1:34161/146 > log/6/stdout146 2> log/6/stderr146 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind166 ../src/curl -q --output log/30/curl166.out --include --trace-ascii log/30/trace166 --trace-config all --trace-time http://127.0.0.1:43913/we/want/166 -F "name=@log/30/fie ld 166" > log/30/stdout166 2> log/30/stderr166 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind148 ../src/curl -q --output log/20/curl148.out --include --trace-ascii log/20/trace148 --trace-config all --trace-time ftp://127.0.0.1:34743/attempt/to/get/this/148 --ftp-create-dirs > log/20/stdout148 2> log/20/stderr148 test 0153...[HTTP with Digest authorization with stale=true] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind153 ../src/curl -q --include --trace-ascii log/31/trace153 --trace-config all --trace-time http://127.0.0.1:45557/1530001 -u testuser:testpass --digest http://127.0.0.1:45557/1530002 > log/31/stdout153 2> log/31/stderr153 153: stdout FAILED: --- log/31/check-expected 2025-07-18 09:40:37.318549342 +0000 +++ log/31/check-generated 2025-07-18 09:40:37.317609902 +0000 @@ -1,30 +0,0 @@ -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 23[CR][LF] -[CR][LF] -This IS the real page![LF] -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 30[CR][LF] -[CR][LF] -This IS the second real page![LF] == Contents of files in the log/31/ dir after test 153 === Start of file check-expected HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 23[CR][LF] [CR][LF] This IS the real page![LF] HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 30[CR][LF] [CR][LF] This IS the second real page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind153 ../src/curl -q --include --trace-ascii log/31/trace153 --trace-config all --trace-time http://127.0.0.1:45557/1530001 -u testuser:testpass --digest http://127.0.0.1:45557/1530002 > log/31/stdout153 2> log/31/stderr153 === End of file commands.log === Start of file http_server.log 09:40:35.987995 ====> Client connect 09:40:35.988648 accept_connection 3 returned 4 09:40:35.988848 accept_connection 3 returned 0 09:40:35.989001 Read 93 bytes 09:40:35.989144 Process 93 bytes request 09:40:35.989334 Got request: GET /verifiedserver HTTP/1.1 09:40:35.989417 Are-we-friendly question received 09:40:35.989765 Wrote request (93 bytes) input to log/31/server.input 09:40:35.989958 Identifying ourselves as friends 09:40:35.994717 Response sent (56 bytes) and written to log/31/server.response 09:40:35.994848 special request received, no persistency 09:40:35.994926 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 153 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind153 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind153 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/ftp_server.pid" --logfile "log/6/ftp_server.log" --logdir "log/6" --portfile "log/6/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34161 (log/6/server/ftp_server.port) RUN: FTP server is PID 79493 port 34161 * pid ftp => 79493 79493 test 0146...[persistent FTP with different paths] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind146 ../src/curl -q --output log/6/curl146.out --include --trace-ascii log/6/trace146 --trace-config all --trace-time ftp://127.0.0.1:34161/first/dir/here/146 ftp://127.0.0.1:34161/146 > log/6/stdout146 2> log/6/stderr146 146: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 146 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind146 ../src/curl -q --output log/6/curl146.out --include --trace-ascii log/6/trace146 --trace-config all --trace-time ftp://127.0.0.1:34161/first/dir/here/146 ftp://127.0.0.1:34161/146 > log/6/stdout146 2> log/6/stderr146 === End of file commands.log === Start of file ftp_server.log 09:40:35.600186 FTP server listens on port IPv4/34161 09:40:35.601140 logged pid 79493 in log/6/server/ftp_server.pid 09:40:35.601370 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.851805 Running IPv4 version 09:40:35.852341 Listening on port 34161 09:40:35.852847 Wrote pid 80528 to log/6/server/ftp_sockctrl.pid 09:40:35.853138 Wrote port 34161 to log/6/server/ftp_server.port 09:40:35.853279 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 146 === End of file server.cmd === Start of file valgrind146 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind146 test 0170...[HTTP POST with --proxy-ntlm and no SSL with no response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind170 ../src/curl -q --output log/11/curl170.out --include --trace-ascii log/11/trace170 --trace-config all --trace-time http://a.galaxy.far.far.away/170 --proxy http://127.0.0.1:41387 --proxy-user foo:bar --proxy-ntlm -F "dummy=value" > log/11/stdout170 2> log/11/stderr170 170: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 170 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind170 ../src/curl -q --output log/11/curl170.out --include --trace-ascii log/11/trace170 --trace-config all --trace-time http://a.galaxy.far.far.away/170 --proxy http://127.0.0.1:41387 --proxy-user foo:bar --proxy-ntlm -F "dummy=value" > log/11/stdout170 2> log/11/stderr170 === End of file commands.log === Start of file http_server.log 09:40:36.346825 ====> Client connect 09:40:36.347235 accept_connection 3 returned 4 09:40:36.347520 accept_connection 3 returned 0 09:40:36.347701 Read 93 bytes 09:40:36.347795 Process 93 bytes request 09:40:36.347888 Got request: GET /verifiedserver HTTP/1.1 09:40:36.347975 Are-we-friendly question received 09:40:36.351624 Wrote request (93 bytes) input to log/11/server.input 09:40:36.351905 Identifying ourselves as friends 09:40:36.352821 Response sent (56 bytes) and written to log/11/server.response 09:40:36.352933 special request received, no persistency 09:40:36.353003 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41387... * Connected to 127.0.0.1 (127.0.0.1) port 41387 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41387 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73809 === End of file http_verify.out === Start of file server.cmd Testnum 170 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73809 === End of file server.response === Start of file valgrind170 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind170 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/26/server/ftp_server.pid" --logfile "log/26/ftp_server.log" --logdir "log/26" --portfile "log/26/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39753 (log/26/server/ftp_server.port) RUN: FTP server is PID 79344 port 39753 * pid ftp => 79344 79344 test 0143...[FTP URL with type=a] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind143 ../src/curl -q --output log/26/curl143.out --include --trace-ascii log/26/trace143 --trace-config all --trace-time "ftp://127.0.0.1:39753/%2ftmp/moo/143;type=a" > log/26/stdout143 2> log/26/stderr143 143: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 143 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind143 ../src/curl -q --output log/26/curl143.out --include --trace-ascii log/26/trace143 --trace-config all --trace-time "ftp://127.0.0.1:39753/%2ftmp/moo/143;type=a" > log/26/stdout143 2> log/26/stderr143 === End of file commands.log === Start of file ftp_server.log 09:40:35.650459 FTP server listens on port IPv4/39753 09:40:35.651535 logged pid 79344 in log/26/server/ftp_server.pid 09:40:35.651871 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.901854 Running IPv4 version 09:40:35.902501 Listening on port 39753 09:40:35.902951 Wrote pid 80631 to log/26/server/ftp_sockctrl.pid 09:40:35.903311 Wrote port 39753 to log/26/server/ftp_server.port 09:40:35.903544 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 143 === End of file server.cmd === Start of file valgrind143 valgrind: Fatal error at startup: a function redirection valgrind: which is mandaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind155 ../src/curl -q --output log/25/curl155.out --include --trace-ascii log/25/trace155 --trace-config all --trace-time http://127.0.0.1:41727/155 -T log/25/put155 -u testuser:testpass --anyauth > log/25/stdout155 2> log/25/stderr155 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind147 ../src/curl -q --output log/13/curl147.out --include --trace-ascii log/13/trace147 --trace-config all --trace-time ftp://127.0.0.1:34087/first/dir/here/147 --ftp-create-dirs > log/13/stdout147 2> log/13/stderr147 tory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind143 test 0158...[HTTP multipart formpost with only a 100 reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind158 ../src/curl -q --output log/28/curl158.out --include --trace-ascii log/28/trace158 --trace-config all --trace-time http://127.0.0.1:37545/158 -F name=daniel > log/28/stdout158 2> log/28/stderr158 158: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 158 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind158 ../src/curl -q --output log/28/curl158.out --include --trace-ascii log/28/trace158 --trace-config all --trace-time http://127.0.0.1:37545/158 -F name=daniel > log/28/stdout158 2> log/28/stderr158 === End of file commands.log === Start of file http_server.log 09:40:36.199642 ====> Client connect 09:40:36.199955 accept_connection 3 returned 4 09:40:36.200097 accept_connection 3 returned 0 09:40:36.200235 Read 93 bytes 09:40:36.200374 Process 93 bytes request 09:40:36.200601 Got request: GET /verifiedserver HTTP/1.1 09:40:36.200698 Are-we-friendly question received 09:40:36.200932 Wrote request (93 bytes) input to log/28/server.input 09:40:36.201168 Identifying ourselves as friends 09:40:36.202822 Response sent (56 bytes) and written to log/28/server.response 09:40:36.202939 special request received, no persistency 09:40:36.203002 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 158 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind158 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind158 test 0166...[HTTP formpost a file with spaces in name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind166 ../src/curl -q --output log/30/curl166.out --include --trace-ascii log/30/trace166 --trace-config all --trace-time http://127.0.0.1:43913/we/want/166 -F "name=@log/30/fie ld 166" > log/30/stdout166 2> log/30/stderr166 166: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 166 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind166 ../src/curl -q --output log/30/curl166.out --include --trace-ascii log/30/trace166 --trace-config all --trace-time http://127.0.0.1:43913/we/want/166 -F "name=@log/30/fie ld 166" > log/30/stdout166 2> log/30/stderr166 === End of file commands.log === Start of file fie ld 166 data inside the file === End of file fie ld 166 === Start of file http_server.log 09:40:36.317926 ====> Client connect 09:40:36.318293 accept_connection 3 returned 4 09:40:36.318539 accept_connection 3 returned 0 09:40:36.319284 Read 93 bytes 09:40:36.319496 Process 93 bytes request 09:40:36.319594 Got request: GET /verifiedserver HTTP/1.1 09:40:36.319675 Are-we-friendly question received 09:40:36.319913 Wrote request (93 bytes) input to log/30/server.input 09:40:36.320363 Identifying ourselves as friends 09:40:36.321030 Response sent (56 bytes) and written to log/30/server.response 09:40:36.321128 special request received, no persistency 09:40:36.321197 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 166 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind166 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst proceCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind164 ../src/curl -q --output log/16/curl164.out --include --trace-ascii log/16/trace164 --trace-config all --trace-time http://127.0.0.1:34829/want/164 -r 0-10,12-15 > log/16/stdout164 2> log/16/stderr164 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind154 ../src/curl -q --output log/27/curl154.out --include --trace-ascii log/27/trace154 --trace-config all --trace-time http://127.0.0.1:42323/154 -T log/27/put154 -u testuser:testpass --anyauth > log/27/stdout154 2> log/27/stderr154 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind172 ../src/curl -q --output log/53/curl172.out --include --trace-ascii log/53/trace172 --trace-config all --trace-time http://127.0.0.1:34639/we/want/172 -b log/53/jar172.txt -b "tool=curl; name=fool" > log/53/stdout172 2> log/53/stderr172 ssing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind166 test 0157...[HTTP GET with --anyauth (when the server requires none)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind157 ../src/curl -q --output log/49/curl157.out --include --trace-ascii log/49/trace157 --trace-config all --trace-time http://127.0.0.1:42667/157 -u testuser:testpass --anyauth > log/49/stdout157 2> log/49/stderr157 157: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 157 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind157 ../src/curl -q --output log/49/curl157.out --include --trace-ascii log/49/trace157 --trace-config all --trace-time http://127.0.0.1:42667/157 -u testuser:testpass --anyauth > log/49/stdout157 2> log/49/stderr157 === End of file commands.log === Start of file http_server.log 09:40:36.166104 ====> Client connect 09:40:36.166556 accept_connection 3 returned 4 09:40:36.166748 accept_connection 3 returned 0 09:40:36.166894 Read 93 bytes 09:40:36.167003 Process 93 bytes request 09:40:36.167103 Got request: GET /verifiedserver HTTP/1.1 09:40:36.167192 Are-we-friendly question received 09:40:36.167514 Wrote request (93 bytes) input to log/49/server.input 09:40:36.167753 Identifying ourselves as friends 09:40:36.168649 Response sent (56 bytes) and written to log/49/server.response 09:40:36.168770 special request received, no persistency 09:40:36.168844 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 157 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind157 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind157 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/13/server/ftp_server.pid" --logfile "log/13/ftp_server.log" --logdir "log/13" --portfile "log/13/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34087 (log/13/server/ftp_server.port) RUN: FTP server is PID 79551 port 34087 * pid ftp => 79551 79551 test 0147...[FTP with --ftp-create-dirs (failing CWD)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind147 ../src/curl -q --output log/13/curl147.out --include --trace-ascii log/13/trace147 --trace-config all --trace-time ftp://127.0.0.1:34087/first/dir/here/147 --ftp-create-dirs > log/13/stdout147 2> log/13/stderr147 147: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 147 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind147 ../src/curl -q --output log/13/curl147.out --include --trace-ascii log/13/trace147 --trace-config all --trace-time ftp://127.0.0.1:34087/first/dir/here/147 --ftp-create-dirs > log/13/stdout147 2> log/13/stderr147 === End of file commands.log === Start of file ftp_server.log 09:40:36.008315 FTP server listens on port IPv4/34087 09:40:36.009307 logged pid 79551 in log/13/server/ftp_server.pid 09:40:36.009567 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.243220 Running IPv4 version 09:40:35.243974 Listening on port 34087 09:40:35.244364 Wrote pid 81051 to log/13/server/ftp_sockctrl.pid 09:40:35.258911 Wrote port 34087 to log/13/server/ftp_server.port 09:40:35.259101 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY CWD 550 I won't allow this on my server COUNT CWD 1 Testnum 147 === End of file server.cmd === Start of file valgrind147 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind160 ../src/curl -q --include --trace-ascii log/19/trace160 --trace-config all --trace-time http://127.0.0.1:35697/want/160 http://127.0.0.1:35697/wantmore/1600001 > log/19/stdout160 2> log/19/stderr160 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind162 ../src/curl -q --output log/41/curl162.out --include --trace-ascii log/41/trace162 --trace-config all --trace-time http://127.0.0.1:35093/162 --proxy http://127.0.0.1:35093 --proxy-user foo:bar --proxy-ntlm --fail > log/41/stdout162 2> log/41/stderr162 On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind147 test 0164...[HTTP range with multiple ranges] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind164 ../src/curl -q --output log/16/curl164.out --include --trace-ascii log/16/trace164 --trace-config all --trace-time http://127.0.0.1:34829/want/164 -r 0-10,12-15 > log/16/stdout164 2> log/16/stderr164 164: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 164 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind164 ../src/curl -q --output log/16/curl164.out --include --trace-ascii log/16/trace164 --trace-config all --trace-time http://127.0.0.1:34829/want/164 -r 0-10,12-15 > log/16/stdout164 2> log/16/stderr164 === End of file commands.log === Start of file http_server.log 09:40:36.289648 ====> Client connect 09:40:36.289975 accept_connection 3 returned 4 09:40:36.290148 accept_connection 3 returned 0 09:40:36.290986 Read 93 bytes 09:40:36.291138 Process 93 bytes request 09:40:36.291235 Got request: GET /verifiedserver HTTP/1.1 09:40:36.291322 Are-we-friendly question received 09:40:36.291682 Wrote request (93 bytes) input to log/16/server.input 09:40:36.291903 Identifying ourselves as friends 09:40:36.292549 Response sent (56 bytes) and written to log/16/server.response 09:40:36.292675 special request received, no persistency 09:40:36.292744 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 164 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind164 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind164 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/20/server/ftp_server.pid" --logfile "log/20/ftp_server.log" --logdir "log/20" --portfile "log/20/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34743 (log/20/server/ftp_server.port) RUN: FTP server is PID 79624 port 34743 * pid ftp => 79624 79624 test 0148...[FTP with --ftp-create-dirs (failing MKD)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind148 ../src/curl -q --output log/20/curl148.out --include --trace-ascii log/20/trace148 --trace-config all --trace-time ftp://127.0.0.1:34743/attempt/to/get/this/148 --ftp-create-dirs > log/20/stdout148 2> log/20/stderr148 148: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 148 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind148 ../src/curl -q --output log/20/curl148.out --include --trace-ascii log/20/trace148 --trace-config all --trace-time ftp://127.0.0.1:34743/attempt/to/get/this/148 --ftp-create-dirs > log/20/stdout148 2> log/20/stderr148 === End of file commands.log === Start of file ftp_server.log 09:40:35.553294 FTP server listens on port IPv4/34743 09:40:35.554335 logged pid 79624 in log/20/server/ftp_server.pid 09:40:35.554602 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.804518 Running IPv4 version 09:40:35.805111 Listening on port 34743 09:40:35.805602 Wrote pid 80493 to log/20/server/ftp_sockctrl.pid 09:40:35.805958 Wrote port 34743 to log/20/server/ftp_server.port 09:40:35.806179 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY CWD 550 I won't allow this on my server REPLY MKD 550 We will have no such thing Testnum 148 === End of file server.cmd === Start of file valgrind148 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind148 test 0155...[HTTP PUT with --anyauth authorization (picking NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-fileCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind156 ../src/curl -q --output log/40/curl156.out --include --trace-ascii log/40/trace156 --trace-config all --trace-time http://127.0.0.1:42139/156 -T log/40/put156 -u testuser:testpass --anyauth > log/40/stdout156 2> log/40/stderr156 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind149 ../src/curl -q --output log/42/curl149.out --include --trace-ascii log/42/trace149 --trace-config all --trace-time -T log/42/upload149 ftp://127.0.0.1:40985/dir1/149 -T log/42/upload149 ftp://127.0.0.1:40985/dir2/149 > log/42/stdout149 2> log/42/stderr149 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind174 ../src/curl -q --output log/48/curl174.out --include --trace-ascii log/48/trace174 --trace-config all --trace-time http://127.0.0.1:46339/174 -u testuser:testpass --anyauth -d "junkelijunk" > log/48/stdout174 2> log/48/stderr174 =log/25/valgrind155 ../src/curl -q --output log/25/curl155.out --include --trace-ascii log/25/trace155 --trace-config all --trace-time http://127.0.0.1:41727/155 -T log/25/put155 -u testuser:testpass --anyauth > log/25/stdout155 2> log/25/stderr155 155: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 155 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind155 ../src/curl -q --output log/25/curl155.out --include --trace-ascii log/25/trace155 --trace-config all --trace-time http://127.0.0.1:41727/155 -T log/25/put155 -u testuser:testpass --anyauth > log/25/stdout155 2> log/25/stderr155 === End of file commands.log === Start of file http_server.log 09:40:35.940745 ====> Client connect 09:40:35.941079 accept_connection 3 returned 4 09:40:35.941255 accept_connection 3 returned 0 09:40:35.942085 Read 93 bytes 09:40:35.942298 Process 93 bytes request 09:40:35.942414 Got request: GET /verifiedserver HTTP/1.1 09:40:35.942645 Are-we-friendly question received 09:40:35.942933 Wrote request (93 bytes) input to log/25/server.input 09:40:35.943154 Identifying ourselves as friends 09:40:35.944089 Response sent (56 bytes) and written to log/25/server.response 09:40:35.944205 special request received, no persistency 09:40:35.944272 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file put155 This is data we upload with PUT a second line line three four is the number of lines === End of file put155 === Start of file server.cmd Testnum 155 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind155 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind155 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind173 ../src/curl -q --output log/51/curl173.out --include --trace-ascii log/51/trace173 --trace-config all --trace-time http://127.0.0.1:34903/we/want/173 -F field1=contents1 -F "fileupload=@-;filename=/dev/null;type=text/x-null;format=x-curl" log/51/stdout173 2> log/51/stderr173 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind163 ../src/curl -q --output log/15/curl163.out --include --trace-ascii log/15/trace163 --trace-config all --trace-time http://127.0.0.1:35435/we/want/163 -F "name= log/15/stdout163 2> log/15/stderr163 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind144 ../src/curl -q --output log/61/curl144.out --include --trace-ascii log/61/trace144 --trace-config all --trace-time ftp://127.0.0.1:46133/ -P - -l > log/61/stdout144 2> log/61/stderr144 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind171 ../src/curl -q --output log/23/curl171.out --include --trace-ascii log/23/trace171 --trace-config all --trace-time -c log/23/jar171 -x 127.0.0.1:42467 http://z.x.com/171 > log/23/stdout171 2> log/23/stderr171 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind167 ../src/curl -q --output log/44/curl167.out --include --trace-ascii log/44/trace167 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/167 --proxy http://127.0.0.1:34655 --proxy-user foo:bar --digest --user digest:alot > log/44/stdout167 2> log/44/stderr167 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind168 ../src/curl -q --output log/3/curl168.out --include --trace-ascii log/3/trace168 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/168 --proxy http://127.0.0.1:42107 --proxy-user foo:bar --proxy-digest --digest --user digest:alot > log/3/stdout168 2> log/3/stderr168 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind161 ../src/curl -q --output log/34/curl161.out --include --trace-ascii log/34/trace161 --trace-config all --trace-time ftp://127.0.0.1:33001/161 > log/34/stdout161 2> log/34/stderr161 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind142 ../src/curl -q --output log/18/curl142.out --include --trace-ascii log/18/trace142 --trace-config all --trace-time ftp://127.0.0.1:42089/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142 > log/18/stdout142 2> log/18/stderr142 test 0160...[HTTP with delayed close, conn reuse, connection reset and retry] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind160 ../src/curl -q --include --trace-ascii log/19/trace160 --trace-config all --trace-time http://127.0.0.1:35697/want/160 http://127.0.0.1:35697/wantmore/1600001 > log/19/stdout160 2> log/19/stderr160 160: stdout FAILED: --- log/19/check-expected 2025-07-18 09:40:37.654609732 +0000 +++ log/19/check-generated 2025-07-18 09:40:37.653609732 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 9[CR][LF] -[CR][LF] -surprise[LF] -HTTP/1.1 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Connection: close[CR][LF] -[CR][LF] -surprise2[LF] == Contents of files in the log/19/ dir after test 160 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 9[CR][LF] [CR][LF] surprise[LF] HTTP/1.1 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Connection: close[CR][LF] [CR][LF] surprise2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind160 ../src/curl -q --include --trace-ascii log/19/trace160 --trace-config all --trace-time http://127.0.0.1:35697/want/160 http://127.0.0.1:35697/wantmore/1600001 > log/19/stdout160 2> log/19/stderr160 === End of file commands.log === Start of file http_server.log 09:40:36.237330 ====> Client connect 09:40:36.237831 accept_connection 3 returned 4 09:40:36.238028 accept_connection 3 returned 0 09:40:36.238175 Read 93 bytes 09:40:36.238284 Process 93 bytes request 09:40:36.238373 Got request: GET /verifiedserver HTTP/1.1 09:40:36.243589 Are-we-friendly question received 09:40:36.243892 Wrote request (93 bytes) input to log/19/server.input 09:40:36.244101 Identifying ourselves as friends 09:40:36.245006 Response sent (56 bytes) and written to log/19/server.response 09:40:36.245122 special request received, no persistency 09:40:36.245191 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 160 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind160 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind160 test 0154...[HTTP PUT with --anyauth authorization (picking Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind154 ../src/curl -q --output log/27/curl154.out --include --trace-ascii log/27/trace154 --trace-config all --trace-time http://127.0.0.1:42323/154 -T log/27/put154 -u testuser:testpass --anyauth > log/27/stdout154 2> log/27/stderr154 154: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 154 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind154 ../src/curl -q --output log/27/curl154.out --include --trace-ascii log/27/trace154 --trace-config all --trace-time http://127.0.0.1:42323/154 -T log/27/put154 -u testuser:testpass --anyauth > log/27/stdout154 2> log/27/stderr154 === End of file commands.log === Start of file http_server.log 09:40:36.059679 ====> Client connect 09:40:36.060059 accept_connection 3 returned 4 09:40:36.060250 accept_connection 3 returned 0 09:40:36.061384 Read 93 bytes 09:40:36.061611 Process 93 bytes request 09:40:36.061716 Got request: GET /verifiedserver HTTP/1.1 09:40:36.061857 Are-we-friendly question received 09:40:36.062291 Wrote request (93 bytes) input to log/27/server.input 09:40:36.062578 Identifying ourselves as friends 09:40:36.063407 Response sent (56 bytes) and written to log/27/server.response 09:40:36.068562 special request received, no persistency 09:40:36.068658 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file put154 This is data we upload with PUT a second line line three four is the number of lines === End of file put154 === Start of file server.cmd Testnum 154 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind154 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind154 test 0156...[HTTP PUT with --anyauth (when the server requires none)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind156 ../src/curl -q --output log/40/curl156.out --include --trace-ascii log/40/trace156 --trace-config all --trace-time http://127.0.0.1:42139/156 -T log/40/put156 -u testuser:testpass --anyauth > log/40/stdout156 2> log/40/stderr156 156: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 156 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind156 ../src/curl -q --output log/40/curl156.out --include --trace-ascii log/40/trace156 --trace-config all --trace-time http://127.0.0.1:42139/156 -T log/40/put156 -u testuser:testpass --anyauth > log/40/stdout156 2> log/40/stderr156 === End of file commands.log === Start of file http_server.log 09:40:36.079800 ====> Client connect 09:40:36.080136 accept_connection 3 returned 4 09:40:36.080292 accept_connection 3 returned 0 09:40:36.081553 Read 93 bytes 09:40:36.081720 Process 93 bytes request 09:40:36.081803 Got request: GET /verifiedserver HTTP/1.1 09:40:36.081875 Are-we-friendly question received 09:40:36.082121 Wrote request (93 bytes) input to log/40/server.input 09:40:36.082327 Identifying ourselves as friends 09:40:36.083724 Response sent (56 bytes) and written to log/40/server.response 09:40:36.083922 special request received, no persistency 09:40:36.083995 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file put156 This is data we upload with PUT a second line line three four is the number of lines === End of file put156 === Start of file server.cmd Testnum 156 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file valgrind156 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind156 test 0162...[HTTP GET asking for --proxy-ntlm when some other authentication is required] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind162 ../src/curl -q --output log/41/curl162.out --include --trace-ascii log/41/trace162 --trace-config all --trace-time http://127.0.0.1:35093/162 --proxy http://127.0.0.1:35093 --proxy-user foo:bar --proxy-ntlm --fail > log/41/stdout162 2> log/41/stderr162 162: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 162 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind162 ../src/curl -q --output log/41/curl162.out --include --trace-ascii log/41/trace162 --trace-config all --trace-time http://127.0.0.1:35093/162 --proxy http://127.0.0.1:35093 --proxy-user foo:bar --proxy-ntlm --fail > log/41/stdout162 2> log/41/stderr162 === End of file commands.log === Start of file http_server.log 09:40:36.284119 ====> Client connect 09:40:36.284617 accept_connection 3 returned 4 09:40:36.284823 accept_connection 3 returned 0 09:40:36.286696 Read 93 bytes 09:40:36.286852 Process 93 bytes request 09:40:36.286996 Got request: GET /verifiedserver HTTP/1.1 09:40:36.287114 Are-we-friendly question received 09:40:36.287386 Wrote request (93 bytes) input to log/41/server.input 09:40:36.287769 Identifying ourselves as friends 09:40:36.288679 Response sent (56 bytes) and written to log/41/server.response 09:40:36.288803 special request received, no persistency 09:40:36.288883 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 162 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind162 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind169 ../src/curl -q --output log/1/curl169.out --include --trace-ascii log/1/trace169 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://127.0.0.1:40633 --proxy-user testuser:testpass --proxy-ntlm --digest --user digest:alot > log/1/stdout169 2> log/1/stderr169 libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind162 test 0172...[HTTP with cookies file and custom added cookie] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind172 ../src/curl -q --output log/53/curl172.out --include --trace-ascii log/53/trace172 --trace-config all --trace-time http://127.0.0.1:34639/we/want/172 -b log/53/jar172.txt -b "tool=curl; name=fool" > log/53/stdout172 2> log/53/stderr172 172: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 172 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind172 ../src/curl -q --output log/53/curl172.out --include --trace-ascii log/53/trace172 --trace-config all --trace-time http://127.0.0.1:34639/we/want/172 -b log/53/jar172.txt -b "tool=curl; name=fool" > log/53/stdout172 2> log/53/stderr172 === End of file commands.log === Start of file http_server.log 09:40:36.417941 ====> Client connect 09:40:36.418294 accept_connection 3 returned 4 09:40:36.418613 accept_connection 3 returned 0 09:40:36.419294 Read 93 bytes 09:40:36.419594 Process 93 bytes request 09:40:36.419736 Got request: GET /verifiedserver HTTP/1.1 09:40:36.419817 Are-we-friendly question received 09:40:36.420047 Wrote request (93 bytes) input to log/53/server.input 09:40:36.420275 Identifying ourselves as friends 09:40:36.420954 Response sent (56 bytes) and written to log/53/server.response 09:40:36.421066 special request received, no persistency 09:40:36.421134 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file jar172.txt # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. .127.0.0.1 TRUE /silly/ FALSE 0 ismatch this .127.0.0.1 TRUE / FALSE 0 partmatch present 127.0.0.1 FALSE /we/want/ FALSE 22139150993 nodomain value === End of file jar172.txt === Start of file server.cmd Testnum 172 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind172 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind172 test 0168...[HTTP with proxy-requiring-Digest to site-requiring-Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind168 ../src/curl -q --output log/3/curl168.out --include --trace-ascii log/3/trace168 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/168 --proxy http://127.0.0.1:42107 --proxy-user foo:bar --proxy-digest --digest --user digest:alot > log/3/stdout168 2> log/3/stderr168 168: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 168 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind168 ../src/curl -q --output log/3/curl168.out --include --trace-ascii log/3/trace168 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/168 --proxy http://127.0.0.1:42107 --proxy-user foo:bar --proxy-digest --digest --user digest:alot > log/3/stdout168 2> log/3/stderr168 === End of file commands.log === Start of file http_server.log 09:40:36.392902 ====> Client connect 09:40:36.393316 accept_connection 3 returned 4 09:40:36.393726 accept_connection 3 returned 0 09:40:36.393942 Read 93 bytes 09:40:36.394046 Process 93 bytes request 09:40:36.394145 Got request: GET /verifiedserver HTTP/1.1 09:40:36.394233 Are-we-friendly question received 09:40:36.394535 Wrote request (93 bytes) input to log/3/server.input 09:40:36.394759 Identifying ourselves as friends 09:40:36.395651 Response sent (56 bytes) and written to log/3/server.response 09:40:36.395788 special request received, no persistency 09:40:36.395924 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 168 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind168 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named fuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind178 ../src/curl -q --output log/54/curl178.out --include --trace-ascii log/54/trace178 --trace-config all --trace-time http://127.0.0.1:44921/178 > log/54/stdout178 2> log/54/stderr178 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind183 ../src/curl -q --output log/17/curl183.out --include --trace-ascii log/17/trace183 --trace-config all --trace-time http://deathstar.another.galaxy/183 http://a.galaxy.far.far.away/183 --proxy http://127.0.0.1:44383 > log/17/stdout183 2> log/17/stderr183 nction using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind168 test 0163...[HTTP multipart formpost with contents from a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind163 ../src/curl -q --output log/15/curl163.out --include --trace-ascii log/15/trace163 --trace-config all --trace-time http://127.0.0.1:35435/we/want/163 -F "name= log/15/stdout163 2> log/15/stderr163 163: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 163 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind163 ../src/curl -q --output log/15/curl163.out --include --trace-ascii log/15/trace163 --trace-config all --trace-time http://127.0.0.1:35435/we/want/163 -F "name= log/15/stdout163 2> log/15/stderr163 === End of file commands.log === Start of file field163 contents from a file newlinens? yes please [tab][CR] too === End of file field163 === Start of file http_server.log 09:40:36.475962 ====> Client connect 09:40:36.476529 accept_connection 3 returned 4 09:40:36.476765 accept_connection 3 returned 0 09:40:36.480096 Read 93 bytes 09:40:36.480263 Process 93 bytes request 09:40:36.480403 Got request: GET /verifiedserver HTTP/1.1 09:40:36.480662 Are-we-friendly question received 09:40:36.481024 Wrote request (93 bytes) input to log/15/server.input 09:40:36.481281 Identifying ourselves as friends 09:40:36.481950 Response sent (56 bytes) and written to log/15/server.response 09:40:36.482067 special request received, no persistency 09:40:36.482150 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 163 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file valgrind163 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind163 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/18/server/ftp_server.pid" --logfile "log/18/ftp_server.log" --logdir "log/18" --portfile "log/18/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42089 (log/18/server/ftp_server.port) RUN: FTP server is PID 79172 port 42089 * pid ftp => 79172 79172 test 0142...[FTP URL with 150 dir levels] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind142 ../src/curl -q --output log/18/curl142.out --include --trace-ascii log/18/trace142 --trace-config all --trace-time ftp://127.0.0.1:42089/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142 > log/18/stdout142 2> log/18/stderr142 142: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 142 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind142 ../src/curl -q --output log/18/curl142.out --include --trace-ascii log/18/trace142 --trace-config all --trace-time ftp://127.0.0.1:42089/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142 > log/18/stdout142 2> log/18/stderr142 === End of file commands.log === Start of file ftp_server.log 09:40:35.448224 FTP server listens on port IPv4/42089 09:40:35.449694 logged pid 79172 in log/18/server/ftp_server.pid 09:40:35.450064 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.699708 Running IPv4 version 09:40:35.700283 Listening on port 42089 09:40:35.700774 Wrote pid 80300 to log/18/server/ftp_sockctrl.pid 09:40:35.701081 Wrote port 42089 to log/18/server/ftp_server.port 09:40:35.701227 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 142 === End of file server.cmd === Start of file valgrind142 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind142 test 0171...[HTTP, get cookie with dot prefixed full domain] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind171 ../src/curl -q --output log/23/curl171.out --include --trace-ascii log/23/trace171 --trace-config all --trace-time -c log/23/jar171 -x 127.0.0.1:42467 http://z.x.com/171 > log/23/stdout171 2> log/23/stderr171 171: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 171 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind171 ../src/curl -q --output log/23/curl171.out --include --trace-ascii log/23/trace171 --trace-config all --trace-time -c log/23/jar171 -x 127.0.0.1:42467 http://z.x.com/171 > log/23/stdout171 2> log/23/stderr171 === End of file commands.log === Start of file http_server.log 09:40:36.518107 ====> Client connect 09:40:36.518627 accept_connection 3 returned 4 09:40:36.519029 accept_connection 3 returned 0 09:40:36.519198 Read 93 bytes 09:40:36.519306 Process 93 bytes request 09:40:36.519403 Got request: GET /verifiedserver HTTP/1.1 09:40:36.519597 Are-we-friendly question received 09:40:36.519838 Wrote request (93 bytes) input to log/23/server.input 09:40:36.520040 Identifying ourselves as friends 09:40:36.524930 Response sent (56 bytes) and written to log/23/server.response 09:40:36.525065 special request received, no persistency 09:40:36.525144 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 171 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind171 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind171 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/34/server/ftp_server.pid" --logfile "log/34/ftp_server.log" --logdir "log/34" --portfile "log/34/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33001 (log/34/server/ftp_server.port) RUN: FTP server is PID 80544 port 33001 * pid ftp => 80544 80544 test 0161...[FTP RETR PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind161 ../src/curl -q --output log/34/curl161.out --include --trace-ascii log/34/trace161 --trace-config all --trace-time ftp://127.0.0.1:33001/161 > log/34/stdout161 2> log/34/stderr161 161: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 161 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind161 ../src/curl -q --output log/34/curl161.out --include --trace-ascii log/34/trace161 --trace-config all --trace-time ftp://127.0.0.1:33001/161 > log/34/stdout161 2> log/34/stderr161 === End of file commands.log === Start of file ftp_server.log 09:40:36.345310 FTP server listens on port IPv4/33001 09:40:36.346381 logged pid 80544 in log/34/server/ftp_server.pid 09:40:36.346707 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:36.596288 Running IPv4 version 09:40:36.597022 Listening on port 33001 09:40:36.597607 Wrote pid 81618 to log/34/server/ftp_sockctrl.pid 09:40:36.597993 Wrote port 33001 to log/34/server/ftp_server.port 09:40:36.598180 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 161 === End of file server.cmd === Start of file valgrind161 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind161 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/42/server/ftp_server.pid" --logfile "log/42/ftp_server.log" --logdir "log/42" --portfile "log/42/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40985 (log/42/server/ftp_server.port) RUN: FTP server is PID 79706 port 40985 * pid ftp => 79706 79706 test 0149...[FTP with multiple uploads] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind149 ../src/curl -q --output log/42/curl149.out --include --trace-ascii log/42/trace149 --trace-config all --trace-time -T log/42/upload149 ftp://127.0.0.1:40985/dir1/149 -T log/42/upload149 ftp://127.0.0.1:40985/dir2/149 > log/42/stdout149 2> log/42/stderr149 149: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 149 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind149 ../src/curl -q --output log/42/curl149.out --include --trace-ascii log/42/trace149 --trace-config all --trace-time -T log/42/upload149 ftp://127.0.0.1:40985/dir1/149 -T log/42/upload149 ftp://127.0.0.1:40985/dir2/149 > log/42/stdout149 2> log/42/stderr149 === End of file commands.log === Start of file ftp_server.log 09:40:35.678678 FTP server listens on port IPv4/40985 09:40:35.680387 logged pid 79706 in log/42/server/ftp_server.pid 09:40:35.680662 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.927997 Running IPv4 version 09:40:35.930077 Listening on port 40985 09:40:35.930581 Wrote pid 80651 to log/42/server/ftp_sockctrl.pid 09:40:35.930920 Wrote port 40985 to log/42/server/ftp_server.port 09:40:35.931154 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 149 === End of file server.cmd === Start of file upload149 send away this contents === End of file upload149 === Start of file valgrind149 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind149 test 0167...[HTTP with proxy-requiring-Basic to site-requiring-Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind167 ../src/curl -q --output log/44/curl167.out --include --trace-ascii log/44/trace167 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/167 --proxy http://127.0.0.1:34655 --proxy-user foo:bar --digest --user digest:alot > log/44/stdout167 2> log/44/stderr167 167: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 167 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind167 ../src/curl -q --output log/44/curl167.out --include --trace-ascii log/44/trace167 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/167 --proxy http://127.0.0.1:34655 --proxy-user foo:bar --digest --user digest:alot > log/44/stdout167 2> log/44/stderr167 === End of file commands.log === Start of file http_server.log 09:40:36.405286 ====> Client connect 09:40:36.405792 accept_connection 3 returned 4 09:40:36.405972 accept_connection 3 returned 0 09:40:36.406110 Read 93 bytes 09:40:36.406243 Process 93 bytes request 09:40:36.406343 Got request: GET /verifiedserver HTTP/1.1 09:40:36.406507 Are-we-friendly question received 09:40:36.406781 Wrote request (93 bytes) input to log/44/server.input 09:40:36.407068 Identifying ourselves as friends 09:40:36.409234 Response sent (56 bytes) and written to log/44/server.response 09:40:36.409379 special request received, no persistency 09:40:36.409538 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 167 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind167 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind167 test 0174...[HTTP POST --anyauth to server not requiring any auth at all] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind174 ../src/curl -q --output log/48/curl174.out --include --trace-ascii log/48/trace174 --trace-config all --trace-time http://127.0.0.1:46339/174 -u testuser:testpass --anyauth -d "junkelijunk" > log/48/stdout174 2> log/48/stderr174 174: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 174 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind174 ../src/curl -q --output log/48/curl174.out --include --trace-ascii log/48/trace174 --trace-config all --trace-time http://127.0.0.1:46339/174 -u testuser:testpass --anyauth -d "junkelijunk" > log/48/stdout174 2> log/48/stderr174 === End of file commands.log === Start of file http_server.log 09:40:36.837514 ====> Client connect 09:40:36.838073 accept_connection 3 returned 4 09:40:36.838277 accept_connection 3 returned 0 09:40:36.843578 Read 93 bytes 09:40:36.843741 Process 93 bytes request 09:40:36.843862 Got request: GET /verifiedserver HTTP/1.1 09:40:36.843960 Are-we-friendly question received 09:40:36.844218 Wrote request (93 bytes) input to log/48/server.input 09:40:36.844508 Identifying ourselves as friends 09:40:36.845369 Response sent (56 bytes) and written to log/48/server.response 09:40:36.845585 special request received, no persistency 09:40:36.845679 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 174 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind174 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind174 test 0173...[HTTP RFC1867-formpost a file from stdin with "faked" filename] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind173 ../src/curl -q --output log/51/curl173.out --include --trace-ascii log/51/trace173 --trace-config all --trace-time http://127.0.0.1:34903/we/want/173 -F field1=contents1 -F "fileupload=@-;filename=/dev/null;type=text/x-null;format=x-curl" log/51/stdout173 2> log/51/stderr173 173: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 173 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind173 ../src/curl -q --output log/51/curl173.out --include --trace-ascii log/51/trace173 --trace-config all --trace-time http://127.0.0.1:34903/we/want/173 -F field1=contents1 -F "fileupload=@-;filename=/dev/null;type=text/x-null;format=x-curl" log/51/stdout173 2> log/51/stderr173 === End of file commands.log === Start of file http_server.log 09:40:36.496105 ====> Client connect 09:40:36.496671 accept_connection 3 returned 4 09:40:36.496945 accept_connection 3 returned 0 09:40:36.501173 Read 93 bytes 09:40:36.501365 Process 93 bytes request 09:40:36.501526 Got request: GET /verifiedserver HTTP/1.1 09:40:36.501611 Are-we-friendly question received 09:40:36.501842 Wrote request (93 bytes) input to log/51/server.input 09:40:36.502046 Identifying ourselves as friends 09:40:36.502891 Response sent (56 bytes) and written to log/51/server.response 09:40:36.502995 special request received, no persistency 09:40:36.503053 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 173 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file stdin-for-173 line1 line2 line3 line4 line5 line6 line7 line8 === End of file stdin-for-173 === Start of file valgrind173 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst proCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind200 ../src/curl -q --output log/59/curl200.out --trace-ascii log/59/trace200 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/59/test200.txt > log/59/stdout200 2> log/59/stderr200 cessing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind173 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/61/server/ftp_server.pid" --logfile "log/61/ftp_server.log" --logdir "log/61" --portfile "log/61/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46133 (log/61/server/ftp_server.port) RUN: FTP server is PID 79508 port 46133 * pid ftp => 79508 79508 test 0144...[FTP NLST dir list without contents, using PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind144 ../src/curl -q --output log/61/curl144.out --include --trace-ascii log/61/trace144 --trace-config all --trace-time ftp://127.0.0.1:46133/ -P - -l > log/61/stdout144 2> log/61/stderr144 144: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 144 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind144 ../src/curl -q --output log/61/curl144.out --include --trace-ascii log/61/trace144 --trace-config all --trace-time ftp://127.0.0.1:46133/ -P - -l > log/61/stdout144 2> log/61/stderr144 === End of file commands.log === Start of file ftp_server.log 09:40:35.998431 FTP server listens on port IPv4/46133 09:40:35.999666 logged pid 79508 in log/61/server/ftp_server.pid 09:40:36.000079 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:35.245284 Running IPv4 version 09:40:35.245949 Listening on port 46133 09:40:35.246335 Wrote pid 81044 to log/61/server/ftp_sockctrl.pid 09:40:35.246794 Wrote port 46133 to log/61/server/ftp_server.port 09:40:35.246999 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY NLST 450 No files found Testnum 144 === End of file server.cmd === Start of file valgrind144 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind144 test 0169...[HTTP with proxy-requiring-NTLM to site-requiring-Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind169 ../src/curl -q --output log/1/curl169.out --include --trace-ascii log/1/trace169 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://127.0.0.1:40633 --proxy-user testuser:testpass --proxy-ntlm --digest --user digest:alot > log/1/stdout169 2> log/1/stderr169 169: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 169 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind169 ../src/curl -q --output log/1/curl169.out --include --trace-ascii log/1/trace169 --trace-config all --trace-time http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://127.0.0.1:40633 --proxy-user testuser:testpass --proxy-ntlm --digest --user digest:alot > log/1/stdout169 2> log/1/stderr169 === End of file commands.log === Start of file http_server.log 09:40:36.443788 ====> Client connect 09:40:36.444098 accept_connection 3 returned 4 09:40:36.444285 accept_connection 3 returned 0 09:40:36.444506 Read 93 bytes 09:40:36.444729 Process 93 bytes request 09:40:36.444823 Got request: GET /verifiedserver HTTP/1.1 09:40:36.444903 Are-we-friendly question received 09:40:36.445203 Wrote request (93 bytes) input to log/1/server.input 09:40:36.445399 Identifying ourselves as friends 09:40:36.446379 Response sent (56 bytes) and written to log/1/server.response 09:40:36.446592 special request received, no persistency 09:40:36.446679 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 169 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind169 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventionCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind145 ../src/curl -q --output log/14/curl145.out --include --trace-ascii log/14/trace145 --trace-config all --trace-time ftp://127.0.0.1:36271/ -P - -l > log/14/stdout145 2> log/14/stderr145 s for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind169 test 0183...[HTTP GET two URLs over a single proxy with persistent connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind183 ../src/curl -q --output log/17/curl183.out --include --trace-ascii log/17/trace183 --trace-config all --trace-time http://deathstar.another.galaxy/183 http://a.galaxy.far.far.away/183 --proxy http://127.0.0.1:44383 > log/17/stdout183 2> log/17/stderr183 183: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 183 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind183 ../src/curl -q --output log/17/curl183.out --include --trace-ascii log/17/trace183 --trace-config all --trace-time http://deathstar.another.galaxy/183 http://a.galaxy.far.far.away/183 --proxy http://127.0.0.1:44383 > log/17/stdout183 2> log/17/stderr183 === End of file commands.log === Start of file http_server.log 09:40:37.338345 ====> Client connect 09:40:37.338768 accept_connection 3 returned 4 09:40:37.338925 accept_connection 3 returned 0 09:40:37.339892 Read 93 bytes 09:40:37.340028 Process 93 bytes request 09:40:37.340107 Got request: GET /verifiedserver HTTP/1.1 09:40:37.340190 Are-we-friendly question received 09:40:37.340429 Wrote request (93 bytes) input to log/17/server.input 09:40:37.342865 Identifying ourselves as friends 09:40:37.343582 Response sent (56 bytes) and written to log/17/server.response 09:40:37.343696 special request received, no persistency 09:40:37.343761 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 183 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind183 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind183 test 0178...[HTTP response with negative Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind178 ../src/curl -q --output log/54/curl178.out --include --trace-ascii log/54/trace178 --trace-config all --trace-time http://127.0.0.1:44921/178 > log/54/stdout178 2> log/54/stderr178 178: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 178 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind178 ../src/curl -q --output log/54/curl178.out --include --trace-ascii log/54/trace178 --trace-config all --trace-time http://127.0.0.1:44921/178 > log/54/stdout178 2> log/54/stderr178 === End of file commands.log === Start of file http_server.log 09:40:37.177192 ====> Client connect 09:40:37.177614 accept_connection 3 returned 4 09:40:37.177786 accept_connection 3 returned 0 09:40:37.177901 Read 93 bytes 09:40:37.177978 Process 93 bytes request 09:40:37.178070 Got request: GET /verifiedserver HTTP/1.1 09:40:37.178163 Are-we-friendly question received 09:40:37.178408 Wrote request (93 bytes) input to log/54/server.input 09:40:37.178696 Identifying ourselves as friends 09:40:37.186321 Response sent (56 bytes) and written to log/54/server.response 09:40:37.186546 special request received, no persistency 09:40:37.186642 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 178 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind178 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind178 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/14/server/ftp_server.pid" --logfile "log/14/ftp_server.log" --logdir "log/14" --portfile "log/14/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36271 (log/14/server/ftp_server.port) RUN: FTP server is PID 79507 port 36271 * pid ftp => 79507 79507 test 0145...[FTP NLST dir list with weird reply code, using PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind145 ../src/curl -q --output log/14/curl145.out --include --trace-ascii log/14/trace145 --trace-config all --trace-time ftp://127.0.0.1:36271/ -P - -l > log/14/stdout145 2> log/14/stderr145 145: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 145 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind145 ../src/curl -q --output log/14/curl145.out --include --trace-ascii log/14/trace145 --trace-config all --trace-time ftp://127.0.0.1:36271/ -P - -l > log/14/stdout145 2> log/14/stderr145 === End of file commands.log === Start of file ftp_server.log 09:40:36.337693 FTP server listens on port IPv4/36271 09:40:36.339048 logged pid 79507 in log/14/server/ftp_server.pid 09:40:36.339371 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:36.577646 Running IPv4 version 09:40:36.578303 Listening on port 36271 09:40:36.589998 Wrote pid 81549 to log/14/server/ftp_sockctrl.pid 09:40:36.590349 Wrote port 36271 to log/14/server/ftp_server.port 09:40:36.590646 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY NLST 550 Have a taste on this Testnum 145 === End of file server.cmd === Start of file valgrind145 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind145 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind180 ../src/curl -q --output log/45/curl180.out --include --trace-ascii log/45/trace180 --trace-config all --trace-time http://127.0.0.1:34239/we/want/180 -T log/45/test180.txt --http1.0 > log/45/stdout180 2> log/45/stderr180 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind175 ../src/curl -q --output log/63/curl175.out --include --trace-ascii log/63/trace175 --trace-config all --trace-time http://127.0.0.1:38797/175 -u auser:apasswd --digest -d "junkelijunk" > log/63/stdout175 2> log/63/stderr175 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind182 ../src/curl -q --output log/58/curl182.out --include --trace-ascii log/58/trace182 --trace-config all --trace-time ftp://127.0.0.1:38901/182 > log/58/stdout182 2> log/58/stderr182 test 0200...[basic file:// file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind200 ../src/curl -q --output log/59/curl200.out --trace-ascii log/59/trace200 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/59/test200.txt > log/59/stdout200 2> log/59/stderr200 200: data FAILED: --- log/59/check-expected 2025-07-18 09:40:38.148578522 +0000 +++ log/59/check-generated 2025-07-18 09:40:38.147609482 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/59/ dir after test 200 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind200 ../src/curl -q --output log/59/curl200.out --trace-ascii log/59/trace200 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/59/test200.txt > log/59/stdout200 2> log/59/stderr200 === End of file commands.log === Start of file server.cmd Testnum 200 === End of file server.cmd === Start of file test200.txt foo bar bar foo moo === End of file test200.txt === Start of file valgrind200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind200 test 0180...[HTTP 1.0 PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind180 ../src/curl -q --output log/45/curl180.out --include --trace-ascii log/45/trace180 --trace-config all --trace-time http://127.0.0.1:34239/we/want/180 -T log/45/test180.txt --http1.0 > log/45/stdout180 2> log/45/stderr180 180: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 180 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind180 ../src/curl -q --output log/45/curl180.out --include --trace-ascii log/45/trace180 --trace-config all --trace-time http://127.0.0.1:34239/we/want/180 -T log/45/test180.txt --http1.0 > log/45/stdout180 2> log/45/stderr180 === End of file commands.log === Start of file http_server.log 09:40:36.199077 ====> Client connect 09:40:36.199389 accept_connection 3 returned 4 09:40:36.199704 accept_connection 3 returned 0 09:40:36.199847 Read 93 bytes 09:40:36.199938 Process 93 bytes request 09:40:36.200034 Got request: GET /verifiedserver HTTP/1.1 09:40:36.200119 Are-we-friendly question received 09:40:36.200344 Wrote request (93 bytes) input to log/45/server.input 09:40:36.200641 Identifying ourselves as friends 09:40:36.201541 Response sent (56 bytes) and written to log/45/server.response 09:40:36.201660 special request received, no persistency 09:40:36.201732 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 180 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file test180.txt Weird file to upload for testing the PUT feature === End of file test180.txt === Start of file valgrind180 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind180 test 0175...[HTTP POST --digest to server not requiring any auth at all] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind175 ../src/curl -q --output log/63/curl175.out --include --trace-ascii log/63/trace175 --trace-config all --trace-time http://127.0.0.1:38797/175 -u auser:apasswd --digest -d "junkelijunk" > log/63/stdout175 2> log/63/stderr175 175: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 175 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind175 ../src/curl -q --output log/63/curl175.out --include --trace-ascii log/63/trace175 --trace-config all --trace-time http://127.0.0.1:38797/175 -u auser:apasswd --digest -d "junkelijunk" > log/63/stdout175 2> log/63/stderr175 === End of file commands.log === Start of file http_server.log 09:40:37.164866 ====> Client connect 09:40:37.165204 accept_connection 3 retuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind181 ../src/curl -q --output log/43/curl181.out --include --trace-ascii log/43/trace181 --trace-config all --trace-time http://127.0.0.1:41267/we/want/181 --data-binary @log/43/test181.txt --http1.0 > log/43/stdout181 2> log/43/stderr181 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind203 ../src/curl -q --output log/10/curl203.out --trace-ascii log/10/trace203 --trace-config all --trace-time file:/build/curl/src/build-curl/tests/log/10/test203.txt > log/10/stdout203 2> log/10/stderr203 rned 4 09:40:37.165381 accept_connection 3 returned 0 09:40:37.166087 Read 93 bytes 09:40:37.166278 Process 93 bytes request 09:40:37.166383 Got request: GET /verifiedserver HTTP/1.1 09:40:37.166565 Are-we-friendly question received 09:40:37.166848 Wrote request (93 bytes) input to log/63/server.input 09:40:37.167091 Identifying ourselves as friends 09:40:37.167800 Response sent (56 bytes) and written to log/63/server.response 09:40:37.167911 special request received, no persistency 09:40:37.167988 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 175 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind175 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind175 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind176 ../src/curl -q --output log/64/curl176.out --include --trace-ascii log/64/trace176 --trace-config all --trace-time http://127.0.0.1:33073/176 -u auser:apasswd --ntlm -d "junkelijunk" > log/64/stdout176 2> log/64/stderr176 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind192 ../src/curl -q --include --trace-ascii log/39/trace192 --trace-config all --trace-time http://127.0.0.1:42899/192 -w "%{num_connects}\n" > log/39/stdout192 2> log/39/stderr192 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind177 ../src/curl -q --output log/50/curl177.out --include --trace-ascii log/50/trace177 --trace-config all --trace-time http://127.0.0.1:45651/177 -u auser:apasswd --digest -d "junkelijunk" > log/50/stdout177 2> log/50/stderr177 setenv MSYS2_ARG_CONV_EXCL = file: test 0203...[file:/path URL with a single slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind203 ../src/curl -q --output log/10/curl203.out --trace-ascii log/10/trace203 --trace-config all --trace-time file:/build/curl/src/build-curl/tests/log/10/test203.txt > log/10/stdout203 2> log/10/stderr203 203: data FAILED: --- log/10/check-expected 2025-07-18 09:40:38.275609417 +0000 +++ log/10/check-generated 2025-07-18 09:40:38.272609419 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/10/ dir after test 203 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind203 ../src/curl -q --output log/10/curl203.out --trace-ascii log/10/trace203 --trace-config all --trace-time file:/build/curl/src/build-curl/tests/log/10/test203.txt > log/10/stdout203 2> log/10/stderr203 === End of file commands.log === Start of file server.cmd Testnum 203 === End of file server.cmd === Start of file test203.txt foo bar bar foo moo === End of file test203.txt === Start of file valgrind203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind203 test 0181...[HTTP 1.0 POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind181 ../src/curl -q --output log/43/curl181.out --include --trace-ascii log/43/trace181 --trace-config all --trace-time http://127.0.0.1:41267/we/want/181 --data-binary @log/43/test181.txt --http1.0 > log/43/stdout181 2> log/43/stderr181 181: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 181 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind181 ../src/curl -q --output log/43/curl181.out --include --trace-ascii log/43/trace181 --trace-config all --trace-time http://127.0.0.1:41267/we/want/181 --data-binary @log/43/test181.txt --http1.0 > log/43/stdout181 2> log/43/stderr181 === End of file commands.log === Start of file http_server.log 09:40:37.407894 ====> Client connect 09:40:37.408259 accept_connection 3 returned 4 09:40:37.408663 accept_connection 3 returned 0 09:40:37.408930 Read 93 bytes 09:40:37.409032 Process 93 bytes request 09:40:37.409162 Got request: GET /verifiedserver HTTP/1.1 09:40:37.409352 Are-we-friendly question received 09:40:37.409723 Wrote request (93 bytes) input to log/43/server.input 09:40:37.410215 Identifying ourselves as friends 09:40:37.415682 Response sent (56 bytes) and written to log/43/server.response 09:40:37.415870 special request received, no persistency 09:40:37.415971 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 181 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file test181.txt Weird file to upload for testing the POST feature === End of file test181.txt === Start of file valgrind181 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind181 test 0182...[FTP download an empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind182 ../src/curl -q --output log/58/curl182.out --include --trace-ascii log/58/trace182 --trace-config all --trace-time ftp://127.0.0.1:38901/182 > log/58/stdout182 2> log/58/stderr182 182: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 182 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind182 ../src/curl -q --output log/58/curl182.out --include --trace-ascii log/58/trace182 --trace-config all --trace-time ftp://127.0.0.1:38901/182 > log/58/stdout182 2> log/58/stderr182 === End of file commands.log === Start of file ftp_server.log 09:40:37.061851 ====> Client connect 09:40:37.063886 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:37.066241 < "USER anonymous" 09:40:37.066648 > "331 We are happy you popped in![CR][LF]" 09:40:37.068244 < "PASS ftp@example.com" 09:40:37.068655 > "230 Welcome you silly person[CR][LF]" 09:40:37.070210 < "PWD" 09:40:37.070600 > "257 "/" is current directory[CR][LF]" 09:40:37.072140 < "EPSV" 09:40:37.072401 ====> Passive DATA channel requested by client 09:40:37.072557 DATA sockfilt for passive data channel starting... 09:40:37.091101 DATA sockfilt for passive data channel started (pid 83030) 09:40:37.092432 DATA sockfilt for passive data channel listens on port 43157 09:40:37.095085 > "229 Entering Passive Mode (|||43157|)[LF]" 09:40:37.095365 Client has been notified that DATA conn will be accepted on port 43157 09:40:37.099998 Client connects to port 43157 09:40:37.100305 ====> Client established passive DATA connection on port 43157 09:40:37.101124 < "TYPE I" 09:40:37.104041 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:37.104691 < "SIZE verifiedserver" 09:40:37.105489 > "213 17[CR][LF]" 09:40:37.107319 < "RETR verifiedserver" 09:40:37.108106 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:37.108913 =====> Closing passive DATA connection... 09:40:37.109134 Server disconnects passive DATA connection 09:40:37.111415 Server disconnected passive DATA connection 09:40:37.111692 DATA sockfilt for passive data channel quits (pid 83030) 09:40:37.113714 DATA sockfilt for passive data channel quit (pid 83030) 09:40:37.114053 =====> Closed passive DATA connection 09:40:37.115021 > "226 File transfer complete[CR][LF]" 09:40:37.153913 < "QUIT" 09:40:37.155045 > "221 bye bye baby[CR][LF]" 09:40:37.159897 MAIN sockfilt said DISC 09:40:37.161632 ====> Client disconnected 09:40:37.162245 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:37.314611 ====> Client connect 09:40:37.317528 Received DATA (on stdin) 09:40:37.317828 > 160 bytes data, server => client 09:40:37.317934 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:37.318047 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:37.318148 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:37.319036 < 16 bytes data, client => server 09:40:37.319172 'USER anonymous\r\n' 09:40:37.320387 Received DATA (on stdin) 09:40:37.320607 > 33 bytes data, server => client 09:40:37.320698 '331 We are happy you popped in!\r\n' 09:40:37.321388 < 22 bytes data, client => server 09:40:37.321592 'PASS ftp@example.com\r\n' 09:40:37.322415 Received DATA (on stdin) 09:40:37.322637 > 30 bytes data, server => client 09:40:37.322729 '230 Welcome you silly person\r\n' 09:40:37.323335 < 5 bytes data, client => server 09:40:37.323536 'PWD\r\n' 09:40:37.324329 Received DATA (on stdin) 09:40:37.324543 > 30 bytes data, server => client 09:40:37.324649 '257 "/" is current directory\r\n' 09:40:37.325305 < 6 bytes data, client => server 09:40:37.325514 'EPSV\r\n' 09:40:37.351542 Received DATA (on stdin) 09:40:37.351696 > 38 bytes data, server => client 09:40:37.351771 '229 Entering Passive Mode (|||43157|)\n' 09:40:37.353009 < 8 bytes data, client => server 09:40:37.353134 'TYPE I\r\n' 09:40:37.355172 Received DATA (on stdin) 09:40:37.355314 > 33 bytes data, server => client 09:40:37.356573 '200 I modify TYPE as you wanted\r\n' 09:40:37.357157 < 21 bytes data, client => server 09:40:37.357293 'SIZE verifiedserver\r\n' 09:40:37.358852 Received DATA (on stdin) 09:40:37.358982 > 8 bytes data, server => client 09:40:37.359513 '213 17\r\n' 09:40:37.360144 < 21 bytes data, client => server 09:40:37.360320 'RETR verifiedserver\r\n' 09:40:37.361396 Received DATA (on stdin) 09:40:37.361599 > 29 bytes data, server => client 09:40:37.363027 '150 Binary junk (17 bytes).\r\n' 09:40:37.368064 Received DATA (on stdin) 09:40:37.368205 > 28 bytes data, server => client 09:40:37.368379 '226 File transfer complete\r\n' 09:40:37.406606 < 6 bytes data, client => server 09:40:37.406826 'QUIT\r\n' 09:40:37.407975 Received DATA (on stdin) 09:40:37.408117 > 18 bytes data, server => client 09:40:37.408311 '221 bye bye baby\r\n' 09:40:37.412673 ====> Client disconnect 09:40:37.413923 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:37.343033 Running IPv4 version 09:40:37.343747 Listening on port 43157 09:40:37.344141 Wrote pid 83030 to log/58/server/ftp_sockdata.pid 09:40:37.344326 Received PING (on stdin) 09:40:37.345487 Received PORT (on stdin) 09:40:37.353311 ====> Client connect 09:40:37.363368 Received DATA (on stdin) 09:40:37.363568 > 17 bytes data, server => client 09:40:37.363647 'WE ROOLZ: 77973\r\n' 09:40:37.363907 Received DISC (on stdin) 09:40:37.364047 ====> Client forcibly disconnected 09:40:37.365888 Received QUIT (on stdin) 09:40:37.366017 quits 09:40:37.366380 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 182 === End of file server.cmd === Start of file valgrind182 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind182 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind201 ../src/curl -q --output log/57/curl201.out --include --trace-ascii log/57/trace201 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/57/non-existent-file.txt > log/57/stdout201 2> log/57/stderr201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind187 ../src/curl -q --output log/55/curl187.out --include --trace-ascii log/55/trace187 --trace-config all --trace-time http://127.0.0.1:33071?oh=what-weird=test/187 -L > log/55/stdout187 2> log/55/stderr187 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind186 ../src/curl -q --output log/46/curl186.out --include --trace-ascii log/46/trace186 --trace-config all --trace-time http://127.0.0.1:46523/we/want/186 -F "name=daniel;type=moo/foo-.4" -F "html= hello;type=text/html;charset=verymoo" > log/46/stdout186 2> log/46/stderr186 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind198 ../src/curl -q --output log/33/curl198.out --include --trace-ascii log/33/trace198 --trace-config all --trace-time http://127.0.0.1:36559/198 --retry 1000 > log/33/stdout198 2> log/33/stderr198 test 0192...[HTTP GET -w num_connects with one simple connect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind192 ../src/curl -q --include --trace-ascii log/39/trace192 --trace-config all --trace-time http://127.0.0.1:42899/192 -w "%{num_connects}\n" > log/39/stdout192 2> log/39/stderr192 192: stdout FAILED: --- log/39/check-expected 2025-07-18 09:40:38.369426230 +0000 +++ log/39/check-generated 2025-07-18 09:40:38.368609370 +0000 @@ -1,7 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 8[LF] -Connection: close[LF] -[LF] -monster[LF] -1[LF] == Contents of files in the log/39/ dir after test 192 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 8[LF] Connection: close[LF] [LF] monster[LF] 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind192 ../src/curl -q --include --trace-ascii log/39/trace192 --trace-config all --trace-time http://127.0.0.1:42899/192 -w "%{num_connects}\n" > log/39/stdout192 2> log/39/stderr192 === End of file commands.log === Start of file http_server.log 09:40:37.514043 ====> Client connect 09:40:37.514780 accept_connection 3 returned 4 09:40:37.514971 accept_connection 3 returned 0 09:40:37.516349 Read 93 bytes 09:40:37.516718 Process 93 bytes request 09:40:37.516849 Got request: GET /verifiedserver HTTP/1.1 09:40:37.516950 Are-we-friendly question received 09:40:37.517264 Wrote request (93 bytes) input to log/39/server.input 09:40:37.517978 Identifying ourselves as friends 09:40:37.519915 Response sent (56 bytes) and written to log/39/server.response 09:40:37.520032 special request received, no persistency 09:40:37.520092 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 192 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind192 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind192 test 0177...[HTTP POST --digest to server doing a 302-location response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind177 ../src/curl -q --output log/50/curl177.out --include --trace-ascii log/50/trace177 --trace-config all --trace-time http://127.0.0.1:45651/177 -u auser:apasswd --digest -d "junkelijunk" > log/50/stdout177 2> log/50/stderr177 177: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 177 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind177 ../src/curl -q --output log/50/curl177.out --include --trace-ascii log/50/trace177 --trace-config all --trace-time http://127.0.0.1:45651/177 -u auser:apasswd --digest -d "junkelijunk" > log/50/stdout177 2> log/50/stderr177 === End of file commands.log === Start of file http_server.log 09:40:37.288998 ====> Client connect 09:40:37.289322 accept_connection 3 returned 4 09:40:37.289571 accept_connection 3 returned 0 09:40:37.289723 Read 93 bytes 09:40:37.289806 Process 93 bytes request 09:40:37.289879 Got request: GET /verifiedserver HTTP/1.1 09:40:37.289943 Are-we-friendly question received 09:40:37.290147 Wrote request (93 bytes) input to log/50/server.input 09:40:37.290313 Identifying ourselves as friends 09:40:37.291092 Response sent (56 bytes) and written to log/50/server.response 09:40:37.291210 special request received, no persistency 09:40:37.291291 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 177 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind177 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind177 test 0176...[HTTP POST -CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind197 ../src/curl -q --include --trace-ascii log/12/trace197 --trace-config all --trace-time http://127.0.0.1:45579/197 --retry 1000 > log/12/stdout197 2> log/12/stderr197 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind202 ../src/curl -q --trace-ascii log/8/trace202 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/8/test202.txt FILE://localhost/build/curl/src/build-curl/tests/log/8/test202.txt > log/8/stdout202 2> log/8/stderr202 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind194 ../src/curl -q --output log/32/curl194.out --include --trace-ascii log/32/trace194 --trace-config all --trace-time http://127.0.0.1:45607/want/194 -C 87 --fail > log/32/stdout194 2> log/32/stderr194 -ntlm to server not requiring any auth at all] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind176 ../src/curl -q --output log/64/curl176.out --include --trace-ascii log/64/trace176 --trace-config all --trace-time http://127.0.0.1:33073/176 -u auser:apasswd --ntlm -d "junkelijunk" > log/64/stdout176 2> log/64/stderr176 176: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 176 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind176 ../src/curl -q --output log/64/curl176.out --include --trace-ascii log/64/trace176 --trace-config all --trace-time http://127.0.0.1:33073/176 -u auser:apasswd --ntlm -d "junkelijunk" > log/64/stdout176 2> log/64/stderr176 === End of file commands.log === Start of file http_server.log 09:40:37.052824 ====> Client connect 09:40:37.053141 accept_connection 3 returned 4 09:40:37.053319 accept_connection 3 returned 0 09:40:37.056119 Read 93 bytes 09:40:37.056270 Process 93 bytes request 09:40:37.056370 Got request: GET /verifiedserver HTTP/1.1 09:40:37.056558 Are-we-friendly question received 09:40:37.056820 Wrote request (93 bytes) input to log/64/server.input 09:40:37.057109 Identifying ourselves as friends 09:40:37.057934 Response sent (56 bytes) and written to log/64/server.response 09:40:37.058042 special request received, no persistency 09:40:37.058123 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 176 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind176 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind176 test 0198...[HTTP GET --retry on 503 error with output to file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind198 ../src/curl -q --output log/33/curl198.out --include --trace-ascii log/33/trace198 --trace-config all --trace-time http://127.0.0.1:36559/198 --retry 1000 > log/33/stdout198 2> log/33/stderr198 198: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 198 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind198 ../src/curl -q --output log/33/curl198.out --include --trace-ascii log/33/trace198 --trace-config all --trace-time http://127.0.0.1:36559/198 --retry 1000 > log/33/stdout198 2> log/33/stderr198 === End of file commands.log === Start of file http_server.log 09:40:37.618325 ====> Client connect 09:40:37.618759 accept_connection 3 returned 4 09:40:37.618922 accept_connection 3 returned 0 09:40:37.619049 Read 93 bytes 09:40:37.619139 Process 93 bytes request 09:40:37.619237 Got request: GET /verifiedserver HTTP/1.1 09:40:37.619332 Are-we-friendly question received 09:40:37.620700 Wrote request (93 bytes) input to log/33/server.input 09:40:37.620884 Identifying ourselves as friends 09:40:37.621613 Response sent (56 bytes) and written to log/33/server.response 09:40:37.621717 special request received, no persistency 09:40:37.621801 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 198 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind198 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind198 test 0186...[HTTP RFC1867-type formposting with types on text fields] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind186 ../src/curl -q --output log/46/curl186.out --include --trace-ascii log/46/trace186 --trace-config all --trace-time http://127.0.0.1:46523/we/want/1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind188 ../src/curl -q --output log/52/curl188.out --include --trace-ascii log/52/trace188 --trace-config all --trace-time http://127.0.0.1:40089/188 -C 50 -L > log/52/stdout188 2> log/52/stderr188 86 -F "name=daniel;type=moo/foo-.4" -F "html= hello;type=text/html;charset=verymoo" > log/46/stdout186 2> log/46/stderr186 186: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 186 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind186 ../src/curl -q --output log/46/curl186.out --include --trace-ascii log/46/trace186 --trace-config all --trace-time http://127.0.0.1:46523/we/want/186 -F "name=daniel;type=moo/foo-.4" -F "html= hello;type=text/html;charset=verymoo" > log/46/stdout186 2> log/46/stderr186 === End of file commands.log === Start of file http_server.log 09:40:37.429069 ====> Client connect 09:40:37.429391 accept_connection 3 returned 4 09:40:37.429749 accept_connection 3 returned 0 09:40:37.429898 Read 93 bytes 09:40:37.430012 Process 93 bytes request 09:40:37.430102 Got request: GET /verifiedserver HTTP/1.1 09:40:37.430195 Are-we-friendly question received 09:40:37.430537 Wrote request (93 bytes) input to log/46/server.input 09:40:37.431004 Identifying ourselves as friends 09:40:37.433532 Response sent (56 bytes) and written to log/46/server.response 09:40:37.433666 special request received, no persistency 09:40:37.433741 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 186 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind186 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind186 test 0187...[HTTP redirect with bad host name separation and slash in parameters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind187 ../src/curl -q --output log/55/curl187.out --include --trace-ascii log/55/trace187 --trace-config all --trace-time http://127.0.0.1:33071?oh=what-weird=test/187 -L > log/55/stdout187 2> log/55/stderr187 187: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 187 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind187 ../src/curl -q --output log/55/curl187.out --include --trace-ascii log/55/trace187 --trace-config all --trace-time http://127.0.0.1:33071?oh=what-weird=test/187 -L > log/55/stdout187 2> log/55/stderr187 === End of file commands.log === Start of file http_server.log 09:40:37.594879 ====> Client connect 09:40:37.595195 accept_connection 3 returned 4 09:40:37.595371 accept_connection 3 returned 0 09:40:37.595774 Read 93 bytes 09:40:37.595892 Process 93 bytes request 09:40:37.595980 Got request: GET /verifiedserver HTTP/1.1 09:40:37.596058 Are-we-friendly question received 09:40:37.596281 Wrote request (93 bytes) input to log/55/server.input 09:40:37.596622 Identifying ourselves as friends 09:40:37.597582 Response sent (56 bytes) and written to log/55/server.response 09:40:37.599642 special request received, no persistency 09:40:37.599777 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 187 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind187 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind187 test 0201...[missing file:// file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind201 ../src/curl -q --output log/57/curl201.out --include --trace-ascii log/57/trace201 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/57/non-existent-file.txt > log/57/stdout201 2> log/57/stderr201 curl returned 1, when expecting 37 201: exit FAILED == Contents of files in the log/57/ dir after test 201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind201 ../src/curl -q --output log/57/curl201.out --include --trace-ascii log/57/trace201 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/57/non-existent-file.txt > log/57/stdout201 2> log/57/stderr201 === End of file commands.log === Start of file server.cmd Testnum 201 === End of file server.cmd === Start of file valgrind201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind204 ../src/curl -q --output log/31/curl204.out --trace-ascii log/31/trace204 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/31/result204.txt -T log/31/upload204.txt > log/31/stdout204 2> log/31/stderr204 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind185 ../src/curl -q --output log/56/curl185.out --include --trace-ascii log/56/trace185 --trace-config all --trace-time http://deathstar.another.galaxy/185 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43265 > log/56/stdout185 2> log/56/stderr185 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind184 ../src/curl -q --output log/35/curl184.out --include --trace-ascii log/35/trace184 --trace-config all --trace-time http://deathstar.another.galaxy/184 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43179 > log/35/stdout184 2> log/35/stderr184 test 0202...[two file:// URLs to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind202 ../src/curl -q --trace-ascii log/8/trace202 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/8/test202.txt FILE://localhost/build/curl/src/build-curl/tests/log/8/test202.txt > log/8/stdout202 2> log/8/stderr202 202: stdout FAILED: --- log/8/check-expected 2025-07-18 09:40:38.549608879 +0000 +++ log/8/check-generated 2025-07-18 09:40:38.548609279 +0000 @@ -1,2 +0,0 @@ -contents in a single file[LF] -contents in a single file[LF] == Contents of files in the log/8/ dir after test 202 === Start of file check-expected contents in a single file[LF] contents in a single file[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind202 ../src/curl -q --trace-ascii log/8/trace202 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/8/test202.txt FILE://localhost/build/curl/src/build-curl/tests/log/8/test202.txt > log/8/stdout202 2> log/8/stderr202 === End of file commands.log === Start of file server.cmd Testnum 202 === End of file server.cmd === Start of file test202.txt contents in a single file === End of file test202.txt === Start of file valgrind202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind202 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind179 ../src/curl -q --output log/62/curl179.out --include --trace-ascii log/62/trace179 --trace-config all --trace-time http://supertrooper.fake/c/179 -b log/62/injar179 -x 127.0.0.1:38899 > log/62/stdout179 2> log/62/stderr179 test 0197...[HTTP GET --retry on 503 error with output to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind197 ../src/curl -q --include --trace-ascii log/12/trace197 --trace-config all --trace-time http://127.0.0.1:45579/197 --retry 1000 > log/12/stdout197 2> log/12/stderr197 197: stdout FAILED: --- log/12/check-expected 2025-07-18 09:40:38.606609250 +0000 +++ log/12/check-generated 2025-07-18 09:40:38.604609251 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 503 BAD swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 21[LF] -[LF] -server not available[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Connection: close[LF] -[LF] -ok[LF] == Contents of files in the log/12/ dir after test 197 === Start of file check-expected HTTP/1.1 503 BAD swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 21[LF] [LF] server not available[LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Connection: close[LF] [LF] ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind197 ../src/curl -q --include --trace-ascii log/12/trace197 --trace-config all --trace-time http://127.0.0.1:45579/197 --retry 1000 > log/12/stdout197 2> log/12/stderr197 === End of file commands.log === Start of file http_server.log 09:40:37.610028 ====> Client connect 09:40:37.610624 accept_connection 3 returned 4 09:40:37.610830 accept_connection 3 returned 0 09:40:37.617957 Read 93 bytes 09:40:37.618113 Process 93 bytes request 09:40:37.618213 Got request: GET /verifiedserver HTTP/1.1 09:40:37.618306 Are-we-friendly question received 09:40:37.618659 Wrote request (93 bytes) input to log/12/server.input 09:40:37.618881 Identifying ourselves as friends 09:40:37.619891 Response sent (56 bytes) and written to log/12/server.response 09:40:37.620005 special request received, no persistency 09:40:37.620069 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 197 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind197 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind197 test 0194...[HTTP resume transfer with the whole file already downloaded and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind194 ../src/curl -q --output log/32/curl194.out --include --trace-ascii log/32/trace194 --trace-config all --trace-time http://127.0.0.1:45607/want/194 -C 87 --fail > log/32/stdout194 2> log/32/stderr194 194: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 194 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind194 ../src/curl -q --output log/32/curl194.out --include --trace-ascii log/32/trace194 --trace-config all --trace-time http://127.0.0.1:45607/want/194 -C 87 --fail > log/32/stdout194 2> log/32/stderr194 === End of file commands.log === Start of file http_server.log 09:40:37.542860 ====> Client connect 09:40:37.543158 accept_connection 3 returned 4 09:40:37.543321 accept_connection 3 returned 0 09:40:37.545060 Read 93 bytes 09:40:37.545260 Process 93 bytes request 09:40:37.545347 Got request: GET /verifiedserver HTTP/1.1 09:40:37.545417 Are-we-friendly question received 09:40:37.545795 Wrote request (93 bytes) input to log/32/server.input 09:40:37.546021 Identifying ourselves as friends 09:40:37.546759 Response sent (56 bytes) and written to log/32/server.response 09:40:37.546871 special request received, no persistency 09:40:37.546940 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 194 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind194 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind205 ../src/curl -q --output log/49/curl205.out --trace-ascii log/49/trace205 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/49/nonexisting/result205.txt -T log/49/upload205.txt > log/49/stdout205 2> log/49/stderr205 package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind194 test 0188...[HTTP GET with resume and redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind188 ../src/curl -q --output log/52/curl188.out --include --trace-ascii log/52/trace188 --trace-config all --trace-time http://127.0.0.1:40089/188 -C 50 -L > log/52/stdout188 2> log/52/stderr188 188: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 188 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind188 ../src/curl -q --output log/52/curl188.out --include --trace-ascii log/52/trace188 --trace-config all --trace-time http://127.0.0.1:40089/188 -C 50 -L > log/52/stdout188 2> log/52/stderr188 === End of file commands.log === Start of file http_server.log 09:40:37.407997 ====> Client connect 09:40:37.408378 accept_connection 3 returned 4 09:40:37.408908 accept_connection 3 returned 0 09:40:37.409233 Read 93 bytes 09:40:37.413001 Process 93 bytes request 09:40:37.413139 Got request: GET /verifiedserver HTTP/1.1 09:40:37.413296 Are-we-friendly question received 09:40:37.413768 Wrote request (93 bytes) input to log/52/server.input 09:40:37.414100 Identifying ourselves as friends 09:40:37.416766 Response sent (56 bytes) and written to log/52/server.response 09:40:37.416884 special request received, no persistency 09:40:37.416986 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 188 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind188 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind188 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind195 ../src/curl -q --output log/36/curl195.out --include --trace-ascii log/36/trace195 --trace-config all --trace-time ftp://127.0.0.1:45965/195 > log/36/stdout195 2> log/36/stderr195 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind189 ../src/curl -q --output log/47/curl189.out --include --trace-ascii log/47/trace189 --trace-config all --trace-time http://127.0.0.1:41103/189 -C 50 -L > log/47/stdout189 2> log/47/stderr189 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind196 ../src/curl -q --include --trace-ascii log/22/trace196 --trace-config all --trace-time ftp://127.0.0.1:41867/196 --retry 1 -w '%{num_retries}\n' > log/22/stdout196 2> log/22/stderr196 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind193 ../src/curl -q --include --trace-ascii log/37/trace193 --trace-config all --trace-time http://127.0.0.1:37551/193 -w "%{num_connects}\n" -L > log/37/stdout193 2> log/37/stderr193 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind199 ../src/curl -q --output log/60/curl199.out --include --trace-ascii log/60/trace199 --trace-config all --trace-time -d "foo=moo&moo=poo" "http://127.0.0.1:38843/{199,199}" -G > log/60/stdout199 2> log/60/stderr199 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind191 ../src/curl -q --output log/21/curl191.out --include --trace-ascii log/21/trace191 --trace-config all --trace-time "ftp://use%3fr:pass%3fword@127.0.0.1:40295/191" > log/21/stdout191 2> log/21/stderr191 test 0204...["upload" with file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind204 ../src/curl -q --output log/31/curl204.out --trace-ascii log/31/trace204 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/31/result204.txt -T log/31/upload204.txt > log/31/stdout204 2> log/31/stderr204 204: output (log/31/result204.txt) FAILED: --- log/31/check-expected 2025-07-18 09:40:38.701110782 +0000 +++ log/31/check-generated 2025-07-18 09:40:38.699609203 +0000 @@ -1,5 +0,0 @@ -data[LF] -in[LF] -file[LF] -to[LF] -write[LF] == Contents of files in the log/31/ dir after test 204 === Start of file check-expected data[LF] in[LF] file[LF] to[LF] write[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind204 ../src/curl -q --output log/31/curl204.out --trace-ascii log/31/trace204 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/31/result204.txt -T log/31/upload204.txt > log/31/stdout204 2> log/31/stderr204 === End of file commands.log === Start of file server.cmd Testnum 204 === End of file server.cmd === Start of file upload204.txt data in file to write === End of file upload204.txt === Start of file valgrind204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind204 test 0184...[HTTP replace Host: when following Location: to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind184 ../src/curl -q --output log/35/curl184.out --include --trace-ascii log/35/trace184 --trace-config all --trace-time http://deathstar.another.galaxy/184 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43179 > log/35/stdout184 2> log/35/stderr184 184: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 184 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind184 ../src/curl -q --output log/35/curl184.out --include --trace-ascii log/35/trace184 --trace-config all --trace-time http://deathstar.another.galaxy/184 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43179 > log/35/stdout184 2> log/35/stderr184 === End of file commands.log === Start of file http_server.log 09:40:37.486193 ====> Client connect 09:40:37.486656 accept_connection 3 returned 4 09:40:37.486853 accept_connection 3 returned 0 09:40:37.486978 Read 93 bytes 09:40:37.487077 Process 93 bytes request 09:40:37.487166 Got request: GET /verifiedserver HTTP/1.1 09:40:37.487239 Are-we-friendly question received 09:40:37.487506 Wrote request (93 bytes) input to log/35/server.input 09:40:37.487712 Identifying ourselves as friends 09:40:37.488359 Response sent (56 bytes) and written to log/35/server.response 09:40:37.488538 special request received, no persistency 09:40:37.488607 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 184 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind184 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind184 test 0185...[HTTP replace Host: when following Location: on the same host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind185 ../src/curl -q --output log/56/curl185.out --include --trace-ascii log/56/trace185 --trace-config all --trace-time http://deathstar.another.galaxy/185 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43265 > log/56/stdout185 2> log/56/stderr185 185: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 185 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind185 ../src/curl -q --output log/56/curl185.out --include --trace-ascii log/56/trace185 --trace-config all --trace-time http://deathstar.another.galaxy/185 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43265 > log/56/stdout185 2> log/56/stderr185 === End of file commands.log === Start of file http_server.log 09:40:37.424928 ====> Client connect 09:40:37.426630 accept_connection 3 returned 4 09:40:37.426884 accept_connection 3 returned 0 09:40:37.427053 Read 93 bytes 09:40:37.427185 Process 93 bytes request 09:40:37.427291 Got request: GET /verifiedserver HTTP/1.1 09:40:37.427376 Are-we-friendly question received 09:40:37.427715 Wrote request (93 bytes) input to log/56/server.input 09:40:37.427945 Identifying ourselves as friends 09:40:37.429878 Response sent (56 bytes) and written to log/56/server.response 09:40:37.430024 special request received, no persistency 09:40:37.430122 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 185 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind185 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind185 test 0179...[HTTP using proxy and cookies with path checks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind179 ../src/curl -q --output log/62/curl179.out --include --trace-ascii log/62/trace179 --trace-config all --trace-time http://supertrooper.fake/c/179 -b log/62/injar179 -x 127.0.0.1:38899 > log/62/stdout179 2> log/62/stderr179 179: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 179 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind179 ../src/curl -q --output log/62/curl179.out --include --trace-ascii log/62/trace179 --trace-config all --trace-time http://supertrooper.fake/c/179 -b log/62/injar179 -x 127.0.0.1:38899 > log/62/stdout179 2> log/62/stderr179 === End of file commands.log === Start of file http_server.log 09:40:37.394759 ====> Client connect 09:40:37.395138 accept_connection 3 returned 4 09:40:37.395330 accept_connection 3 returned 0 09:40:37.402643 Read 93 bytes 09:40:37.402799 Process 93 bytes request 09:40:37.402897 Got request: GET /verifiedserver HTTP/1.1 09:40:37.402986 Are-we-friendly question received 09:40:37.403261 Wrote request (93 bytes) input to log/62/server.input 09:40:37.403553 Identifying ourselves as friends 09:40:37.410270 Response sent (56 bytes) and written to log/62/server.response 09:40:37.416583 special request received, no persistency 09:40:37.416757 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file injar179 supertrooper.fake FALSE /a FALSE 22139150993 mooo indeed supertrooper.fake FALSE /b FALSE 0 moo1 indeed supertrooper.fake FALSE /c FALSE 22139150993 moo2 indeed === End of file injar179 === Start of file server.cmd Testnum 179 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind179 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind179 test 0191...[FTP URL with ?-letters in username and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind191 ../src/curl -q --output log/21/curl191.out --include --trace-ascii log/21/trace191 --trace-config all --trace-time "ftp://use%3fr:pass%3fword@127.0.0.1:40295/191" > log/21/stdout191 2> log/21/stderr191 191: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 191 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind191 ../src/curl -q --output log/21/curl191.out --include --trace-ascii log/21/trace191 --trace-config all --trace-time "ftp://use%3fr:pass%3fword@127.0.0.1:40295/191" > log/21/stdout191 2> log/21/stderr191 === End of file commands.log === Start of file ftp_server.log 09:40:37.408037 ====> Client connect 09:40:37.409259 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:37.412489 < "USER anonymous" 09:40:37.414545 > "331 We are happy you popped in![CR][LF]" 09:40:37.415361 < "PASS ftp@example.com" 09:40:37.415900 > "230 Welcome you silly person[CR][LF]" 09:40:37.418966 < "PWD" 09:40:37.420854 > "257 "/" is current directory[CR][LF]" 09:40:37.423317 < "EPSV" 09:40:37.423669 ====> Passive DATA channel requested by client 09:40:37.423951 DATA sockfilt for passive data channel starting... 09:40:37.438418 DATA sockfilt for passive data channel started (pid 83560) 09:40:37.439409 DATA sockfilt for passive data channel listens on port 35079 09:40:37.442493 > "229 Entering Passive Mode (|||35079|)[LF]" 09:40:37.442845 Client has been notified that DATA conn will be accepted on port 35079 09:40:37.443214 Client connects to port 35079 09:40:37.443474 ====> Client established passive DATA connection on port 35079 09:40:37.446366 < "TYPE I" 09:40:37.447549 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:37.450881 < "SIZE verifiedserver" 09:40:37.451355 > "213 17[CR][LF]" 09:40:37.453648 < "RETR verifiedserver" 09:40:37.454240 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:37.455068 =====> Closing passive DATA connection... 09:40:37.455301 Server disconnects passive DATA connection 09:40:37.460898 Server disconnected passive DATA connection 09:40:37.461174 DATA sockfilt for passive data channel quits (pid 83560) 09:40:37.466935 DATA sockfilt for passive data channel quit (pid 83560) 09:40:37.467404 =====> Closed passive DATA connection 09:40:37.471538 > "226 File transfer complete[CR][LF]" 09:40:37.501053 < "QUIT" 09:40:37.501431 > "221 bye bye baby[CR][LF]" 09:40:37.506246 MAIN sockfilt said DISC 09:40:37.507625 ====> Client disconnected 09:40:37.508388 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:37.660973 ====> Client connect 09:40:37.663259 Received DATA (on stdin) 09:40:37.663390 > 160 bytes data, server => client 09:40:37.663565 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:37.663666 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:37.663743 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:37.666525 < 16 bytes data, client => server 09:40:37.666644 'USER anonymous\r\n' 09:40:37.666939 Received DATA (on stdin) 09:40:37.667060 > 33 bytes data, server => client 09:40:37.667191 '331 We are happy you popped in!\r\n' 09:40:37.667895 < 22 bytes data, client => server 09:40:37.668036 'PASS ftp@example.com\r\n' 09:40:37.670067 Received DATA (on stdin) 09:40:37.670282 > 30 bytes data, server => client 09:40:37.670394 '230 Welcome you silly person\r\n' 09:40:37.671567 < 5 bytes data, client => server 09:40:37.671856 'PWD\r\n' 09:40:37.673210 Received DATA (on stdin) 09:40:37.673538 > 30 bytes data, server => client 09:40:37.673868 '257 "/" is current directory\r\n' 09:40:37.676130 < 6 bytes data, client => server 09:40:37.676368 'EPSV\r\n' 09:40:37.693554 Received DATA (on stdin) 09:40:37.693699 > 38 bytes data, server => client 09:40:37.693880 '229 Entering Passive Mode (|||35079|)\n' 09:40:37.695295 < 8 bytes data, client => server 09:40:37.695535 'TYPE I\r\n' 09:40:37.700429 Received DATA (on stdin) 09:40:37.700640 > 33 bytes data, server => client 09:40:37.700811 '200 I modify TYPE as you wanted\r\n' 09:40:37.702036 < 21 bytes data, client => server 09:40:37.702194 'SIZE verifiedserver\r\n' 09:40:37.705394 Received DATA (on stdin) 09:40:37.705615 > 8 bytes data, server => client 09:40:37.705715 '213 17\r\n' 09:40:37.706323 < 21 bytes data, client => server 09:40:37.706529 'RETR verifiedserver\r\n' 09:40:37.710555 Received DATA (on stdin) 09:40:37.710756 > 29 bytes data, server => client 09:40:37.710835 '150 Binary junk (17 bytes).\r\n' 09:40:37.726843 Received DATA (on stdin) 09:40:37.727013 > 28 bytes data, server => client 09:40:37.727090 '226 File transfer complete\r\n' 09:40:37.753840 < 6 bytes data, client => server 09:40:37.753999 'QUIT\r\n' 09:40:37.755586 Received DATA (on stdin) 09:40:37.755723 > 18 bytes data, server => client 09:40:37.755806 '221 bye bye baby\r\n' 09:40:37.759606 ====> Client disconnect 09:40:37.760745 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:37.690194 Running IPv4 version 09:40:37.690955 Listening on port 35079 09:40:37.691646 Wrote pid 83560 to log/21/server/ftp_sockdata.pid 09:40:37.691817 Received PING (on stdin) 09:40:37.692589 Received PORT (on stdin) 09:40:37.695877 ====> Client connect 09:40:37.711135 Received DATA (on stdin) 09:40:37.711273 > 17 bytes data, server => client 09:40:37.711349 'WE ROOLZ: 78763\r\n' 09:40:37.711676 Received DISC (on stdin) 09:40:37.711816 ====> Client forcibly disconnected 09:40:37.718217 Received QUIT (on stdin) 09:40:37.718419 quits 09:40:37.718969 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 191 === End of file server.cmd === Start of file valgrind191 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind191 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind190 ../src/curl -q --output log/38/curl190.out --include --trace-ascii log/38/trace190 --trace-config all --trace-time ftp://127.0.0.1:37781/path/to/file/190 -m 10 > log/38/stdout190 2> log/38/stderr190 * kill pid for ftp-ctrl => 83813 RUN: Process with pid 82508 signalled to die test 0196...[FTP transient error, retry request once] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind196 ../src/curl -q --include --trace-ascii log/22/trace196 --trace-config all --trace-time ftp://127.0.0.1:41867/196 --retry 1 -w '%{num_retries}\n' > log/22/stdout196 2> log/22/stderr196 196: stdout FAILED: --- log/22/check-expected 2025-07-18 09:40:38.829488357 +0000 +++ log/22/check-generated 2025-07-18 09:40:38.828609137 +0000 @@ -1 +0,0 @@ -1[LF] == Contents of files in the log/22/ dir after test 196 === Start of file check-expected 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind196 ../src/curl -q --include --trace-ascii log/22/trace196 --trace-config all --trace-time ftp://127.0.0.1:41867/196 --retry 1 -w '%{num_retries}\n' > log/22/stdout196 2> log/22/stderr196 === End of file commands.log === Start of file ftp_server.log 09:40:37.349547 ====> Client connect 09:40:37.351036 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:37.355195 < "USER anonymous" 09:40:37.355645 > "331 We are happy you popped in![CR][LF]" 09:40:37.357641 < "PASS ftp@example.com" 09:40:37.360279 > "230 Welcome you silly person[CR][LF]" 09:40:37.365930 < "PWD" 09:40:37.367153 > "257 "/" is current directory[CR][LF]" 09:40:37.368471 < "EPSV" 09:40:37.368716 ====> Passive DATA channel requested by client 09:40:37.369012 DATA sockfilt for passive data channel starting... 09:40:37.391106 DATA sockfilt for passive data channel started (pid 83494) 09:40:37.395395 DATA sockfilt for passive data channel listens on port 34503 09:40:37.398808 > "229 Entering Passive Mode (|||34503|)[LF]" 09:40:37.399059 Client has been notified that DATA conn will be accepted on port 34503 09:40:37.399277 Client connects to port 34503 09:40:37.399468 ====> Client established passive DATA connection on port 34503 09:40:37.400808 < "TYPE I" 09:40:37.401450 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:37.403424 < "SIZE verifiedserver" 09:40:37.404062 > "213 17[CR][LF]" 09:40:37.408087 < "RETR verifiedserver" 09:40:37.408502 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:37.415673 =====> Closing passive DATA connection... 09:40:37.417463 Server disconnects passive DATA connection 09:40:37.419018 Server disconnected passive DATA connection 09:40:37.419385 DATA sockfilt for passive data channel quits (pid 83494) 09:40:37.422379 DATA sockfilt for passive data channel quit (pid 83494) 09:40:37.423069 =====> Closed passive DATA connection 09:40:37.424419 > "226 File transfer complete[CR][LF]" 09:40:37.455294 < "QUIT" 09:40:37.455638 > "221 bye bye baby[CR][LF]" 09:40:37.462866 MAIN sockfilt said DISC 09:40:37.463196 ====> Client disconnected 09:40:37.463658 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:37.602677 ====> Client connect 09:40:37.604705 Received DATA (on stdin) 09:40:37.604859 > 160 bytes data, server => client 09:40:37.604942 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:37.605015 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:37.605080 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:37.607771 < 16 bytes data, client => server 09:40:37.608045 'USER anonymous\r\n' 09:40:37.609356 Received DATA (on stdin) 09:40:37.609620 > 33 bytes data, server => client 09:40:37.609721 '331 We are happy you popped in!\r\n' 09:40:37.610623 < 22 bytes data, client => server 09:40:37.610755 'PASS ftp@example.com\r\n' 09:40:37.614335 Received DATA (on stdin) 09:40:37.614556 > 30 bytes data, server => client 09:40:37.614665 '230 Welcome you silly person\r\n' 09:40:37.618646 < 5 bytes data, client => server 09:40:37.618789 'PWD\r\n' 09:40:37.620136 Received DATA (on stdin) 09:40:37.620271 > 30 bytes data, server => client 09:40:37.620484 '257 "/" is current directory\r\n' 09:40:37.621534 < 6 bytes data, client => server 09:40:37.621666 'EPSV\r\n' 09:40:37.649965 Received DATA (on stdin) 09:40:37.650205 > 38 bytes data, server => client 09:40:37.650609 '229 Entering Passive Mode (|||34503|)\n' 09:40:37.651892 < 8 bytes data, client => server 09:40:37.652027 'TYPE I\r\n' 09:40:37.655498 Received DATA (on stdin) 09:40:37.655636 > 33 bytes data, server => client 09:40:37.655714 '200 I modify TYPE as you wanted\r\n' 09:40:37.656259 < 21 bytes data, client => server 09:40:37.656379 'SIZE verifiedserver\r\n' 09:40:37.658204 Received DATA (on stdin) 09:40:37.658394 > 8 bytes data, server => client 09:40:37.658552 '213 17\r\n' 09:40:37.659913 < 21 bytes data, client => server 09:40:37.660216 'RETR verifiedserver\r\n' 09:40:37.663335 Received DATA (on stdin) 09:40:37.663580 > 29 bytes data, server => client 09:40:37.663726 '150 Binary junk (17 bytes).\r\n' 09:40:37.677412 Received DATA (on stdin) 09:40:37.677617 > 28 bytes data, server => client 09:40:37.677837 '226 File transfer complete\r\n' 09:40:37.706422 < 6 bytes data, client => server 09:40:37.706692 'QUIT\r\n' 09:40:37.709675 Received DATA (on stdin) 09:40:37.709795 > 18 bytes data, server => client 09:40:37.709870 '221 bye bye baby\r\n' 09:40:37.712736 ====> Client disconnect 09:40:37.718693 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:37.640544 Running IPv4 version 09:40:37.641256 Listening on port 34503 09:40:37.641702 Wrote pid 83494 to log/22/server/ftp_sockdata.pid 09:40:37.644142 Received PING (on stdin) 09:40:37.645543 Received PORT (on stdin) 09:40:37.652196 ====> Client connect 09:40:37.664988 Received DATA (on stdin) 09:40:37.665368 > 17 bytes data, server => client 09:40:37.668248 'WE ROOLZ: 77494\r\n' 09:40:37.671698 Received DISC (on stdin) 09:40:37.672086 ====> Client forcibly disconnected 09:40:37.673388 Received QUIT (on stdin) 09:40:37.673643 quits 09:40:37.674093 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 430 temporarily not available Testnum 196 === End of file server.cmd === Start of file valgrind196 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind196 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/36/server/ftp_server.pid" --logfile "log/36/ftp_server.log" --logdir "log/36" --portfile "log/36/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45965 (log/36/server/ftp_server.port) RUN: FTP server is PID 82698 port 45965 * pid ftp => 82698 82698 test 0195...[FTP response 530 after PASS, temporarily not allowed access] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind195 ../src/curl -q --output log/36/curl195.out --include --trace-ascii log/36/trace195 --trace-config all --trace-time ftp://127.0.0.1:45965/195 > log/36/stdout195 2> log/36/stderr195 195: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 195 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind195 ../src/curl -q --output log/36/curl195.out --include --trace-ascii log/36/trace195 --trace-config all --trace-time ftp://127.0.0.1:45965/195 > log/36/stdout195 2> log/36/stderr195 === End of file commands.log === Start of file ftp_server.log 09:40:37.386892 FTP server listens on port IPv4/45965 09:40:37.388312 logged pid 82698 in log/36/server/ftp_server.pid 09:40:37.388555 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:37.634306 Running IPv4 version 09:40:37.634954 Listening on port 45965 09:40:37.635362 Wrote pid 83482 to log/36/server/ftp_sockctrl.pid 09:40:37.638856 Wrote port 45965 to log/36/server/ftp_server.port 09:40:37.639021 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY PASS 530 temporarily not available Testnum 195 === End of file server.cmd === Start of file valgrind195 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind195 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind206 ../src/curl -q --output log/25/curl206.out --include --trace-ascii log/25/trace206 --trace-config all --trace-time http://test.remote.haxx.se.206:8990/path/2060002 --proxy http://127.0.0.1:41727 --proxy-user silly:person --proxy-digest --proxytunnel > log/25/stdout206 2> log/25/stderr206 RUN: Process with pid 82508 gracefully died test 0193...[HTTP GET -w num_connects with redirected fetch (2 connects)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind193 ../src/curl -q --include --trace-ascii log/37/trace193 --trace-config all --trace-time http://127.0.0.1:37551/193 -w "%{num_connects}\n" -L > log/37/stdout193 2> log/37/stderr193 193: stdout FAILED: --- log/37/check-expected 2025-07-18 09:40:38.930609086 +0000 +++ log/37/check-generated 2025-07-18 09:40:38.929609086 +0000 @@ -1,13 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 8[LF] -Connection: close[LF] -Location: ./193[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 8[LF] -Connection: close[LF] -[LF] -monster[LF] -2[LF] == Contents of files in the log/37/ dir after test 193 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 8[LF] Connection: close[LF] Location: ./193[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 8[LF] Connection: close[LF] [LF] monster[LF] 2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind193 ../src/curl -q --include --trace-ascii log/37/trace193 --trace-config all --trace-time http://127.0.0.1:37551/193 -w "%{num_connects}\n" -L > log/37/stdout193 2> log/37/stderr193 === End of file commands.log === Start of file http_server.log 09:40:37.563714 ====> Client connect 09:40:37.564020 accept_connection 3 returned 4 09:40:37.564192 accept_connection 3 returned 0 09:40:37.564834 Read 93 bytes 09:40:37.564973 Process 93 bytes request 09:40:37.565045 Got request: GET /verifiedserver HTTP/1.1 09:40:37.565105 Are-we-friendly question received 09:40:37.565328 Wrote request (93 bytes) input to log/37/server.input 09:40:37.565994 Identifying ourselves as friends 09:40:37.568689 Response sent (56 bytes) and written to log/37/server.response 09:40:37.568806 special request received, no persistency 09:40:37.568874 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 193 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind193 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind193 test 0189...[HTTP GET with resume and redirect (to a page that doesn't resume)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind189 ../src/curl -q --output log/47/curl189.out --include --trace-ascii log/47/trace189 --trace-config all --trace-time http://127.0.0.1:41103/189 -C 50 -L > log/47/stdout189 2> log/47/stderr189 189: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 189 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind189 ../src/curl -q --output log/47/curl189.out --include --trace-ascii log/47/trace189 --trace-config all --trace-time http://127.0.0.1:41103/189 -C 50 -L > log/47/stdout189 2> log/47/stderr189 === End of file commands.log === Start of file http_server.log 09:40:37.662953 ====> Client connect 09:40:37.663278 accept_connection 3 returned 4 09:40:37.663537 accept_connection 3 returned 0 09:40:37.663700 Read 93 bytes 09:40:37.663793 Process 93 bytes request 09:40:37.663882 Got request: GET /verifiedserver HTTP/1.1 09:40:37.663960 Are-we-friendly question received 09:40:37.664190 Wrote request (93 bytes) input to log/47/server.input 09:40:37.664587 Identifying ourselves as friends 09:40:37.665695 Response sent (56 bytes) and written to log/47/server.response 09:40:37.665912 special request received, no persistency 09:40:37.665979 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 189 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind189 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind189 test 0205...["upload" nonexisting with file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind205 ../src/curl -q --output log/49/curl205.out --trace-ascii log/49/trace205 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/49/nonexisting/result205.txt -T log/49/upload205.txt > log/49/stdout205 2> log/49/stderr205 curl returned 1, when expecting 23 205: exit FAILED == Contents of files in the log/49/ dir after test 205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind205 ../src/curl -q --output log/49/curl205.out --trace-ascii log/49/trace205 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/49/nonexisting/result205.txt -T log/49/upload205.txt > log/49/stdout205 2> log/49/stderr205 === End of file commands.log === Start of file server.cmd Testnum 205 === End of file server.cmd === Start of file upload205.txt data in file to write === End of file upload205.txt === Start of file valgrind205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind205 test 0199...[HTTP with -d, -G and {}] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind199 ../src/curl -q --output log/60/curl199.out --include --trace-ascii log/60/trace199 --trace-config all --trace-time -d "foo=moo&moo=poo" "http://127.0.0.1:38843/{199,199}" -G > log/60/stdout199 2> log/60/stderr199 199: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 199 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind199 ../src/curl -q --output log/60/curl199.out --include --trace-ascii log/60/trace199 --trace-config all --trace-time -d "foo=moo&moo=poo" "http://127.0.0.1:38843/{199,199}" -G > log/60/stdout199 2> log/60/stderr199 === End of file commands.log === Start of file http_server.log 09:40:37.636852 ====> Client connect 09:40:37.637176 accept_connection 3 returned 4 09:40:37.637356 accept_connection 3 returned 0 09:40:37.641656 Read 93 bytes 09:40:37.641791 Process 93 bytes request 09:40:37.641886 Got request: GET /verifiedserver HTTP/1.1 09:40:37.641967 Are-we-friendly question received 09:40:37.642200 Wrote request (93 bytes) input to log/60/server.input 09:40:37.642385 Identifying ourselves as friends 09:40:37.648239 Response sent (56 bytes) and written to log/60/server.response 09:40:37.648379 special request received, no persistency 09:40:37.651712 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 199 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind199 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind199 test 0206...[HTTP proxy CONNECT auth Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind206 ../src/curl -q --output log/25/curl206.out --include --trace-ascii log/25/trace206 --trace-config all --trace-time http://test.remote.haxx.se.206:8990/path/2060002 --proxy http://127.0.0.1:41727 --proxy-user silly:person --proxy-digest --proxytunnel > log/25/stdout206 2> log/25/stderr206 206: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 206 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind206 ../src/curl -q --output log/25/curl206.out --include --trace-ascii log/25/trace206 --trace-config all --trace-time http://test.remote.haxx.se.206:8990/path/2060002 --proxy http://127.0.0.1:41727 --proxy-user silly:person --proxy-digest --proxytunnel > log/25/stdout206 2> log/25/stderr206 === End of file commands.log === Start of file http_server.log 09:40:38.189829 ====> Client connect 09:40:38.193568 accept_conneCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind207 ../src/curl -q --output log/53/curl207.out --include --trace-ascii log/53/trace207 --trace-config all --trace-time http://127.0.0.1:34639/207 > log/53/stdout207 2> log/53/stderr207 ction 3 returned 4 09:40:38.193780 accept_connection 3 returned 0 09:40:38.193920 Read 93 bytes 09:40:38.194021 Process 93 bytes request 09:40:38.194126 Got request: GET /verifiedserver HTTP/1.1 09:40:38.194213 Are-we-friendly question received 09:40:38.194536 Wrote request (93 bytes) input to log/25/server.input 09:40:38.194743 Identifying ourselves as friends 09:40:38.195700 Response sent (56 bytes) and written to log/25/server.response 09:40:38.195831 special request received, no persistency 09:40:38.195901 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd connection-monitor auth_required Testnum 206 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind206 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind206 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/38/server/ftp_server.pid" --logfile "log/38/ftp_server.log" --logdir "log/38" --portfile "log/38/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37781 (log/38/server/ftp_server.port) RUN: FTP server is PID 82508 port 37781 * pid ftp => 82508 82508 test 0190...[FTP download with strict timeout and slow CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind190 ../src/curl -q --output log/38/curl190.out --include --trace-ascii log/38/trace190 --trace-config all --trace-time ftp://127.0.0.1:37781/path/to/file/190 -m 10 > log/38/stdout190 2> log/38/stderr190 190: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 190 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind190 ../src/curl -q --output log/38/curl190.out --include --trace-ascii log/38/trace190 --trace-config all --trace-time ftp://127.0.0.1:37781/path/to/file/190 -m 10 > log/38/stdout190 2> log/38/stderr190 === End of file commands.log === Start of file ftp_server.log 09:40:37.646466 FTP server listens on port IPv4/37781 09:40:37.647733 logged pid 82508 in log/38/server/ftp_server.pid 09:40:37.648204 Awaiting input 09:40:38.858072 Failed to read input 09:40:38.858387 Error: FTP server, read zero 09:40:38.858624 Exited from sysread_or_die() at /build/curl/src/curl/tests/ftpserver.pl line 3128. FTP server, read zero === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:37.897015 Running IPv4 version 09:40:37.898033 Listening on port 37781 09:40:37.898705 Wrote pid 83813 to log/38/server/ftp_sockctrl.pid 09:40:37.899080 Wrote port 37781 to log/38/server/ftp_server.port 09:40:37.899230 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd DELAY CWD 60 Testnum 190 === End of file server.cmd === Start of file valgrind190 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind190 test 0207...[HTTP GET with chunked Transfer-Encoding closed prematurely] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind207 ../src/curl -q --output log/53/curl207.out --include --trace-ascii log/53/trace207 --trace-config all --trace-time http://127.0.0.1:34639/207 > log/53/stdout207 2> log/53/stderr207 207: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 207 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind207 ../src/curl -q --output log/53/curl207.out --include --trace-ascii log/53/trace207 --trace-config all --trace-time http://127.0.0.1:34639/207 > log/53/stdout207 2> log/53/stderr207 === End of file commands.log === Start of file http_server.log 09:40:38.472924 ====> Client connect 09:40:38.473258 accept_connection 3 returned 4 09:40:38.473564 accept_connection 3 returned 0 09:40:38.474269 Read 93 bytes 09:40:38.474527 Process 93 bytes request 09:40:38.474698 Got request: GET /verifiedserver HTTP/1.1 09:40:38.474817 Are-we-friendly question received 09:40:38.475089 Wrote request (93 bytes) input to log/53/server.input 09:40:38.475290 Identifying ourselves as friends 09:40:38.477363 Response sent (56 bytes) and written to log/53/server.response 09:40:38.477549 special request CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind211 ../src/curl -q --output log/45/curl211.out --include --trace-ascii log/45/trace211 --trace-config all --trace-time ftp://127.0.0.1:41719/a/path/211 ftp://127.0.0.1:41719/a/path/211 > log/45/stdout211 2> log/45/stderr211 received, no persistency 09:40:38.477715 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 207 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind207 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind207 test 0211...[Get two FTP files with no remote EPSV support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind211 ../src/curl -q --output log/45/curl211.out --include --trace-ascii log/45/trace211 --trace-config all --trace-time ftp://127.0.0.1:41719/a/path/211 ftp://127.0.0.1:41719/a/path/211 > log/45/stdout211 2> log/45/stderr211 211: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 211 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind211 ../src/curl -q --output log/45/curl211.out --include --trace-ascii log/45/trace211 --trace-config all --trace-time ftp://127.0.0.1:41719/a/path/211 ftp://127.0.0.1:41719/a/path/211 > log/45/stdout211 2> log/45/stderr211 === End of file commands.log === Start of file ftp_server.log 09:40:38.430423 ====> Client connect 09:40:38.433859 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:38.437329 < "USER anonymous" 09:40:38.437670 > "331 We are happy you popped in![CR][LF]" 09:40:38.440527 < "PASS ftp@example.com" 09:40:38.440970 > "230 Welcome you silly person[CR][LF]" 09:40:38.445309 < "PWD" 09:40:38.445717 > "257 "/" is current directory[CR][LF]" 09:40:38.448458 < "EPSV" 09:40:38.448729 ====> Passive DATA channel requested by client 09:40:38.449020 DATA sockfilt for passive data channel starting... 09:40:38.464032 DATA sockfilt for passive data channel started (pid 85183) 09:40:38.465141 DATA sockfilt for passive data channel listens on port 33295 09:40:38.465587 > "229 Entering Passive Mode (|||33295|)[LF]" 09:40:38.468015 Client has been notified that DATA conn will be accepted on port 33295 09:40:38.468358 Client connects to port 33295 09:40:38.468572 ====> Client established passive DATA connection on port 33295 09:40:38.469325 < "TYPE I" 09:40:38.469716 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:38.471854 < "SIZE verifiedserver" 09:40:38.472267 > "213 17[CR][LF]" 09:40:38.474869 < "RETR verifiedserver" 09:40:38.475822 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:38.478085 =====> Closing passive DATA connection... 09:40:38.478332 Server disconnects passive DATA connection 09:40:38.478641 Fancy that; client wants to DISC, too 09:40:38.479144 Server disconnected passive DATA connection 09:40:38.479464 DATA sockfilt for passive data channel quits (pid 85183) 09:40:38.481640 DATA sockfilt for passive data channel quit (pid 85183) 09:40:38.482030 =====> Closed passive DATA connection 09:40:38.483330 > "226 File transfer complete[CR][LF]" 09:40:38.520603 < "QUIT" 09:40:38.521381 > "221 bye bye baby[CR][LF]" 09:40:38.522668 MAIN sockfilt said DISC 09:40:38.523487 ====> Client disconnected 09:40:38.524054 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:38.683598 ====> Client connect 09:40:38.685374 Received DATA (on stdin) 09:40:38.685657 > 160 bytes data, server => client 09:40:38.686689 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:38.686827 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:38.686897 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:38.689648 < 16 bytes data, client => server 09:40:38.689862 'USER anonymous\r\n' 09:40:38.692669 Received DATA (on stdin) 09:40:38.692949 > 33 bytes data, server => client 09:40:38.693037 '331 We are happy you popped in!\r\n' 09:40:38.693757 < 22 bytes data, client => server 09:40:38.693924 'PASS ftp@example.com\r\n' 09:40:38.694680 Received DATA (on stdin) 09:40:38.694821 > 30 bytes data, server => client 09:40:38.694905 '230 Welcome you silly person\r\n' 09:40:38.695570 < 5 bytes data, client => server 09:40:38.695699 'PWD\r\n' 09:40:38.699502 Received DATA (on stdin) 09:40:38.699648 > 30 bytes data, server => client 09:40:38.699736 '257 "/" is current directory\r\n' 09:40:38.700385 < 6 bytes data, client => server 09:40:38.700592 'EPSV\r\n' 09:40:38.719293 Received DATA (on stdin) 09:40:38.719534 > 38 bytes data, server => client 09:40:38.719642 '229 Entering Passive Mode (|||33295|)\n' 09:40:38.721253 < 8 bytes data, client => server 09:40:38.721393 'TYPE I\r\n' 09:40:38.723529 Received DATA (on stdin) 09:40:38.723671 > 33 bytes data, server => client 09:40:38.723754 '200 I modify TYPE as you wanted\r\n' 09:40:38.724688 < 21 bytes data, client => server 09:40:38.724825 'SIZE verifiedserver\r\n' 09:40:38.726556 Received DATA (on stdin) 09:40:38.726692 > 8 bytes data, server => client 09:40:38.726769 '213 17\r\n' 09:40:38.727320 < 21 bytes data, client => server 09:40:38.727604 'RETR verifiedserver\r\n' 09:40:38.729047 Received DATA (on stdin) 09:40:38.729239 > 29 bytes data, server => client 09:40:38.730561 '150 Binary junk (17 bytes).\r\n' 09:40:38.736167 Received DATA (on stdin) 09:40:38.736312 > 28 bytes data, server => client 09:40:38.736595 '226 File transfer complete\r\n' 09:40:38.773532 < 6 bytes data, client => server 09:40:38.773690 'QUIT\r\n' 09:40:38.774726 Received DATA (on stdin) 09:40:38.774864 > 18 bytes data, server => client 09:40:38.775387 '221 bye bye baby\r\n' 09:40:38.776076 ====> Client disconnect 09:40:38.776763 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:38.716082 Running IPv4 version 09:40:38.716755 Listening on port 33295 09:40:38.717154 Wrote pid 85183 to log/45/server/ftp_sockdata.pid 09:40:38.717330 Received PING (on stdin) 09:40:38.7CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind208 ../src/curl -q --output log/61/curl208.out --include --trace-ascii log/61/trace208 --trace-config all --trace-time -x http://127.0.0.1:44381 ftp://daniel:mysecret@host.com/we/want/208 -T log/61/test208.txt > log/61/stdout208 2> log/61/stderr208 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind210 ../src/curl -q --output log/59/curl210.out --trace-ascii log/59/trace210 --trace-config all --trace-time ftp://127.0.0.1:43961/a/path/210 ftp://127.0.0.1:43961/a/path/210 > log/59/stdout210 2> log/59/stderr210 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind212 ../src/curl -q --output log/14/curl212.out --include --trace-ascii log/14/trace212 --trace-config all --trace-time ftp://127.0.0.1:36271/a/path/212 ftp://127.0.0.1:36271/a/path/212 -P - > log/14/stdout212 2> log/14/stderr212 18221 Received PORT (on stdin) 09:40:38.720924 ====> Client connect 09:40:38.730046 Received DATA (on stdin) 09:40:38.730243 > 17 bytes data, server => client 09:40:38.730556 'WE ROOLZ: 78026\r\n' 09:40:38.731402 ====> Client disconnect 09:40:38.732350 Received DISC (on stdin) 09:40:38.732614 Crikey! Client also wants to disconnect 09:40:38.732772 Received ACKD (on stdin) 09:40:38.733555 Received QUIT (on stdin) 09:40:38.733703 quits 09:40:38.734102 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 211 === End of file server.cmd === Start of file valgrind211 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind211 test 0208...[HTTP PUT to an FTP URL with username+password - over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind208 ../src/curl -q --output log/61/curl208.out --include --trace-ascii log/61/trace208 --trace-config all --trace-time -x http://127.0.0.1:44381 ftp://daniel:mysecret@host.com/we/want/208 -T log/61/test208.txt > log/61/stdout208 2> log/61/stderr208 208: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 208 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind208 ../src/curl -q --output log/61/curl208.out --include --trace-ascii log/61/trace208 --trace-config all --trace-time -x http://127.0.0.1:44381 ftp://daniel:mysecret@host.com/we/want/208 -T log/61/test208.txt > log/61/stdout208 2> log/61/stderr208 === End of file commands.log === Start of file http_server.log 09:40:38.603198 ====> Client connect 09:40:38.605111 accept_connection 3 returned 4 09:40:38.605516 accept_connection 3 returned 0 09:40:38.609284 Read 93 bytes 09:40:38.609513 Process 93 bytes request 09:40:38.609684 Got request: GET /verifiedserver HTTP/1.1 09:40:38.609907 Are-we-friendly question received 09:40:38.610233 Wrote request (93 bytes) input to log/61/server.input 09:40:38.610731 Identifying ourselves as friends 09:40:38.611866 Response sent (56 bytes) and written to log/61/server.response 09:40:38.611985 special request received, no persistency 09:40:38.612064 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 208 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file test208.txt Weird file to upload for testing the PUT feature === End of file test208.txt === Start of file valgrind208 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind208 test 0212...[Get two FTP files with no remote EPRT support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind212 ../src/curl -q --output log/14/curl212.out --include --trace-ascii log/14/trace212 --trace-config all --trace-time ftp://127.0.0.1:36271/a/path/212 ftp://127.0.0.1:36271/a/path/212 -P - > log/14/stdout212 2> log/14/stderr212 212: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 212 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind212 ../src/curl -q --output log/14/curl212.out --include --trace-ascii log/14/trace212 --trace-config all --trace-time ftp://127.0.0.1:36271/a/path/212 ftp://127.0.0.1:36271/a/path/212 -P - > log/14/stdout212 2> log/14/stderr212 === End of file commands.log === Start of file ftp_server.log 09:40:38.519139 ====> Client connect 09:40:38.521914 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:38.523649 < "USER anonymous" 09:40:38.524435 > "331 We are happy you popped in![CR][LF]" 09:40:38.526296 < "PASS ftp@example.com" 09:40:38.527506 > "230 Welcome you silly person[CR][LF]" 09:40:38.528895 < "PWD" 09:40:38.530174 > "257 "/" is current directory[CR][LF]" 09:40:38.532088 < "EPSV" 09:40:38.532402 ====> Passive DATA channel requested by client 09:40:38.532610 DATA sockfilt for passive data channel starting... 09:40:38.552319 DATA sockfilt for passive data channel started (pid 85254) 09:40:38.555568 DATA sockfilt for passive data channel listens on port 33633 09:40:38.556248 > "229 Entering Passive Mode (|||33633|)[LF]" 09:40:38.556542 Client has been notified that DATA conn will be accepted on port 33633 09:40:38.562591 Client connects to port 33633 09:40:38.563418 ====> Client established passive DATA connection on port 33633 09:40:38.566681 < "TYPE I" 09:40:38.569926 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:38.572350 < "SIZE verifiedserver" 09:40:38.573618 > "213 17[CR][LF]" 09:40:38.575427 < "RETR verifiedserver" 09:40:38.575912 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:38.576631 =====> Closing passive DATA connection... 09:40:38.578904 Server disconnects passive DATA connection 09:40:38.579485 Fancy that; client wants to DISC, too 09:40:38.580417 Server disconnected passive DATA connection 09:40:38.580661 DATA sockfilt for passive data channel quits (pid 85254) 09:40:38.582398 DATA sockfilt for passive data channel quit (pid 85254) 09:40:38.582629 =====> Closed passive DATA connection 09:40:38.584412 > "226 File transfer complete[CR][LF]" 09:40:38.620666 < "QUIT" 09:40:38.621461 > "221 bye bye baby[CR][LF]" 09:40:38.625287 MAIN sockfilt said DISC 09:40:38.625675 ====> Client disconnected 09:40:38.626233 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:38.772170 ====> Client connect 09:40:38.774164 Received DATA (on stdin) 09:40:38.774322 > 160 bytes data, server => client 09:40:38.774616 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:38.774793 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:38.774870 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:38.776399 < 16 bytes data, client => server 09:40:38.776670 'USER anonymous\r\n' 09:40:38.777794 Received DATA (on stdin) 09:40:38.777937 > 33 bytes data, server => client 09:40:38.778409 '331 We are happy you popped in!\r\n' 09:40:38.779208 < 22 bytes data, client => server 09:40:38.779353 'PASS ftp@example.com\r\n' 09:40:38.780301 Received DATA (on stdin) 09:40:38.780423 > 30 bytes data, server => client 09:40:38.780669 '230 Welcome you silly person\r\n' 09:40:38.781724 < 5 bytes data, client => server 09:40:38.781874 'PWD\r\n' 09:40:38.783000 Received DATA (on stdin) 09:40:38.783159 > 30 bytes data, server => client 09:40:38.783370 '257 "/" is current directory\r\n' 09:40:38.784945 < 6 bytes data, client => server 09:40:38.785090 'EPSV\r\n' 09:40:38.810701 Received DATA (on stdin) 09:40:38.810868 > 38 bytes data, server => client 09:40:38.810975 '229 Entering Passive Mode (|||33633|)\n' 09:40:38.815752 < 8 bytes data, client => server 09:40:38.816100 'TYPE I\r\n' 09:40:38.824026 Received DATA (on stdin) 09:40:38.824183 > 33 bytes data, server => client 09:40:38.824275 '200 I modify TYPE as you wanted\r\n' 09:40:38.825160 < 21 bytes data, client => server 09:40:38.825324 'SIZE verifiedserver\r\n' 09:40:38.826546 Received DATA (on stdin) 09:40:38.826705 > 8 bytes data, server => client 09:40:38.826905 '213 17\r\n' 09:40:38.828093 < 21 bytes data, client => server 09:40:38.828267 'RETR verifiedserver\r\n' 09:40:38.830562 Received DATA (on stdin) 09:40:38.830705 > 29 bytes data, server => client 09:40:38.830785 '150 Binary junk (17 bytes).\r\n' 09:40:38.836791 Received DATA (on stdin) 09:40:38.836922 > 28 bytes data, server => client 09:40:38.837772 '226 File transfer complete\r\n' 09:40:38.873309 < 6 bytes data, client => server 09:40:38.873594 'QUIT\r\n' 09:40:38.874824 Received DATA (on stdin) 09:40:38.874965 > 18 bytes data, server => client 09:40:38.875556 '221 bye bye baby\r\n' 09:40:38.876122 ====> Client disconnect 09:40:38.880240 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:38.803103 Running IPv4 version 09:40:38.804882 Listening on port 33633 09:40:38.805367 Wrote pid 85254 to log/14/server/ftp_sockdata.pid 09:40:38.805662 Received PING (on stdin) 09:40:38.808577 Received PORT (on stdin) 09:40:38.815171 ====> Client connect 09:40:38.831082 Received DATA (on stdin) 09:40:38.831215 > 17 bytes data, server => client 09:40:38.831285 'WE ROOLZ: 79507\r\n' 09:40:38.832059 ====> Client disconnect 09:40:38.832889 Received DISC (on stdin) 09:40:38.833003 Crikey! Client also wants to disconnect 09:40:38.833695 Received ACKD (on stdin) 09:40:38.834760 Received QUIT (on stdin) 09:40:38.834881 quits 09:40:38.835239 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPRT 500 no such command Testnum 212 === End of file server.cmd === Start of file valgrind212 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind212 test 0210...[Get two FTP files from the same remote dir: no second CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind210 ../src/curl -q --output log/59/curl210.out --trace-ascii log/59/trace210 --trace-config all --trace-time ftp://127.0.0.1:43961/a/path/210 ftp://127.0.0.1:43961/a/path/210 > log/59/stdout210 2> log/59/stderr210 210: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 210 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind210 ../src/curl -q --output log/59/curl210.out --trace-ascii log/59/trace210 --trace-config all --trace-time ftp://127.0.0.1:43961/a/path/210 ftp://127.0.0.1:43961/a/path/210 > log/59/stdout210 2> log/59/stderr210 === End of file commands.log === Start of file ftp_server.log 09:40:38.461515 ====> Client connect 09:40:38.463183 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:38.466539 < "USER anonymous" 09:40:38.467462 > "331 We are happy you popped in![CR][LF]" 09:40:38.469859 < "PASS ftp@example.com" 09:40:38.471198 > "230 Welcome you silly person[CR][LF]" 09:40:38.472660 < "PWD" 09:40:38.473458 > "257 "/" is current directory[CR][LF]" 09:40:38.476161 < "EPSV" 09:40:38.476432 ====> Passive DATA channel requested by client 09:40:38.476689 DATA sockfilt for passive data channel starting... 09:40:38.493111 DATA sockfilt for passive data channel started (pid 85210) 09:40:38.495221 DATA sockfilt for passive data channel listens on port 44725 09:40:38.495688 > "229 Entering Passive Mode (|||44725|)[LF]" 09:40:38.496051 Client has been notified that DATA conCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind209 ../src/curl -q --output log/54/curl209.out --include --trace-ascii log/54/trace209 --trace-config all --trace-time http://test.remote.example.com.209:44921/path/2090002 --proxy http://127.0.0.1:44921 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/54/stdout209 2> log/54/stderr209 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind214 ../src/curl -q --output log/58/curl214.out --include --trace-ascii log/58/trace214 --trace-config all --trace-time "http://127.0.0.1:46727/\{\}\/214" > log/58/stdout214 2> log/58/stderr214 n will be accepted on port 44725 09:40:38.499083 Client connects to port 44725 09:40:38.499434 ====> Client established passive DATA connection on port 44725 09:40:38.500377 < "TYPE I" 09:40:38.500932 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:38.505217 < "SIZE verifiedserver" 09:40:38.507035 > "213 17[CR][LF]" 09:40:38.508364 < "RETR verifiedserver" 09:40:38.509287 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:38.511469 =====> Closing passive DATA connection... 09:40:38.511847 Server disconnects passive DATA connection 09:40:38.512202 Fancy that; client wants to DISC, too 09:40:38.513441 Server disconnected passive DATA connection 09:40:38.513723 DATA sockfilt for passive data channel quits (pid 85210) 09:40:38.516022 DATA sockfilt for passive data channel quit (pid 85210) 09:40:38.516278 =====> Closed passive DATA connection 09:40:38.516650 > "226 File transfer complete[CR][LF]" 09:40:38.552952 < "QUIT" 09:40:38.554118 > "221 bye bye baby[CR][LF]" 09:40:38.558265 MAIN sockfilt said DISC 09:40:38.559338 ====> Client disconnected 09:40:38.560070 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:38.714582 ====> Client connect 09:40:38.717235 Received DATA (on stdin) 09:40:38.717428 > 160 bytes data, server => client 09:40:38.717718 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:38.717852 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:38.717948 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:38.718872 < 16 bytes data, client => server 09:40:38.719080 'USER anonymous\r\n' 09:40:38.720780 Received DATA (on stdin) 09:40:38.720933 > 33 bytes data, server => client 09:40:38.721814 '331 We are happy you popped in!\r\n' 09:40:38.722713 < 22 bytes data, client => server 09:40:38.722872 'PASS ftp@example.com\r\n' 09:40:38.723955 Received DATA (on stdin) 09:40:38.724107 > 30 bytes data, server => client 09:40:38.724299 '230 Welcome you silly person\r\n' 09:40:38.725341 < 5 bytes data, client => server 09:40:38.725560 'PWD\r\n' 09:40:38.727571 Received DATA (on stdin) 09:40:38.727747 > 30 bytes data, server => client 09:40:38.727873 '257 "/" is current directory\r\n' 09:40:38.729159 < 6 bytes data, client => server 09:40:38.729314 'EPSV\r\n' 09:40:38.750080 Received DATA (on stdin) 09:40:38.750252 > 38 bytes data, server => client 09:40:38.750366 '229 Entering Passive Mode (|||44725|)\n' 09:40:38.752546 < 8 bytes data, client => server 09:40:38.752736 'TYPE I\r\n' 09:40:38.754597 Received DATA (on stdin) 09:40:38.754905 > 33 bytes data, server => client 09:40:38.755277 '200 I modify TYPE as you wanted\r\n' 09:40:38.757978 < 21 bytes data, client => server 09:40:38.758153 'SIZE verifiedserver\r\n' 09:40:38.759391 Received DATA (on stdin) 09:40:38.759642 > 8 bytes data, server => client 09:40:38.759846 '213 17\r\n' 09:40:38.761189 < 21 bytes data, client => server 09:40:38.761340 'RETR verifiedserver\r\n' 09:40:38.762592 Received DATA (on stdin) 09:40:38.762764 > 29 bytes data, server => client 09:40:38.763538 '150 Binary junk (17 bytes).\r\n' 09:40:38.770769 Received DATA (on stdin) 09:40:38.770916 > 28 bytes data, server => client 09:40:38.771005 '226 File transfer complete\r\n' 09:40:38.805835 < 6 bytes data, client => server 09:40:38.806030 'QUIT\r\n' 09:40:38.807142 Received DATA (on stdin) 09:40:38.807521 > 18 bytes data, server => client 09:40:38.808231 '221 bye bye baby\r\n' 09:40:38.811566 ====> Client disconnect 09:40:38.812315 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:38.744361 Running IPv4 version 09:40:38.745118 Listening on port 44725 09:40:38.745908 Wrote pid 85210 to log/59/server/ftp_sockdata.pid 09:40:38.746261 Received PING (on stdin) 09:40:38.747814 Received PORT (on stdin) 09:40:38.752276 ====> Client connect 09:40:38.763579 Received DATA (on stdin) 09:40:38.763771 > 17 bytes data, server => client 09:40:38.763876 'WE ROOLZ: 78816\r\n' 09:40:38.764573 ====> Client disconnect 09:40:38.766225 Received DISC (on stdin) 09:40:38.766398 Crikey! Client also wants to disconnect 09:40:38.766625 Received ACKD (on stdin) 09:40:38.767787 Received QUIT (on stdin) 09:40:38.767919 quits 09:40:38.768381 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 210 === End of file server.cmd === Start of file valgrind210 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind210 test 0209...[HTTP proxy CONNECT auth NTLM] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind209 ../src/curl -q --output log/54/curl209.out --include --trace-ascii log/54/trace209 --trace-config all --trace-time http://test.remote.example.com.209:44921/path/2090002 --proxy http://127.0.0.1:44921 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/54/stdout209 2> log/54/stderr209 209: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 209 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind209 ../src/curl -q --output log/54/curl209.out --include --trace-ascii log/54/trace209 --trace-config all --trace-time http://test.remote.example.com.209:44921/path/2090002 --proxy http://127.0.0.1:44921 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/54/stdout209 2> log/54/stderr209 === End of file commands.log === Start of file http_server.log 09:40:38.626906 ====> Client connect 09:40:38.627915 accept_connection 3 returned 4 09:40:38.628170 accept_connection 3 returned 0 09:40:38.628679 Read 93 bytes 09:40:38.628851 Process 93 bytes request 09:40:38.628941 Got request: GET /verifiedserver HTTP/1.1 09:40:38.629137 Are-we-friendly question received 09:40:38.631737 Wrote request (93 bytes) input to log/54/server.input 09:40:38.632013 Identifying ourselves as friends 09:40:38.632976 Response sent (56 bytes) and written to log/54/server.response 09:40:38.633097 special request received, no persistency 09:40:38.633169 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind213 ../src/curl -q --output log/63/curl213.out --include --trace-ascii log/63/trace213 --trace-config all --trace-time http://test.remote.example.com.213:38797/path/2130002 --proxy1.0 http://127.0.0.1:38797 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/63/stdout213 2> log/63/stderr213 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 209 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind209 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind209 setenv MSYS2_ARG_CONV_EXCL = http:// test 0214...[HTTP URL with escaped { and }] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind214 ../src/curl -q --output log/58/curl214.out --include --trace-ascii log/58/trace214 --trace-config all --trace-time "http://127.0.0.1:46727/\{\}\/214" > log/58/stdout214 2> log/58/stderr214 214: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 214 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind214 ../src/curl -q --output log/58/curl214.out --include --trace-ascii log/58/trace214 --trace-config all --trace-time "http://127.0.0.1:46727/\{\}\/214" > log/58/stdout214 2> log/58/stderr214 === End of file commands.log === Start of file http_server.log 09:40:38.826842 ====> Client connect 09:40:38.827139 accept_connection 3 returned 4 09:40:38.827296 accept_connection 3 returned 0 09:40:38.827905 Read 93 bytes 09:40:38.828052 Process 93 bytes request 09:40:38.828134 Got request: GET /verifiedserver HTTP/1.1 09:40:38.828201 Are-we-friendly question received 09:40:38.828428 Wrote request (93 bytes) input to log/58/server.input 09:40:38.828695 Identifying ourselves as friends 09:40:38.831924 Response sent (56 bytes) and written to log/58/server.response 09:40:38.832059 special request received, no persistency 09:40:38.832132 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 214 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind214 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind214 test 0213...[HTTP 1.0 proxy CONNECT auth NTLM and then POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind213 ../src/curl -q --output log/63/curl213.out --include --trace-ascii log/63/trace213 --trace-config all --trace-time http://test.remote.example.com.213:38797/path/2130002 --proxy1.0 http://127.0.0.1:38797 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/63/stdout213 2> log/63/stderr213 213: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 213 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind213 ../src/curl -q --output log/63/curl213.out --include --trace-ascii log/63/trace213 --trace-config all --trace-time http://test.remote.example.com.213:38797/path/2130002 --proxy1.0 http://127.0.0.1:38797 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/63/stdout213 2> log/63/stderr213 === End of file commands.log === Start of file http_server.log 09:40:38.764162 ====> Client connect 09:40:38.764594 accept_connection 3 returned 4 09:40:38.764798 accept_connection 3 returned 0 09:40:38.765838 Read 93 bytes 09:40:38.766001 Process 93 bytes request 09:40:38.766101 Got request: GET /verifiedserver HTTP/1.1 09:40:38.766195 Are-we-friendly question received 09:40:38.766604 Wrote request (93 bytes) input to log/63/server.input 09:40:38.766860 Identifying ourselves as friends 09:40:38.771738 Response sent (56 bytes) and written to log/63/server.response 09:40:38.771880 special request received, no persistency 09:40:38.771965 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 2CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind216 ../src/curl -q --output log/57/curl216.out --include --trace-ascii log/57/trace216 --trace-config all --trace-time -T log/57/upload.216 ftp://127.0.0.1:42129/a/path/216/ -T log/57/upload.216 ftp://127.0.0.1:42129/a/path/216/%2e%2eanotherup.216 > log/57/stdout216 2> log/57/stderr216 13 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind213 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind213 test 0216...[FTP upload two files to the same dir] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind216 ../src/curl -q --output log/57/curl216.out --include --trace-ascii log/57/trace216 --trace-config all --trace-time -T log/57/upload.216 ftp://127.0.0.1:42129/a/path/216/ -T log/57/upload.216 ftp://127.0.0.1:42129/a/path/216/%2e%2eanotherup.216 > log/57/stdout216 2> log/57/stderr216 216: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 216 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind216 ../src/curl -q --output log/57/curl216.out --include --trace-ascii log/57/trace216 --trace-config all --trace-time -T log/57/upload.216 ftp://127.0.0.1:42129/a/path/216/ -T log/57/upload.216 ftp://127.0.0.1:42129/a/path/216/%2e%2eanotherup.216 > log/57/stdout216 2> log/57/stderr216 === End of file commands.log === Start of file ftp_server.log 09:40:38.741045 ====> Client connect 09:40:38.742521 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:38.749368 < "USER anonymous" 09:40:38.750925 > "331 We are happy you popped in![CR][LF]" 09:40:38.752507 < "PASS ftp@example.com" 09:40:38.752931 > "230 Welcome you silly person[CR][LF]" 09:40:38.754927 < "PWD" 09:40:38.756075 > "257 "/" is current directory[CR][LF]" 09:40:38.757488 < "EPSV" 09:40:38.757860 ====> Passive DATA channel requested by client 09:40:38.758089 DATA sockfilt for passive data channel starting... 09:40:38.770206 DATA sockfilt for passive data channel started (pid 85393) 09:40:38.771175 DATA sockfilt for passive data channel listens on port 39227 09:40:38.771603 > "229 Entering Passive Mode (|||39227|)[LF]" 09:40:38.772111 Client has been notified that DATA conn will be accepted on port 39227 09:40:38.775411 Client connects to port 39227 09:40:38.776088 ====> Client established passive DATA connection on port 39227 09:40:38.776943 < "TYPE I" 09:40:38.777431 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:38.780279 < "SIZE verifiedserver" 09:40:38.781106 > "213 17[CR][LF]" 09:40:38.784199 < "RETR verifiedserver" 09:40:38.784993 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:38.785883 =====> Closing passive DATA connection... 09:40:38.786176 Server disconnects passive DATA connection 09:40:38.787145 Server disconnected passive DATA connection 09:40:38.787420 DATA sockfilt for passive data channel quits (pid 85393) 09:40:38.789459 DATA sockfilt for passive data channel quit (pid 85393) 09:40:38.789723 =====> Closed passive DATA connection 09:40:38.790733 > "226 File transfer complete[CR][LF]" 09:40:38.829546 < "QUIT" 09:40:38.830205 > "221 bye bye baby[CR][LF]" 09:40:38.834199 MAIN sockfilt said DISC 09:40:38.835114 ====> Client disconnected 09:40:38.835651 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:38.994060 ====> Client connect 09:40:39.000570 Received DATA (on stdin) 09:40:39.000735 > 160 bytes data, server => client 09:40:39.000839 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.000936 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.001025 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.001847 < 16 bytes data, client => server 09:40:39.002011 'USER anonymous\r\n' 09:40:39.003507 Received DATA (on stdin) 09:40:39.003728 > 33 bytes data, server => client 09:40:39.004172 '331 We are happy you popped in!\r\n' 09:40:39.005254 < 22 bytes data, client => server 09:40:39.005399 'PASS ftp@example.com\r\n' 09:40:39.006939 Received DATA (on stdin) 09:40:39.007059 > 30 bytes data, server => client 09:40:39.007137 '230 Welcome you silly person\r\n' 09:40:39.007725 < 5 bytes data, client => server 09:40:39.007863 'PWD\r\n' 09:40:39.009028 Received DATA (on stdin) 09:40:39.009170 > 30 bytes data, server => client 09:40:39.009335 '257 "/" is current directory\r\n' 09:40:39.010391 < 6 bytes data, client => server 09:40:39.010615 'EPSV\r\n' 09:40:39.026145 Received DATA (on stdin) 09:40:39.026280 > 38 bytes data, server => client 09:40:39.026382 '229 Entering Passive Mode (|||39227|)\n' 09:40:39.028575 < 8 bytes data, client => server 09:40:39.028707 'TYPE I\r\n' 09:40:39.031502 Received DATA (on stdin) 09:40:39.031641 > 33 bytes data, server => client 09:40:39.031741 '200 I modify TYPE as you wanted\r\n' 09:40:39.032505 < 21 bytes data, client => server 09:40:39.032707 'SIZE verifiedserver\r\n' 09:40:39.035241 Received DATA (on stdin) 09:40:39.035605 > 8 bytes data, server => client 09:40:39.035704 '213 17\r\n' 09:40:39.036416 < 21 bytes data, client => server 09:40:39.036642 'RETR verifiedserver\r\n' 09:40:39.040201 Received DATA (on stdin) 09:40:39.040316 > 29 bytes data, server => client 09:40:39.040399 '150 Binary junk (17 bytes).\r\n' 09:40:39.043837 Received DATA (on stdin) 09:40:39.043973 > 28 bytes data, server => client 09:40:39.044162 '226 File transfer complete\r\n' 09:40:39.082617 < 6 bytes data, client => server 09:40:39.082813 'QUIT\r\n' 09:40:39.083939 Received DATA (on stdin) 09:40:39.084242 > 18 bytes data, server => client 09:40:39.084335 '221 bye bye baby\r\n' 09:40:39.087557 ====> Client disconnect 09:40:39.088255 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:38.022356 Running IPv4 version 09:40:38.023029 Listening on port 39227 09:40:38.023385 Wrote pid 85393 to log/57/server/ftp_sockdata.pid 09:40:38.023628 Received PING (on stdin) 09:40:38.024321 Received PORT (on stdin) 09:40:38.027945 ====> Client connect 09:40:38.039140 Received DATA (on stdin) 09:40:38.039282 > 17 bytes data, server => client 09:40:38.039386 'WE ROOLZ: 79056\r\n' 09:40:38.040180 Received DISC (on stdin) 09:40:38.040331 ====> Client forcibly disconnected 09:40:38.041672 Received QUIT (on stdin) 09:40:38.041815 quits 09:40:38.042194 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 216 === End of file server.cmd === Start of file upload.216 upload this file twice === EndCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind217 ../src/curl -q --include --trace-ascii log/52/trace217 --trace-config all --trace-time http://test.remote.example.com.217:40089/path/2170002 --proxy http://127.0.0.1:40089 --proxytunnel -w "%{http_code} %{http_connect}\n" > log/52/stdout217 2> log/52/stderr217 of file upload.216 === Start of file valgrind216 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind216 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind215 ../src/curl -q --output log/64/curl215.out --include --trace-ascii log/64/trace215 --trace-config all --trace-time ftp://127.0.0.1:37199/a/path/215/ ftp://127.0.0.1:37199/a/path/215/ > log/64/stdout215 2> log/64/stderr215 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind219 ../src/curl -q --output log/60/curl219.out --include --trace-ascii log/60/trace219 --trace-config all --trace-time -x foo://127.0.0.1:47/219 http://127.0.0.1:47/219 > log/60/stdout219 2> log/60/stderr219 test 0217...[HTTP proxy CONNECT to proxy returning 405] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind217 ../src/curl -q --include --trace-ascii log/52/trace217 --trace-config all --trace-time http://test.remote.example.com.217:40089/path/2170002 --proxy http://127.0.0.1:40089 --proxytunnel -w "%{http_code} %{http_connect}\n" > log/52/stdout217 2> log/52/stderr217 217: stdout FAILED: --- log/52/check-expected 2025-07-18 09:40:39.848178601 +0000 +++ log/52/check-generated 2025-07-18 09:40:39.846608622 +0000 @@ -1,3 +0,0 @@ -HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] -[CR][LF] -000 405[LF] == Contents of files in the log/52/ dir after test 217 === Start of file check-expected HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] [CR][LF] 000 405[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind217 ../src/curl -q --include --trace-ascii log/52/trace217 --trace-config all --trace-time http://test.remote.example.com.217:40089/path/2170002 --proxy http://127.0.0.1:40089 --proxytunnel -w "%{http_code} %{http_connect}\n" > log/52/stdout217 2> log/52/stderr217 === End of file commands.log === Start of file http_server.log 09:40:39.131985 ====> Client connect 09:40:39.132579 accept_connection 3 returned 4 09:40:39.132900 accept_connection 3 returned 0 09:40:39.133041 Read 93 bytes 09:40:39.133212 Process 93 bytes request 09:40:39.133568 Got request: GET /verifiedserver HTTP/1.1 09:40:39.133807 Are-we-friendly question received 09:40:39.134053 Wrote request (93 bytes) input to log/52/server.input 09:40:39.134428 Identifying ourselves as friends 09:40:39.138760 Response sent (56 bytes) and written to log/52/server.response 09:40:39.138918 special request received, no persistency 09:40:39.139079 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 217 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind217 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind217 test 0215...[Get two FTP dir listings from the same remote dir: no second CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind215 ../src/curl -q --output log/64/curl215.out --include --trace-ascii log/64/trace215 --trace-config all --trace-time ftp://127.0.0.1:37199/a/path/215/ ftp://127.0.0.1:37199/a/path/215/ > log/64/stdout215 2> log/64/stderr215 215: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 215 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind215 ../src/curl -q --output log/64/curl215.out --include --trace-ascii log/64/trace215 --trace-config all --trace-time ftp://127.0.0.1:37199/a/path/215/ ftp://127.0.0.1:37199/a/path/215/ > log/64/stdout215 2> log/64/stderr215 === End of file commands.log === Start of file ftp_server.log 09:40:38.698252 ====> Client connect 09:40:38.699882 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:38.703409 < "USER anonymous" 09:40:38.704554 > "331 We are happy you popped in![CR][LF]" 09:40:38.708533 < "PASS ftp@example.com" 09:40:38.709100 > "230 Welcome you silly person[CR][LF]" 09:40:38.711247 < "PWD" 09:40:38.712834 > "257 "/" is current directory[CR][LF]" 09:40:38.715256 < "EPSV" 09:40:38.715913 ====> Passive DATA channel requested by client 09:40:38.716215 DATA sockfilt for passive data channel starting... 09:40:38.731450 DATA sockfilt for passive data channel started (pid 85372) 09:40:38.732594 DATA sockfilt for passive data channel listens on port 37399 09:40:38.733222 > "229 Entering Passive Mode (|||37399|)[LF]" 09:40:38.733496 Client has been notified that DATA conn will be accepted on port 37399 09:40:38.736067 Client connects to port 37399 09:40:38.736406 ====> Client established passive DATA connection on port 37399 09:40:38.737318 < "TYPE I" 09:40:38.737813 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:38.740168 < "SIZE verifiedserver" 09:40:38.741896 > "213 17[CR][LF]" 09:40:38.743162 < "RETR verifiedserver" 09:40:38.744081 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:38.746210 =====> Closing passive DATA connection... 09:40:38.746475 Server disconnects passive DATA connection 09:40:38.746853 Fancy that; client wants to DISC, too 09:40:38.747239 Server disconnected passive DATA connection 09:40:38.747481 DATA sockfilt for passive data channel quits (pid 85372) 09:40:38.749307 DATA sockfilt for passive data channel quit (pid 85372) 09:40:38.749557 =====> Closed passive DATA connection 09:40:38.750410 > "226 File transfer complete[CR][LF]" 09:40:38.788047 < "QUIT" 09:40:38.789475 > "221 bye bye baby[CR][LF]" 09:40:38.794049 MAIN sockfilt said DISC 09:40:38.795365 ====> Client disconnected 09:40:38.796091 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:38.951164 ====> Client connect 09:40:38.954176 Received DATA (on stdin) 09:40:38.954352 > 160 bytes data, server => client 09:40:38.954542 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:38.954661 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:38.954751 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:38.955702 < 16 bytes data, client => server 09:40:38.955922 'USER anonymous\r\n' 09:40:38.957862 Received DATA (on stdin) 09:40:38.958021 > 33 bytes data, server => client 09:40:38.958714 '331 We are happy you popped in!\r\n' 09:40:38.959559 < 22 byteCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind218 ../src/curl -q --output log/62/curl218.out --include --trace-ascii log/62/trace218 --trace-config all --trace-time -T log/62/file218 -H "Transfer-Encoding: chunked" http://127.0.0.1:38899/218 > log/62/stdout218 2> log/62/stderr218 s data, client => server 09:40:38.959756 'PASS ftp@example.com\r\n' 09:40:38.963177 Received DATA (on stdin) 09:40:38.963310 > 30 bytes data, server => client 09:40:38.963398 '230 Welcome you silly person\r\n' 09:40:38.964098 < 5 bytes data, client => server 09:40:38.964248 'PWD\r\n' 09:40:38.965294 Received DATA (on stdin) 09:40:38.965524 > 30 bytes data, server => client 09:40:38.965809 '257 "/" is current directory\r\n' 09:40:38.967886 < 6 bytes data, client => server 09:40:38.968043 'EPSV\r\n' 09:40:38.987573 Received DATA (on stdin) 09:40:38.987873 > 38 bytes data, server => client 09:40:38.988018 '229 Entering Passive Mode (|||37399|)\n' 09:40:38.989721 < 8 bytes data, client => server 09:40:38.989901 'TYPE I\r\n' 09:40:38.991557 Received DATA (on stdin) 09:40:38.991744 > 33 bytes data, server => client 09:40:38.991844 '200 I modify TYPE as you wanted\r\n' 09:40:38.992662 < 21 bytes data, client => server 09:40:38.992847 'SIZE verifiedserver\r\n' 09:40:38.994335 Received DATA (on stdin) 09:40:38.994584 > 8 bytes data, server => client 09:40:38.994797 '213 17\r\n' 09:40:38.996022 < 21 bytes data, client => server 09:40:38.996156 'RETR verifiedserver\r\n' 09:40:38.997314 Received DATA (on stdin) 09:40:38.997544 > 29 bytes data, server => client 09:40:38.998546 '150 Binary junk (17 bytes).\r\n' 09:40:39.003612 Received DATA (on stdin) 09:40:39.003822 > 28 bytes data, server => client 09:40:39.004409 '226 File transfer complete\r\n' 09:40:39.040661 < 6 bytes data, client => server 09:40:39.040862 'QUIT\r\n' 09:40:39.042166 Received DATA (on stdin) 09:40:39.042333 > 18 bytes data, server => client 09:40:39.042643 '221 bye bye baby\r\n' 09:40:39.047326 ====> Client disconnect 09:40:39.048425 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:38.983271 Running IPv4 version 09:40:38.984005 Listening on port 37399 09:40:38.984411 Wrote pid 85372 to log/64/server/ftp_sockdata.pid 09:40:38.984700 Received PING (on stdin) 09:40:38.985730 Received PORT (on stdin) 09:40:38.989369 ====> Client connect 09:40:38.998245 Received DATA (on stdin) 09:40:38.998411 > 17 bytes data, server => client 09:40:38.998621 'WE ROOLZ: 78009\r\n' 09:40:38.999610 ====> Client disconnect 09:40:39.000571 Received DISC (on stdin) 09:40:39.000724 Crikey! Client also wants to disconnect 09:40:39.000927 Received ACKD (on stdin) 09:40:39.001534 Received QUIT (on stdin) 09:40:39.001676 quits 09:40:39.002062 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 215 === End of file server.cmd === Start of file valgrind215 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind215 * starts no server test 0219...[try using proxy with unsupported scheme] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind219 ../src/curl -q --output log/60/curl219.out --include --trace-ascii log/60/trace219 --trace-config all --trace-time -x foo://127.0.0.1:47/219 http://127.0.0.1:47/219 > log/60/stdout219 2> log/60/stderr219 curl returned 1, when expecting 7 219: exit FAILED == Contents of files in the log/60/ dir after test 219 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind219 ../src/curl -q --output log/60/curl219.out --include --trace-ascii log/60/trace219 --trace-config all --trace-time -x foo://127.0.0.1:47/219 http://127.0.0.1:47/219 > log/60/stdout219 2> log/60/stderr219 === End of file commands.log === Start of file server.cmd Testnum 219 === End of file server.cmd === Start of file valgrind219 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind219 test 0218...[HTTP PUT from a file but enforce chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind218 ../src/curl -q --output log/62/curl218.out --include --trace-ascii log/62/trace218 --trace-config all --trace-time -T log/62/file218 -H "Transfer-Encoding: chunked" http://127.0.0.1:38899/218 > log/62/stdout218 2> log/62/stderr218 218: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 218 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind218 ../src/curl -q --output log/62/curl218.out --include --trace-ascii log/62/trace218 --trace-config all --trace-time -T log/62/file218 -H "Transfer-Encoding: chunked" http://127.0.0.1:38899/218 > log/62/stdout218 2> log/62/stderr218 === End of file commands.log === Start of file file218 just some tiny teeny contents === End of file file218 === Start of file http_server.log 09:40:39.257348 ====> Client connect 09:40:39.257849 accept_connection 3 returned 4 09:40:39.258036 accept_connection 3 returned 0 09:40:39.258176 Read 93 bytes 09:40:39.258283 Process 93 bytes request 09:40:39.258392 Got request: GET /verifiedserver HTTP/1.1 09:40:39.25857CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind231 ../src/curl -q --output log/31/curl231.out --trace-ascii log/31/trace231 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/31/test231.txt -C 10 > log/31/stdout231 2> log/31/stderr231 5 Are-we-friendly question received 09:40:39.258832 Wrote request (93 bytes) input to log/62/server.input 09:40:39.259363 Identifying ourselves as friends 09:40:39.260241 Response sent (56 bytes) and written to log/62/server.response 09:40:39.260352 special request received, no persistency 09:40:39.260426 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 218 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind218 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind218 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind226 ../src/curl -q --output log/36/curl226.out --include --trace-ascii log/36/trace226 --trace-config all --trace-time ftp://127.0.0.1:45965/226%0d > log/36/stdout226 2> log/36/stderr226 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind224 ../src/curl -q --output log/37/curl224.out --include --trace-ascii log/37/trace224 --trace-config all --trace-time http://127.0.0.1:37551/224 --compressed > log/37/stdout224 2> log/37/stderr224 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind220 ../src/curl -q --output log/38/curl220.out --include --trace-ascii log/38/trace220 --trace-config all --trace-time http://127.0.0.1:33511/220 --compressed > log/38/stdout220 2> log/38/stderr220 test 0231...[file:// with resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind231 ../src/curl -q --output log/31/curl231.out --trace-ascii log/31/trace231 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/31/test231.txt -C 10 > log/31/stdout231 2> log/31/stderr231 231: data FAILED: --- log/31/check-expected 2025-07-18 09:40:40.207450299 +0000 +++ log/31/check-generated 2025-07-18 09:40:40.206608440 +0000 @@ -1,2 +0,0 @@ -B01234567[LF] -C01234567[LF] == Contents of files in the log/31/ dir after test 231 === Start of file check-expected B01234567[LF] C01234567[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind231 ../src/curl -q --output log/31/curl231.out --trace-ascii log/31/trace231 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/31/test231.txt -C 10 > log/31/stdout231 2> log/31/stderr231 === End of file commands.log === Start of file server.cmd Testnum 231 === End of file server.cmd === Start of file test231.txt A01234567 B01234567 C01234567 === End of file test231.txt === Start of file valgrind231 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind231 test 0226...[FTP %0d-code in URL's CWD part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind226 ../src/curl -q --output log/36/curl226.out --include --trace-ascii log/36/trace226 --trace-config all --trace-time ftp://127.0.0.1:45965/226%0d > log/36/stdout226 2> log/36/stderr226 curl returned 1, when expecting 3 226: exit FAILED == Contents of files in the log/36/ dir after test 226 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind226 ../src/curl -q --output log/36/curl226.out --include --trace-ascii log/36/trace226 --trace-config all --trace-time ftp://127.0.0.1:45965/226%0d > log/36/stdout226 2> log/36/stderr226 === End of file commands.log === Start of file ftp_server.log 09:40:39.432227 ====> Client connect 09:40:39.434891 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.437055 < "USER anonymous" 09:40:39.439273 > "331 We are happy you popped in![CR][LF]" 09:40:39.440119 < "PASS ftp@example.com" 09:40:39.440912 > "230 Welcome you silly person[CR][LF]" 09:40:39.442680 < "PWD" 09:40:39.444189 > "257 "/" is current directory[CR][LF]" 09:40:39.445388 < "EPSV" 09:40:39.445833 ====> Passive DATA channel requested by client 09:40:39.446114 DATA sockfilt for passive data channel starting... 09:40:39.463539 DATA sockfilt for passive data channel started (pid 86115) 09:40:39.465628 DATA sockfilt for passive data channel listens on port 40125 09:40:39.468512 > "229 Entering Passive Mode (|||40125|)[LF]" 09:40:39.469013 Client has been notified that DATA conn will be accepted on port 40125 09:40:39.469340 Client connects to port 40125 09:40:39.469617 ====> Client established passive DATA connection on port 40125 09:40:39.470473 < "TYPE I" 09:40:39.471917 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.473492 < "SIZE verifiedserver" 09:40:39.474322 > "213 17[CR][LF]" 09:40:39.476573 < "RETR verifiedserver" 09:40:39.477420 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.478247 =====> Closing passive DATA connection... 09:40:39.478516 Server disconnects passive DATA connection 09:40:39.480321 Fancy that; client wants to DISC, too 09:40:39.480657 Server disconnected passive DATA connection 09:40:39.480973 DATA sockfilt for passive data channel quits (pid 86115) 09:40:39.483830 DATA sockfilt for passive data channel quit (pid 86115) 09:40:39.484168 =====> Closed passive DATA connection 09:40:39.485389 > "226 File transfer complete[CR][LF]" 09:40:39.522984 < "QUIT" 09:40:39.523402 > "221 bye bye baby[CR][LF]" 09:40:39.528203 MAIN sockfilt said DISC 09:40:39.529169 ====> Client disconnected 09:40:39.529725 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.685167 ====> Client connect 09:40:39.687336 Received DATA (on stdin) 09:40:39.687576 > 160 bytes data, server => client 09:40:39.687799 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.687950 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.688046 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.689568 < 16 bytes data, client => server 09:40:39.689718 'USER anonymous\r\n' 09:40:39.691499 Received DATA (on stdin) 09:40:39.691662 > 33 bytes data, server => client 09:40:39.691862 '331 We are happy you popped in!\r\n' 09:40:39.692594 < 22 bytes data, client => server 09:40:39.692742 'PASS ftp@example.com\r\n' 09:40:39.694195 Received DATA (on stdin) 09:40:39.694343 > 30 bytes data, server => client 09:40:39.694913 '230 Welcome you silly person\r\n' 09:40:39.695644 < 5 bytes data, client => server 09:40:39.695790 'PWD\r\n' 09:40:39.696854 Received DATA (on stdin) 09:40:39.696995 > 30 bytes data, server => client 09:40:39.697166 '257 "/" is current directory\r\n' 09:40:39.698356 < 6 bytes data, client => server 09:40:39.700641 'EPSV\r\n' 09:40:39.719903 Received DATA (on stdin) 09:40:39.720053 > 38 bytes data, server => client 09:40:39.720252 '229 Entering Passive Mode (|||40125|)\n' 09:40:39.721821 < 8 bytes data, client => server 09:40:39.721955 'TYPE I\r\n' 09:40:39.724765 Received DATA (on stdin) 09:40:39.724915 > 33 bytes data, server => client 09:40:39.725103 '200 I modify TYPE as you wanted\r\n' 09:40:39.726307 < 21 bytes data, client => server 09:40:39.726543 'SIZE verifiedserver\r\n' 09:40:39.727643 Received DATA (on stdin) 09:40:39.727791 > 8 bytes data, server => client 09:40:39.728620 '213 17\r\n' 09:40:39.729515 < 21 bytes data, client => server 09:40:39.729668 'RETR verifiedserver\r\n' 09:40:39.730773 Received DATA (on stdin) 09:40:39.730913 > 29 bytes data, server => client 09:40:39.732539 '150 Binary junk (17 bytes).\r\n' 09:40:39.738278 Received DATA (on stdin) 09:40:39.738510 > 28 bytes data, server => client 09:40:39.738728 '226 File transfer complete\r\n' 09:40:39.775577 < 6 bytes data, client => server 09:40:39.775806 'QUIT\r\n' 09:40:39.777776 ReceiveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind221 ../src/curl -q --output log/25/curl221.out --include --trace-ascii log/25/trace221 --trace-config all --trace-time http://127.0.0.1:41727/221 --compressed > log/25/stdout221 2> log/25/stderr221 d DATA (on stdin) 09:40:39.777944 > 18 bytes data, server => client 09:40:39.778049 '221 bye bye baby\r\n' 09:40:39.781567 ====> Client disconnect 09:40:39.782245 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.715680 Running IPv4 version 09:40:39.716245 Listening on port 40125 09:40:39.716743 Wrote pid 86115 to log/36/server/ftp_sockdata.pid 09:40:39.716905 Received PING (on stdin) 09:40:39.718569 Received PORT (on stdin) 09:40:39.721587 ====> Client connect 09:40:39.731600 Received DATA (on stdin) 09:40:39.731761 > 17 bytes data, server => client 09:40:39.731854 'WE ROOLZ: 82698\r\n' 09:40:39.733643 ====> Client disconnect 09:40:39.734008 Received DISC (on stdin) 09:40:39.734139 Crikey! Client also wants to disconnect 09:40:39.735116 Received ACKD (on stdin) 09:40:39.735616 Received QUIT (on stdin) 09:40:39.735744 quits 09:40:39.736180 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 226 === End of file server.cmd === Start of file valgrind226 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind226 test 0224...[HTTP GET gzip compressed content with huge comment and extra field] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind224 ../src/curl -q --output log/37/curl224.out --include --trace-ascii log/37/trace224 --trace-config all --trace-time http://127.0.0.1:37551/224 --compressed > log/37/stdout224 2> log/37/stderr224 224: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 224 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind224 ../src/curl -q --output log/37/curl224.out --include --trace-ascii log/37/trace224 --trace-config all --trace-time http://127.0.0.1:37551/224 --compressed > log/37/stdout224 2> log/37/stderr224 === End of file commands.log === Start of file http_server.log 09:40:39.617714 ====> Client connect 09:40:39.618049 accept_connection 3 returned 4 09:40:39.618236 accept_connection 3 returned 0 09:40:39.618383 Read 93 bytes 09:40:39.618595 Process 93 bytes request 09:40:39.618717 Got request: GET /verifiedserver HTTP/1.1 09:40:39.618811 Are-we-friendly question received 09:40:39.619046 Wrote request (93 bytes) input to log/37/server.input 09:40:39.619235 Identifying ourselves as friends 09:40:39.621156 Response sent (56 bytes) and written to log/37/server.response 09:40:39.623745 special request received, no persistency 09:40:39.623865 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 224 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind224 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind224 test 0220...[HTTP GET gzip compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind220 ../src/curl -q --output log/38/curl220.out --include --trace-ascii log/38/trace220 --trace-config all --trace-time http://127.0.0.1:33511/220 --compressed > log/38/stdout220 2> log/38/stderr220 220: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 220 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind220 ../src/curl -q --output log/38/curl220.out --include --trace-ascii log/38/trace220 --trace-config all --trace-time http://127.0.0.1:33511/220 --compressed > log/38/stdout220 2> log/38/stderr220 === End of file commands.log === Start of file http_server.log 09:40:39.663859 ====> Client connect 09:40:39.664191 accept_connection 3 returned 4 09:40:39.664393 accept_connection 3 returned 0 09:40:39.664685 Read 93 bytes 09:40:39.664814 Process 93 bytes request 09:40:39.664920 Got request: GET /verifiedserver HTTP/1.1 09:40:39.665016 Are-we-friendly question received 09:40:39.665286 Wrote request (93 bytes) input to log/38/server.input 09:40:39.665550 Identifying ourselves as friends 09:40:39.666351 Response sent (56 bytes) and written to log/38/server.response 09:40:39.666605 special request received, no persistency 09:40:39.666730 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * TrCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind225 ../src/curl -q --output log/53/curl225.out --include --trace-ascii log/53/trace225 --trace-config all --trace-time ftp://bad%0auser:passwd@127.0.0.1:42281/225%0a > log/53/stdout225 2> log/53/stderr225 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind222 ../src/curl -q --output log/49/curl222.out --include --trace-ascii log/49/trace222 --trace-config all --trace-time http://127.0.0.1:42667/222 --compressed > log/49/stdout222 2> log/49/stderr222 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind228 ../src/curl -q --output log/21/curl228.out --include --trace-ascii log/21/trace228 --trace-config all --trace-time ftp://127.0.0.1:40295/228 --ftp-account "one count" > log/21/stdout228 2> log/21/stderr228 ying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 220 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind220 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind220 test 0221...[HTTP GET gzip compressed content with broken gzip header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind221 ../src/curl -q --output log/25/curl221.out --include --trace-ascii log/25/trace221 --trace-config all --trace-time http://127.0.0.1:41727/221 --compressed > log/25/stdout221 2> log/25/stderr221 221: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 221 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind221 ../src/curl -q --output log/25/curl221.out --include --trace-ascii log/25/trace221 --trace-config all --trace-time http://127.0.0.1:41727/221 --compressed > log/25/stdout221 2> log/25/stderr221 === End of file commands.log === Start of file http_server.log 09:40:39.614930 ====> Client connect 09:40:39.615335 accept_connection 3 returned 4 09:40:39.615648 accept_connection 3 returned 0 09:40:39.615853 Read 93 bytes 09:40:39.615982 Process 93 bytes request 09:40:39.616104 Got request: GET /verifiedserver HTTP/1.1 09:40:39.616239 Are-we-friendly question received 09:40:39.616598 Wrote request (93 bytes) input to log/25/server.input 09:40:39.616827 Identifying ourselves as friends 09:40:39.621788 Response sent (56 bytes) and written to log/25/server.response 09:40:39.621927 special request received, no persistency 09:40:39.622011 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd Testnum 221 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind221 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind221 test 0225...[FTP %0a-code in URL's name part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind225 ../src/curl -q --output log/53/curl225.out --include --trace-ascii log/53/trace225 --trace-config all --trace-time ftp://bad%0auser:passwd@127.0.0.1:42281/225%0a > log/53/stdout225 2> log/53/stderr225 curl returned 1, when expecting 3 225: exit FAILED == Contents of files in the log/53/ dir after test 225 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind225 ../src/curl -q --output log/53/curl225.out --include --trace-ascii log/53/trace225 --trace-config all --trace-time ftp://bad%0auser:passwd@127.0.0.1:42281/225%0a > log/53/stdout225 2> log/53/stderr225 === End of file commands.log === Start of file ftp_server.log 09:40:39.545888 ====> Client connect 09:40:39.547348 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.552997 < "USER anonymous" 09:40:39.553434 > "331 We are happy you popped in![CR][LF]" 09:40:39.559073 < "PASS ftp@example.com" 09:40:39.559601 > "230 Welcome you silly person[CR][LF]" 09:40:39.565563 < "PWD" 09:40:39.566033 > "257 "/" is current directory[CR][LF]" 09:40:39.574656 < "EPSV" 09:40:39.575098 ====> Passive DATA channel requested by client 09:40:39.575398 DATA sockfilt for passive data channel starting... 09:40:39.593331 DATA sockfilt for passive data channel started (pid 86281) 09:40:39.597197 DATA sockfilt for passive data channel listens on port 45521 09:40:39.597677 > "229 Entering Passive Mode (|||45521|)[LF]" 09:40:39.598018 Client has been notified that DATA conn will be accepted on port 45521 09:40:39.603864 Client connects to port 45521 09:40:39.604162 ====> Client established passive DATA connection on port 45521 09:40:39.604949 < "TYPE I" 09:40:39.605360 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.611314 < "SIZE verifiedserver" 09:40:39.611699 > "213 17[CR][LF]" 09:40:39.613913 < "RETR verifiedserver" 09:40:39.614327 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.618518 =====> Closing passive DATA connection... 09:40:39.619022 Server disconnects passive DATA connection 09:40:39.621890 Server disconnected passive DATA connection 09:40:39.622156 DATA sockfilt for passive data channel quits (pid 86281) 09:40:39.625041 DATA sockfilt for passive data channel quit (pid 86281) 09:40:39.625289 =====> Closed passive DATA connection 09:40:39.625619 > "226 File transfer complete[CR][LF]" 09:40:39.660174 < "QUIT" 09:40:39.660583 > "221 bye bye baby[CR][LF]" 09:40:39.676885 MAIN sockfilt said DISC 09:40:39.677188 ====> Client disconnected 09:40:39.677601 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.797976 ====> Client connect 09:40:39.802611 Received DATA (on stdin) 09:40:39.802771 > 160 bytes data, server => client 09:40:39.802866 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.802947 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.803022 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.803791 < 16 bytes data, client => server 09:40:39.803928 'USER anonymous\r\n' 09:40:39.810623 Received DATA (on stdin) 09:40:39.810772 > 33 bytes data, server => client 09:40:39.810846 '331 We are happy you popped in!\r\n' 09:40:39.811695 < 22 bytes data, client => server 09:40:39.811860 'PASS ftp@example.com\r\n' 09:40:39.817575 Received DATA (on stdin) 09:40:39.817726 > 30 bytes data, server => client 09:40:39.817807 '230 Welcome you silly person\r\n' 09:40:39.818509 < 5 bytes data, client => server 09:40:39.818655 'PWD\r\n' 09:40:39.821650 Received DATA (on stdin) 09:40:39.821813 > 30 bytes data, server => client 09:40:39.821906 '257 "/" is current directory\r\n' 09:40:39.826006 < 6 bytes data, client => server 09:40:39.826161 'EPSV\r\n' 09:40:39.852044 Received DATA (on stdin) 09:40:39.852215 > 38 bytes data, server => client 09:40:39.852310 '229 Entering Passive Mode (|||45521|)\n' 09:40:39.854479 < 8 bytes data, client => server 09:40:39.854614 'TYPE I\r\n' 09:40:39.860570 Received DATA (on stdin) 09:40:39.860725 > 33 bytes data, server => client 09:40:39.860807 '200 I modify TYPE as you wanted\r\n' 09:40:39.861523 < 21 bytes data, client => server 09:40:39.861673 'SIZE verifiedserver\r\n' 09:40:39.865858 Received DATA (on stdin) 09:40:39.865996 > 8 bytes data, server => client 09:40:39.866092 '213 17\r\n' 09:40:39.866808 < 21 bytes data, client => server 09:40:39.866951 'RETR verifiedserver\r\n' 09:40:39.868746 Received DATA (on stdin) 09:40:39.868865 > 29 bytes data, server => client 09:40:39.868947 '150 Binary junk (17 bytes).\r\n' 09:40:39.880576 Received DATA (on stdin) 09:40:39.880737 > 28 bytes data, server => client 09:40:39.880826 '226 File transfer complete\r\n' 09:40:39.912828 < 6 bytes data, client => server 09:40:39.912999 'QUIT\r\n' 09:40:39.919670 Received DATA (on stdin) 09:40:39.919843 > 18 bytes data, server => client 09:40:39.919945 '221 bye bye baby\r\n' 09:40:39.927287 ====> Client disconnect 09:40:39.931635 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.845394 Running IPv4 version 09:40:39.846066 Listening on port 45521 09:40:39.846418 Wrote pid 86281 to log/53/server/ftp_sockdata.pid 09:40:39.846690 Received PING (on stdin) 09:40:39.847768 Received PORT (on stdin) 09:40:39.856750 ====> Client connect 09:40:39.868385 Received DATA (on stdin) 09:40:39.868594 > 17 bytes data, server => client 09:40:39.870683 'WE ROOLZ: 77508\r\n' 09:40:39.873043 Received DISC (on stdin) 09:40:39.873184 ====> Client forcibly disconnected 09:40:39.876167 Received QUIT (on stdin) 09:40:39.876300 quits 09:40:39.876784 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 225 === End of file server.cmd === Start of file valgrind225 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind225 test 0228...[FTP RETR with ACCT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind228 ../src/curl -q --output log/21/curl228.out --include --trace-ascii log/21/trace228 --trace-config all --trace-time ftp://127.0.0.1:40295/228 --ftp-account "one count" > log/21/stdout228 2> log/21/stderr228 228: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 228 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind228 ../src/curl -q --output log/21/curl228.out --include --trace-ascii log/21/trace228 --trace-config all --trace-time ftp://127.0.0.1:40295/228 --ftp-account "one count" > log/21/stdout228 2> log/21/stderr228 === End of file commands.log === Start of file ftp_server.log 09:40:39.493476 ====> Client connect 09:40:39.496850 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.497883 < "USER anonymous" 09:40:39.499013 > "331 We are happy you popped in![CR][LF]" 09:40:39.500609 < "PASS ftp@example.com" 09:40:39.501409 > "230 Welcome you silly person[CR][LF]" 09:40:39.503299 < "PWD" 09:40:39.504126 > "257 "/" is current directory[CR][LF]" 09:40:39.506019 < "EPSV" 09:40:39.506393 ====> Passive DATA channel requested by client 09:40:39.506599 DATA sockfilt for passive data channel starting... 09:40:39.532489 DATA sockfilt for passive data channel started (pid 86193) 09:40:39.536059 DATA sockfilt for passive data channel listens on port 41397 09:40:39.536552 > "229 Entering Passive Mode (|||41397|)[LF]" 09:40:39.536932 Client has been notified that DATA conn will be accepted on port 41397 09:40:39.540944 Client connects to port 41397 09:40:39.541296 ====> Client established passive DATA connection on port 41397 09:40:39.542569 < "TYPE I" 09:40:39.545170 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.547055 < "SIZE verifiedserver" 09:40:39.547462 > "213 17[CR][LF]" 09:40:39.551027 < "RETR verifiedserver" 09:40:39.552229 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.554597 =====> Closing passive DATA connection... 09:40:39.554913 Server disconnects passive DATA connection 09:40:39.556376 Fancy that; client wants to DISC, too 09:40:39.557460 Server disconnected passive DATA connection 09:40:39.558061 DATA sockfilt for passive data channel quits (pid 86193) 09:40:39.562159 DATA sockfilt for passive data channel quit (pid 86193) 09:40:39.562427 =====> Closed passive DATA connection 09:40:39.563817 > "226 File transfer complete[CR][LF]" 09:40:39.596495 < "QUIT" 09:40:39.597292 > "221 bye bye baby[CR][LF]" 09:40:39.598922 MAIN sockfilt said DISC 09:40:39.599285 ====> Client disconnected 09:40:39.599889 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.746651 ====> Client connect 09:40:39.748540 Received DATA (on stdin) 09:40:39.748695 > 160 bytes data, server => client 09:40:39.749080 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.749232 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.749314 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.750098 < 16 bytes data, client => server 09:40:39.750233 'USER anonymous\r\n' 09:40:39.751951 Received DATA (on stdin) 09:40:39.752088 > 33 bytes data, server => client 09:40:39.752265 '331 We are happy you popped in!\r\n' 09:40:39.753706 < 22 bytes data, client => server 09:40:39.753858 'PASS ftp@example.com\r\n' 09:40:39.754762 Received DATA (on stdin) 09:40:39.754901 > 30 bytes data, server => client 09:40:39.755408 '230 Welcome you silly person\r\n' 09:40:39.756072 < 5 bytes data, client => server 09:40:39.756216 'PWD\r\n' 09:40:39.757335 Received DATA (on stdin) 09:40:39.757572 > 30 bytes data, server => client 09:40:39.758110 '257 "/" is current directory\r\n' 09:40:39.758787 < 6 bytes data, client => server 09:40:39.758921 'EPSV\r\n' 09:40:39.792560 Received DATA (on stdin) 09:40:39.792756 > 38 bytes data, server => client 09:40:39.792863 '229 Entering Passive Mode (|||41397|)\n' 09:40:39.795643 < 8 bytes data, client => server 09:40:39.795821 'TYPE I\r\n' 09:40:39.798925 Received DATA (on stdin) 09:40:39.799126 > 33 bytes data, server => client 09:40:39.799213 '200 I modify TYPE as you wanted\r\n' 09:40:39.801496 < 21 bytes data, client => server 09:40:39.801636 'SIZE verifiedserver\r\n' 09:40:39.801733 Received DATA (on stdin) 09:40:39.801817 > 8 bytes data, server => client 09:40:39.801896 '213 17\r\n' 09:40:39.803896 < 21 bytes data, client => server 09:40:39.804043 'RETR verifiedserver\r\n' 09:40:39.806806 Received DATA (on stdin) 09:40:39.806951 > 29 bytes data, server => client 09:40:39.807035 '150 Binary junk (17 bytes).\r\n' 09:40:39.816841 Received DATA (on stdin) 09:40:39.816985 > 28 bytes data, server => client 09:40:39.817163 '226 File transfer complete\r\n' 09:40:39.849267 < 6 bytes data, client => server 09:40:39.849418 'QUIT\r\n' 09:40:39.850607 Received DATA (on stdin) 09:40:39.850797 > 18 bytes data, server => client 09:40:39.851295 '221 bye bye baby\r\n' 09:40:39.851879 ====> Client disconnect 09:40:39.856594 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.782745 Running IPv4 version 09:40:39.783345 Listening on port 41397 09:40:39.783902 Wrote pid 86193 to log/21/server/ftp_sockdata.pid 09:40:39.784094 Received PING (on stdin) 09:40:39.786872 Received PORT (on stdin) 09:40:39.794253 ====> Client connect 09:40:39.808016 Received DATA (on stdin) 09:40:39.808205 > 17 bytes data, server => client 09:40:39.808311 'WE ROOLZ: 78763\r\n' 09:40:39.809344 ====> Client disconnect 09:40:39.809914 Received DISC (on stdin) 09:40:39.810140 Crikey! Client also wants to disconnect 09:40:39.812503 Received ACKD (on stdin) 09:40:39.813175 Received QUIT (on stdin) 09:40:39.813306 quits 09:40:39.813995 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 please provide account name REPLY ACCT 230 thank you Testnum 228 === End of file server.cmd === Start of file valgrind228 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind228 test 0222...[HTTP GET deflate compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind222 ../src/curl -q --output log/49/curl222.out --include --trace-ascii log/49/trace222 --trace-config all --trace-time http://127.0.0.1:42667/222 --compressed > log/49/stdout222 2> log/49/stderr222 222: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 222 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind222 ../src/curl -q --output log/49/curl222.out --include --trace-ascii log/49/trace222 --trace-config all --trace-time http://127.0.0.1:42667/222 --compressed > log/49/stdout222 2> log/49/stderr222 === End of file commands.log === Start of file http_server.log 09:40:39.607597 ====> Client connect 09:40:39.607908 accept_connection 3 returned 4 09:40:39.608076 accept_connection 3 returned 0 09:40:39.608814 Read 93 bytes 09:40:39.608960 Process 93 bytes request 09:40:39.609040 Got request: GET /verifiedserver HTTP/1.1 09:40:39.609115 Are-we-friendly question received 09:40:39.609359 Wrote request (93 bytes) input to log/49/server.input 09:40:39.609636 Identifying ourselves as friends 09:40:39.610214 Response sent (56 bytes) and written to log/49/server.response 09:40:39.610321 special request received, no persistency 09:40:39.610384 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 222 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind222 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst proCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind237 ../src/curl -q --output log/14/curl237.out --include --trace-ascii log/14/trace237 --trace-config all --trace-time ftp://127.0.0.1:36271/237 --disable-epsv > log/14/stdout237 2> log/14/stderr237 cessing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind222 test 0237...[FTP getting bad host in 227-response to PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind237 ../src/curl -q --output log/14/curl237.out --include --trace-ascii log/14/trace237 --trace-config all --trace-time ftp://127.0.0.1:36271/237 --disable-epsv > log/14/stdout237 2> log/14/stderr237 237: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 237 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind237 ../src/curl -q --output log/14/curl237.out --include --trace-ascii log/14/trace237 --trace-config all --trace-time ftp://127.0.0.1:36271/237 --disable-epsv > log/14/stdout237 2> log/14/stderr237 === End of file commands.log === Start of file ftp_server.log 09:40:39.611607 ====> Client connect 09:40:39.617883 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.619515 < "USER anonymous" 09:40:39.621455 > "331 We are happy you popped in![CR][LF]" 09:40:39.622183 < "PASS ftp@example.com" 09:40:39.622503 > "230 Welcome you silly person[CR][LF]" 09:40:39.624503 < "PWD" 09:40:39.625251 > "257 "/" is current directory[CR][LF]" 09:40:39.629169 < "EPSV" 09:40:39.629426 ====> Passive DATA channel requested by client 09:40:39.629618 DATA sockfilt for passive data channel starting... 09:40:39.644876 DATA sockfilt for passive data channel started (pid 86343) 09:40:39.646236 DATA sockfilt for passive data channel listens on port 46287 09:40:39.646729 > "229 Entering Passive Mode (|||46287|)[LF]" 09:40:39.647034 Client has been notified that DATA conn will be accepted on port 46287 09:40:39.648610 Client connects to port 46287 09:40:39.648997 ====> Client established passive DATA connection on port 46287 09:40:39.649706 < "TYPE I" 09:40:39.650167 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.652160 < "SIZE verifiedserver" 09:40:39.653448 > "213 17[CR][LF]" 09:40:39.654231 < "RETR verifiedserver" 09:40:39.654616 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.655426 =====> Closing passive DATA connection... 09:40:39.655636 Server disconnects passive DATA connection 09:40:39.658187 Server disconnected passive DATA connection 09:40:39.658455 DATA sockfilt for passive data channel quits (pid 86343) 09:40:39.660503 DATA sockfilt for passive data channel quit (pid 86343) 09:40:39.660729 =====> Closed passive DATA connection 09:40:39.661421 > "226 File transfer complete[CR][LF]" 09:40:39.701408 < "QUIT" 09:40:39.702055 > "221 bye bye baby[CR][LF]" 09:40:39.703203 MAIN sockfilt said DISC 09:40:39.703531 ====> Client disconnected 09:40:39.704056 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.864832 ====> Client connect 09:40:39.868566 Received DATA (on stdin) 09:40:39.868734 > 160 bytes data, server => client 09:40:39.868823 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.868899 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.868972 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.872039 < 16 bytes data, client => server 09:40:39.872201 'USER anonymous\r\n' 09:40:39.873702 Received DATA (on stdin) 09:40:39.873889 > 33 bytes data, server => client 09:40:39.874132 '331 We are happy you popped in!\r\n' 09:40:39.874830 < 22 bytes data, client => server 09:40:39.874966 'PASS ftp@example.com\r\n' 09:40:39.876580 Received DATA (on stdin) 09:40:39.876717 > 30 bytes data, server => client 09:40:39.876795 '230 Welcome you silly person\r\n' 09:40:39.877398 < 5 bytes data, client => server 09:40:39.877602 'PWD\r\n' 09:40:39.878625 Received DATA (on stdin) 09:40:39.878762 > 30 bytes data, server => client 09:40:39.879215 '257 "/" is current directory\r\n' 09:40:39.881998 < 6 bytes data, client => server 09:40:39.882155 'EPSV\r\n' 09:40:39.900405 Received DATA (on stdin) 09:40:39.900687 > 38 bytes data, server => client 09:40:39.900774 '229 Entering Passive Mode (|||46287|)\n' 09:40:39.902346 < 8 bytes data, client => server 09:40:39.902555 'TYPE I\r\n' 09:40:39.904147 Received DATA (on stdin) 09:40:39.904282 > 33 bytes data, server => client 09:40:39.904360 '200 I modify TYPE as you wanted\r\n' 09:40:39.905077 < 21 bytes data, client => server 09:40:39.905216 'SIZE verifiedserver\r\n' 09:40:39.906248 Received DATA (on stdin) 09:40:39.906384 > 8 bytes data, server => client 09:40:39.906606 '213 17\r\n' 09:40:39.907320 < 21 bytes data, client => server 09:40:39.907537 'RETR verifiedserver\r\n' 09:40:39.909551 Received DATA (on stdin) 09:40:39.909711 > 29 bytes data, server => client 09:40:39.909810 '150 Binary junk (17 bytes).\r\n' 09:40:39.914777 Received DATA (on stdin) 09:40:39.914905 > 28 bytes data, server => client 09:40:39.915402 '226 File transfer complete\r\n' 09:40:39.952250 < 6 bytes data, client => server 09:40:39.952400 'QUIT\r\n' 09:40:39.955582 Received DATA (on stdin) 09:40:39.955757 > 18 bytes data, server => client 09:40:39.955851 '221 bye bye baby\r\n' 09:40:39.956613 ====> Client disconnect 09:40:39.957237 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.897188 Running IPv4 version 09:40:39.897752 Listening on port 46287 09:40:39.898058 Wrote pid 86343 to log/14/server/ftp_sockdata.pid 09:40:39.898202 Received PING (on stdin) 09:40:39.899053 Received PORT (on stdin) 09:40:39.901987 ====> Client connect 09:40:39.908760 Received DATA (on stdin) 09:40:39.908942 > 17 bytes data, server => client 09:40:39.909094 'WE ROOLZ: 79507\r\n' 09:40:39.911187 Received DISC (on stdin) 09:40:39.911374 ====> Client forcibly disconnected 09:40:39.912518 Received QUIT (on stdin) 09:40:39.912698 quits 09:40:39.913120 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASV 227 Entering Passiv Mode (1216,256,2,127,127,127) Testnum 237 === End of file server.cmd === Start of file valgrind237 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind223 ../src/curl -q --output log/47/curl223.out --include --trace-ascii log/47/trace223 --trace-config all --trace-time http://127.0.0.1:41103/223 --compressed > log/47/stdout223 2> log/47/stderr223 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind229 ../src/curl -q --output log/56/curl229.out --include --trace-ascii log/56/trace229 --trace-config all --trace-time ftp://127.0.0.1:36539/229 --ftp-account "one count" > log/56/stdout229 2> log/56/stderr229 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind234 ../src/curl -q --output log/12/curl234.out --include --trace-ascii log/12/trace234 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/234 -x 127.0.0.1:45579 --user iam:myself --proxy-user testing:this --location-trusted > log/12/stdout234 2> log/12/stderr234 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind233 ../src/curl -q --output log/32/curl233.out --include --trace-ascii log/32/trace233 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/233 -x 127.0.0.1:45607 --user iam:myself --proxy-user testing:this --location > log/32/stdout233 2> log/32/stderr233 valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind237 test 0223...[HTTP GET deflate compressed content with broken deflate header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind223 ../src/curl -q --output log/47/curl223.out --include --trace-ascii log/47/trace223 --trace-config all --trace-time http://127.0.0.1:41103/223 --compressed > log/47/stdout223 2> log/47/stderr223 223: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 223 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind223 ../src/curl -q --output log/47/curl223.out --include --trace-ascii log/47/trace223 --trace-config all --trace-time http://127.0.0.1:41103/223 --compressed > log/47/stdout223 2> log/47/stderr223 === End of file commands.log === Start of file http_server.log 09:40:39.709893 ====> Client connect 09:40:39.710276 accept_connection 3 returned 4 09:40:39.710690 accept_connection 3 returned 0 09:40:39.710890 Read 93 bytes 09:40:39.710988 Process 93 bytes request 09:40:39.711086 Got request: GET /verifiedserver HTTP/1.1 09:40:39.711171 Are-we-friendly question received 09:40:39.711410 Wrote request (93 bytes) input to log/47/server.input 09:40:39.711720 Identifying ourselves as friends 09:40:39.712548 Response sent (56 bytes) and written to log/47/server.response 09:40:39.712680 special request received, no persistency 09:40:39.712758 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 223 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind223 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind223 test 0234...[HTTP, proxy, site+proxy auth and Location: to new host location-trusted] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind234 ../src/curl -q --output log/12/curl234.out --include --trace-ascii log/12/trace234 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/234 -x 127.0.0.1:45579 --user iam:myself --proxy-user testing:this --location-trusted > log/12/stdout234 2> log/12/stderr234 234: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 234 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind234 ../src/curl -q --output log/12/curl234.out --include --trace-ascii log/12/trace234 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/234 -x 127.0.0.1:45579 --user iam:myself --proxy-user testing:this --location-trusted > log/12/stdout234 2> log/12/stderr234 === End of file commands.log === Start of file http_server.log 09:40:39.845022 ====> Client connect 09:40:39.845312 accept_connection 3 returned 4 09:40:39.845834 accept_connection 3 returned 0 09:40:39.845992 Read 93 bytes 09:40:39.846070 Process 93 bytes request 09:40:39.846161 Got request: GET /verifiedserver HTTP/1.1 09:40:39.846241 Are-we-friendly question received 09:40:39.846555 Wrote request (93 bytes) input to log/12/server.input 09:40:39.846750 Identifying ourselves as friends 09:40:39.848376 Response sent (56 bytes) and written to log/12/server.response 09:40:39.848571 special request received, no persistency 09:40:39.848646 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 234 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind234 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The packagCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind227 ../src/curl -q --output log/22/curl227.out --include --trace-ascii log/22/trace227 --trace-config all --trace-time ftp://127.0.0.1:41867/227 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/22/stdout227 2> log/22/stderr227 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind235 ../src/curl -q --output log/61/curl235.out --include --trace-ascii log/61/trace235 --trace-config all --trace-time ftp://127.0.0.1:46133/235 -T log/61/upload235 -C - > log/61/stdout235 2> log/61/stderr235 e you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind234 test 0233...[HTTP, proxy, site+proxy auth and Location: to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind233 ../src/curl -q --output log/32/curl233.out --include --trace-ascii log/32/trace233 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/233 -x 127.0.0.1:45607 --user iam:myself --proxy-user testing:this --location > log/32/stdout233 2> log/32/stderr233 233: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 233 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind233 ../src/curl -q --output log/32/curl233.out --include --trace-ascii log/32/trace233 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/233 -x 127.0.0.1:45607 --user iam:myself --proxy-user testing:this --location > log/32/stdout233 2> log/32/stderr233 === End of file commands.log === Start of file http_server.log 09:40:39.744358 ====> Client connect 09:40:39.744799 accept_connection 3 returned 4 09:40:39.744961 accept_connection 3 returned 0 09:40:39.745086 Read 93 bytes 09:40:39.745175 Process 93 bytes request 09:40:39.745253 Got request: GET /verifiedserver HTTP/1.1 09:40:39.745327 Are-we-friendly question received 09:40:39.745613 Wrote request (93 bytes) input to log/32/server.input 09:40:39.745790 Identifying ourselves as friends 09:40:39.749917 Response sent (56 bytes) and written to log/32/server.response 09:40:39.750030 special request received, no persistency 09:40:39.750094 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 233 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind233 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind233 test 0229...[FTP RETR with bad ACCT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind229 ../src/curl -q --output log/56/curl229.out --include --trace-ascii log/56/trace229 --trace-config all --trace-time ftp://127.0.0.1:36539/229 --ftp-account "one count" > log/56/stdout229 2> log/56/stderr229 229: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 229 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind229 ../src/curl -q --output log/56/curl229.out --include --trace-ascii log/56/trace229 --trace-config all --trace-time ftp://127.0.0.1:36539/229 --ftp-account "one count" > log/56/stdout229 2> log/56/stderr229 === End of file commands.log === Start of file ftp_server.log 09:40:39.519075 ====> Client connect 09:40:39.520443 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.525414 < "USER anonymous" 09:40:39.525913 > "331 We are happy you popped in![CR][LF]" 09:40:39.530548 < "PASS ftp@example.com" 09:40:39.532363 > "230 Welcome you silly person[CR][LF]" 09:40:39.536169 < "PWD" 09:40:39.536592 > "257 "/" is current directory[CR][LF]" 09:40:39.538605 < "EPSV" 09:40:39.538997 ====> Passive DATA channel requested by client 09:40:39.539224 DATA sockfilt for passive data channel starting... 09:40:39.573952 DATA sockfilt for passive data channel started (pid 86240) 09:40:39.579647 DATA sockfilt for passive data channel listens on port 38859 09:40:39.580316 > "229 Entering Passive Mode (|||38859|)[LF]" 09:40:39.580559 Client has been notified that DATA conn will be accepted on port 38859 09:40:39.583728 Client connects to port 38859 09:40:39.584100 ====> Client established passive DATA connection on port 38859 09:40:39.585364 < "TYPE I" 09:40:39.585914 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.591958 < "SIZE verifiedserver" 09:40:39.593897 > "213 17[CR][LF]" 09:40:39.594859 < "RETR verifiedserver" 09:40:39.595355 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.600283 =====> Closing passive DATA connection... 09:40:39.600493 Server disconnects passive DATA connection 09:40:39.601408 Server disconnected passive DATA connection 09:40:39.601722 DATA sockfilt for passive data channel quits (pid 86240) 09:40:39.607042 DATA sockfilt for passive data channel quit (pid 86240) 09:40:39.607276 =====> Closed passive DATA connection 09:40:39.611925 > "226 File transfer complete[CR][LF]" 09:40:39.643411 < "QUIT" 09:40:39.643860 > "221 bye bye baby[CR][LF]" 09:40:39.645365 MAIN sockfilt said DISC 09:40:39.645631 ====> Client disconnected 09:40:39.646208 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.772122 ====> Client connect 09:40:39.775571 Received DATA (on stdin) 09:40:39.775818 > 160 bytes data, server => client 09:40:39.775957 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.776055 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.776142 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.777952 < 16 bytes data, client => server 09:40:39.778106 'USER anonymous\r\n' 09:40:39.782553 RecCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind230 ../src/curl -q --output log/35/curl230.out --include --trace-ascii log/35/trace230 --trace-config all --trace-time http://127.0.0.1:43179/230 --compressed > log/35/stdout230 2> log/35/stderr230 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind238 ../src/curl -q --output log/8/curl238.out --include --trace-ascii log/8/trace238 --trace-config all --trace-time ftp://127.0.0.1:32769/238 > log/8/stdout238 2> log/8/stderr238 eived DATA (on stdin) 09:40:39.782711 > 33 bytes data, server => client 09:40:39.782810 '331 We are happy you popped in!\r\n' 09:40:39.783533 < 22 bytes data, client => server 09:40:39.783665 'PASS ftp@example.com\r\n' 09:40:39.784646 Received DATA (on stdin) 09:40:39.784773 > 30 bytes data, server => client 09:40:39.784973 '230 Welcome you silly person\r\n' 09:40:39.785731 < 5 bytes data, client => server 09:40:39.785869 'PWD\r\n' 09:40:39.790660 Received DATA (on stdin) 09:40:39.790795 > 30 bytes data, server => client 09:40:39.790887 '257 "/" is current directory\r\n' 09:40:39.793529 < 6 bytes data, client => server 09:40:39.793691 'EPSV\r\n' 09:40:39.834938 Received DATA (on stdin) 09:40:39.835178 > 38 bytes data, server => client 09:40:39.835268 '229 Entering Passive Mode (|||38859|)\n' 09:40:39.837071 < 8 bytes data, client => server 09:40:39.837215 'TYPE I\r\n' 09:40:39.843661 Received DATA (on stdin) 09:40:39.843820 > 33 bytes data, server => client 09:40:39.843914 '200 I modify TYPE as you wanted\r\n' 09:40:39.844711 < 21 bytes data, client => server 09:40:39.844848 'SIZE verifiedserver\r\n' 09:40:39.846052 Received DATA (on stdin) 09:40:39.846167 > 8 bytes data, server => client 09:40:39.846327 '213 17\r\n' 09:40:39.847073 < 21 bytes data, client => server 09:40:39.847247 'RETR verifiedserver\r\n' 09:40:39.852575 Received DATA (on stdin) 09:40:39.852771 > 29 bytes data, server => client 09:40:39.852897 '150 Binary junk (17 bytes).\r\n' 09:40:39.861336 Received DATA (on stdin) 09:40:39.861597 > 28 bytes data, server => client 09:40:39.861867 '226 File transfer complete\r\n' 09:40:39.896164 < 6 bytes data, client => server 09:40:39.896522 'QUIT\r\n' 09:40:39.897936 Received DATA (on stdin) 09:40:39.898100 > 18 bytes data, server => client 09:40:39.898184 '221 bye bye baby\r\n' 09:40:39.898766 ====> Client disconnect 09:40:39.900207 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.820982 Running IPv4 version 09:40:39.826420 Listening on port 38859 09:40:39.827031 Wrote pid 86240 to log/56/server/ftp_sockdata.pid 09:40:39.827219 Received PING (on stdin) 09:40:39.829598 Received PORT (on stdin) 09:40:39.836575 ====> Client connect 09:40:39.853767 Received DATA (on stdin) 09:40:39.853908 > 17 bytes data, server => client 09:40:39.853994 'WE ROOLZ: 77376\r\n' 09:40:39.854775 Received DISC (on stdin) 09:40:39.854914 ====> Client forcibly disconnected 09:40:39.855925 Received QUIT (on stdin) 09:40:39.856115 quits 09:40:39.856598 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 please provide account name REPLY ACCT 532 bluah Testnum 229 === End of file server.cmd === Start of file valgrind229 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind229 test 0227...[FTP with quote ops] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind227 ../src/curl -q --output log/22/curl227.out --include --trace-ascii log/22/trace227 --trace-config all --trace-time ftp://127.0.0.1:41867/227 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/22/stdout227 2> log/22/stderr227 227: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 227 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind227 ../src/curl -q --output log/22/curl227.out --include --trace-ascii log/22/trace227 --trace-config all --trace-time ftp://127.0.0.1:41867/227 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/22/stdout227 2> log/22/stderr227 === End of file commands.log === Start of file ftp_server.log 09:40:39.563476 ====> Client connect 09:40:39.564617 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.567255 < "USER anonymous" 09:40:39.567625 > "331 We are happy you popped in![CR][LF]" 09:40:39.569592 < "PASS ftp@example.com" 09:40:39.570632 > "230 Welcome you silly person[CR][LF]" 09:40:39.572222 < "PWD" 09:40:39.573625 > "257 "/" is current directory[CR][LF]" 09:40:39.575364 < "EPSV" 09:40:39.575576 ====> Passive DATA channel requested by client 09:40:39.575703 DATA sockfilt for passive data channel starting... 09:40:39.596950 DATA sockfilt for passive data channel started (pid 86273) 09:40:39.601136 DATA sockfilt for passive data channel listens on port 42811 09:40:39.601573 > "229 Entering Passive Mode (|||42811|)[LF]" 09:40:39.601916 Client has been notified that DATA conn will be accepted on port 42811 09:40:39.603804 Client connects to port 42811 09:40:39.604117 ====> Client established passive DATA connection on port 42811 09:40:39.609162 < "TYPE I" 09:40:39.611248 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.612039 < "SIZE verifiedserver" 09:40:39.612467 > "213 17[CR][LF]" 09:40:39.616390 < "RETR verifiedserver" 09:40:39.618950 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.619733 =====> Closing passive DATA connection... 09:40:39.620184 Server disconnects passive DATA connection 09:40:39.625872 Server disconnected passive DATA connection 09:40:39.626125 DATA sockfilt for passive data channel quits (pid 86273) 09:40:39.627884 DATA sockfilt for passive data channel quit (pid 86273) 09:40:39.628121 =====> Closed passive DATA connection 09:40:39.628402 > "226 File transfer complete[CR][LF]" 09:40:39.668844 < "QUIT" 09:40:39.673142 > "221 bye bye baby[CR][LF]" 09:40:39.673450 MAIN sockfilt said DISC 09:40:39.674265 ====> Client disconnected 09:40:39.674821 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.816698 ====> Client connect 09:40:39.818813 Received DATA (on stdin) 09:40:39.818940 > 160 bytes data, server => client 09:40:39.819018 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.819093 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.819167 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.819907 < 16 bytes data, client => server 09:40:39.820037 'USER anonymous\r\n' 09:40:39.821673 Received DATA (on stdin) 09:40:39.821825 > 33 bytes data, server => client 09:40:39.821917 '331 We are happy you popped in!\r\n' 09:40:39.822495 < 22 bytes data, client => server 09:40:39.822635 'PASS ftp@example.com\r\n' 09:40:39.823CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind247 ../src/curl -q --output log/10/curl247.out --include --trace-ascii log/10/trace247 --trace-config all --trace-time ftp://127.0.0.1:32859/247 -T log/10/test247.txt -z "apr 1 2005 08:00:00" > log/10/stdout247 2> log/10/stderr247 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind246 ../src/curl -q --output log/43/curl246.out --include --trace-ascii log/43/trace246 --trace-config all --trace-time http://127.0.0.1:41267/246 -u auser:apasswd --digest -d "junkelijunk" > log/43/stdout246 2> log/43/stderr246 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind245 ../src/curl -q --output log/39/curl245.out --include --trace-ascii log/39/trace245 --trace-config all --trace-time http://127.0.0.1:42899/245 -u auser:apasswd --digest -d "junkelijunk" > log/39/stdout245 2> log/39/stderr245 686 Received DATA (on stdin) 09:40:39.823818 > 30 bytes data, server => client 09:40:39.823975 '230 Welcome you silly person\r\n' 09:40:39.825216 < 5 bytes data, client => server 09:40:39.825372 'PWD\r\n' 09:40:39.826293 Received DATA (on stdin) 09:40:39.826712 > 30 bytes data, server => client 09:40:39.826941 '257 "/" is current directory\r\n' 09:40:39.828516 < 6 bytes data, client => server 09:40:39.828660 'EPSV\r\n' 09:40:39.855958 Received DATA (on stdin) 09:40:39.856126 > 38 bytes data, server => client 09:40:39.856218 '229 Entering Passive Mode (|||42811|)\n' 09:40:39.861951 < 8 bytes data, client => server 09:40:39.862098 'TYPE I\r\n' 09:40:39.863230 Received DATA (on stdin) 09:40:39.863368 > 33 bytes data, server => client 09:40:39.863631 '200 I modify TYPE as you wanted\r\n' 09:40:39.864602 < 21 bytes data, client => server 09:40:39.864740 'SIZE verifiedserver\r\n' 09:40:39.868546 Received DATA (on stdin) 09:40:39.868692 > 8 bytes data, server => client 09:40:39.868763 '213 17\r\n' 09:40:39.869339 < 21 bytes data, client => server 09:40:39.869538 'RETR verifiedserver\r\n' 09:40:39.870598 Received DATA (on stdin) 09:40:39.870801 > 29 bytes data, server => client 09:40:39.874153 '150 Binary junk (17 bytes).\r\n' 09:40:39.882381 Received DATA (on stdin) 09:40:39.882584 > 28 bytes data, server => client 09:40:39.882674 '226 File transfer complete\r\n' 09:40:39.921613 < 6 bytes data, client => server 09:40:39.921762 'QUIT\r\n' 09:40:39.922939 Received DATA (on stdin) 09:40:39.923085 > 18 bytes data, server => client 09:40:39.923273 '221 bye bye baby\r\n' 09:40:39.926559 ====> Client disconnect 09:40:39.927424 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.848923 Running IPv4 version 09:40:39.849402 Listening on port 42811 09:40:39.849937 Wrote pid 86273 to log/22/server/ftp_sockdata.pid 09:40:39.850153 Received PING (on stdin) 09:40:39.851158 Received PORT (on stdin) 09:40:39.857181 ====> Client connect 09:40:39.874846 Received DATA (on stdin) 09:40:39.875015 > 17 bytes data, server => client 09:40:39.875110 'WE ROOLZ: 77494\r\n' 09:40:39.876047 Received DISC (on stdin) 09:40:39.876207 ====> Client forcibly disconnected 09:40:39.880101 Received QUIT (on stdin) 09:40:39.880236 quits 09:40:39.880697 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY FAIL 500 this might not be a failure Testnum 227 === End of file server.cmd === Start of file valgrind227 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind227 test 0230...[HTTP GET multiply compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind230 ../src/curl -q --output log/35/curl230.out --include --trace-ascii log/35/trace230 --trace-config all --trace-time http://127.0.0.1:43179/230 --compressed > log/35/stdout230 2> log/35/stderr230 230: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 230 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind230 ../src/curl -q --output log/35/curl230.out --include --trace-ascii log/35/trace230 --trace-config all --trace-time http://127.0.0.1:43179/230 --compressed > log/35/stdout230 2> log/35/stderr230 === End of file commands.log === Start of file http_server.log 09:40:39.764901 ====> Client connect 09:40:39.765281 accept_connection 3 returned 4 09:40:39.765589 accept_connection 3 returned 0 09:40:39.765767 Read 93 bytes 09:40:39.765876 Process 93 bytes request 09:40:39.765984 Got request: GET /verifiedserver HTTP/1.1 09:40:39.766095 Are-we-friendly question received 09:40:39.766334 Wrote request (93 bytes) input to log/35/server.input 09:40:39.766721 Identifying ourselves as friends 09:40:39.777591 Response sent (56 bytes) and written to log/35/server.response 09:40:39.777736 special request received, no persistency 09:40:39.777827 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 230 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind230 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind230 test 0235...[FTP resumed upload but no file present remotely] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind235 ../src/curl -q --output log/61/curl235.out --include --trace-ascii loCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind232 ../src/curl -q --output log/45/curl232.out --include --trace-ascii log/45/trace232 --trace-config all --trace-time http://127.0.0.1:34239/232 --compressed > log/45/stdout232 2> log/45/stderr232 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind236 ../src/curl -q --output log/59/curl236.out --include --trace-ascii log/59/trace236 --trace-config all --trace-time ftp://127.0.0.1:43961/236 -T log/59/file236.txt -C - > log/59/stdout236 2> log/59/stderr236 g/61/trace235 --trace-config all --trace-time ftp://127.0.0.1:46133/235 -T log/61/upload235 -C - > log/61/stdout235 2> log/61/stderr235 235: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 235 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind235 ../src/curl -q --output log/61/curl235.out --include --trace-ascii log/61/trace235 --trace-config all --trace-time ftp://127.0.0.1:46133/235 -T log/61/upload235 -C - > log/61/stdout235 2> log/61/stderr235 === End of file commands.log === Start of file ftp_server.log 09:40:39.638429 ====> Client connect 09:40:39.639991 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.647405 < "USER anonymous" 09:40:39.650916 > "331 We are happy you popped in![CR][LF]" 09:40:39.653002 < "PASS ftp@example.com" 09:40:39.653408 > "230 Welcome you silly person[CR][LF]" 09:40:39.656237 < "PWD" 09:40:39.656671 > "257 "/" is current directory[CR][LF]" 09:40:39.662262 < "EPSV" 09:40:39.662527 ====> Passive DATA channel requested by client 09:40:39.662701 DATA sockfilt for passive data channel starting... 09:40:39.675279 DATA sockfilt for passive data channel started (pid 86373) 09:40:39.676243 DATA sockfilt for passive data channel listens on port 36259 09:40:39.676722 > "229 Entering Passive Mode (|||36259|)[LF]" 09:40:39.677029 Client has been notified that DATA conn will be accepted on port 36259 09:40:39.678298 Client connects to port 36259 09:40:39.678599 ====> Client established passive DATA connection on port 36259 09:40:39.679581 < "TYPE I" 09:40:39.680201 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.683515 < "SIZE verifiedserver" 09:40:39.684979 > "213 17[CR][LF]" 09:40:39.686344 < "RETR verifiedserver" 09:40:39.686997 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.689441 =====> Closing passive DATA connection... 09:40:39.689703 Server disconnects passive DATA connection 09:40:39.691207 Server disconnected passive DATA connection 09:40:39.691447 DATA sockfilt for passive data channel quits (pid 86373) 09:40:39.693264 DATA sockfilt for passive data channel quit (pid 86373) 09:40:39.693558 =====> Closed passive DATA connection 09:40:39.693968 > "226 File transfer complete[CR][LF]" 09:40:39.732876 < "QUIT" 09:40:39.734946 > "221 bye bye baby[CR][LF]" 09:40:39.743416 MAIN sockfilt said DISC 09:40:39.744346 ====> Client disconnected 09:40:39.744964 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:38.891612 ====> Client connect 09:40:38.895548 Received DATA (on stdin) 09:40:38.895716 > 160 bytes data, server => client 09:40:38.895833 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:38.895949 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:38.896070 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:38.898918 < 16 bytes data, client => server 09:40:38.899055 'USER anonymous\r\n' 09:40:38.904970 Received DATA (on stdin) 09:40:38.905106 > 33 bytes data, server => client 09:40:38.905204 '331 We are happy you popped in!\r\n' 09:40:38.905896 < 22 bytes data, client => server 09:40:38.906018 'PASS ftp@example.com\r\n' 09:40:38.907418 Received DATA (on stdin) 09:40:38.907718 > 30 bytes data, server => client 09:40:38.908173 '230 Welcome you silly person\r\n' 09:40:38.909124 < 5 bytes data, client => server 09:40:38.909265 'PWD\r\n' 09:40:38.911643 Received DATA (on stdin) 09:40:38.911795 > 30 bytes data, server => client 09:40:38.911885 '257 "/" is current directory\r\n' 09:40:38.912580 < 6 bytes data, client => server 09:40:38.912717 'EPSV\r\n' 09:40:38.930388 Received DATA (on stdin) 09:40:38.930620 > 38 bytes data, server => client 09:40:38.930728 '229 Entering Passive Mode (|||36259|)\n' 09:40:38.932704 < 8 bytes data, client => server 09:40:38.932870 'TYPE I\r\n' 09:40:38.933886 Received DATA (on stdin) 09:40:38.934085 > 33 bytes data, server => client 09:40:38.934201 '200 I modify TYPE as you wanted\r\n' 09:40:38.936698 < 21 bytes data, client => server 09:40:38.936864 'SIZE verifiedserver\r\n' 09:40:38.937684 Received DATA (on stdin) 09:40:38.937847 > 8 bytes data, server => client 09:40:38.938060 '213 17\r\n' 09:40:38.938890 < 21 bytes data, client => server 09:40:38.939059 'RETR verifiedserver\r\n' 09:40:38.941259 Received DATA (on stdin) 09:40:38.941428 > 29 bytes data, server => client 09:40:38.941627 '150 Binary junk (17 bytes).\r\n' 09:40:38.948115 Received DATA (on stdin) 09:40:38.948289 > 28 bytes data, server => client 09:40:38.948384 '226 File transfer complete\r\n' 09:40:38.985613 < 6 bytes data, client => server 09:40:38.985773 'QUIT\r\n' 09:40:38.986938 Received DATA (on stdin) 09:40:38.987074 > 18 bytes data, server => client 09:40:38.992549 '221 bye bye baby\r\n' 09:40:38.995551 ====> Client disconnect 09:40:38.997547 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.927386 Running IPv4 version 09:40:39.928000 Listening on port 36259 09:40:39.928405 Wrote pid 86373 to log/61/server/ftp_sockdata.pid 09:40:39.928693 Received PING (on stdin) 09:40:39.929378 Received PORT (on stdin) 09:40:39.931718 ====> Client connect 09:40:39.942185 Received DATA (on stdin) 09:40:39.942384 > 17 bytes data, server => client 09:40:39.943737 'WE ROOLZ: 79508\r\n' 09:40:39.944136 Received DISC (on stdin) 09:40:39.944281 ====> Client forcibly disconnected 09:40:39.945337 Received QUIT (on stdin) 09:40:39.945519 quits 09:40:39.945915 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 500 command not understood Testnum 235 === End of file server.cmd === Start of file upload235 this is the *****crap******** that we're gonna upload worx? === End of file upload235 === Start of file valgrind235 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind235 test 0238...[FTP getting bad port in response to EPSV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind238 ../src/curl -q --output log/8/curl238.out --include --trace-ascii log/8/trace238 --trace-config all --trace-time ftp://127.0.0.1:32769/238 > log/8/stdout238 2> log/8/stderr238 238: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind249 ../src/curl -q --output log/63/curl249.out --include --trace-ascii log/63/trace249 --trace-config all --trace-time http://127.0.0.1:38797/249 -z "dec 12 12:00:00 1999 GMT" > log/63/stdout249 2> log/63/stderr249 Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 238 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind238 ../src/curl -q --output log/8/curl238.out --include --trace-ascii log/8/trace238 --trace-config all --trace-time ftp://127.0.0.1:32769/238 > log/8/stdout238 2> log/8/stderr238 === End of file commands.log === Start of file ftp_server.log 09:40:39.660683 ====> Client connect 09:40:39.664378 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.667605 < "USER anonymous" 09:40:39.668555 > "331 We are happy you popped in![CR][LF]" 09:40:39.670483 < "PASS ftp@example.com" 09:40:39.671695 > "230 Welcome you silly person[CR][LF]" 09:40:39.673418 < "PWD" 09:40:39.674931 > "257 "/" is current directory[CR][LF]" 09:40:39.676153 < "EPSV" 09:40:39.676405 ====> Passive DATA channel requested by client 09:40:39.676563 DATA sockfilt for passive data channel starting... 09:40:39.687500 DATA sockfilt for passive data channel started (pid 86385) 09:40:39.688707 DATA sockfilt for passive data channel listens on port 43875 09:40:39.689333 > "229 Entering Passive Mode (|||43875|)[LF]" 09:40:39.689691 Client has been notified that DATA conn will be accepted on port 43875 09:40:39.691299 Client connects to port 43875 09:40:39.691587 ====> Client established passive DATA connection on port 43875 09:40:39.692320 < "TYPE I" 09:40:39.692680 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.695911 < "SIZE verifiedserver" 09:40:39.696463 > "213 17[CR][LF]" 09:40:39.698646 < "RETR verifiedserver" 09:40:39.699153 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.699913 =====> Closing passive DATA connection... 09:40:39.700146 Server disconnects passive DATA connection 09:40:39.701852 Server disconnected passive DATA connection 09:40:39.702086 DATA sockfilt for passive data channel quits (pid 86385) 09:40:39.704121 DATA sockfilt for passive data channel quit (pid 86385) 09:40:39.704389 =====> Closed passive DATA connection 09:40:39.705377 > "226 File transfer complete[CR][LF]" 09:40:39.744379 < "QUIT" 09:40:39.744836 > "221 bye bye baby[CR][LF]" 09:40:39.749239 MAIN sockfilt said DISC 09:40:39.750203 ====> Client disconnected 09:40:39.750733 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.913846 ====> Client connect 09:40:39.918590 Received DATA (on stdin) 09:40:39.918751 > 160 bytes data, server => client 09:40:39.918847 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.918930 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.919016 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.920237 < 16 bytes data, client => server 09:40:39.920412 'USER anonymous\r\n' 09:40:39.921785 Received DATA (on stdin) 09:40:39.921938 > 33 bytes data, server => client 09:40:39.922531 '331 We are happy you popped in!\r\n' 09:40:39.923355 < 22 bytes data, client => server 09:40:39.923558 'PASS ftp@example.com\r\n' 09:40:39.924560 Received DATA (on stdin) 09:40:39.924742 > 30 bytes data, server => client 09:40:39.924951 '230 Welcome you silly person\r\n' 09:40:39.926555 < 5 bytes data, client => server 09:40:39.926699 'PWD\r\n' 09:40:39.927540 Received DATA (on stdin) 09:40:39.927669 > 30 bytes data, server => client 09:40:39.927869 '257 "/" is current directory\r\n' 09:40:39.929099 < 6 bytes data, client => server 09:40:39.929221 'EPSV\r\n' 09:40:39.943030 Received DATA (on stdin) 09:40:39.943302 > 38 bytes data, server => client 09:40:39.943402 '229 Entering Passive Mode (|||43875|)\n' 09:40:39.945273 < 8 bytes data, client => server 09:40:39.945409 'TYPE I\r\n' 09:40:39.946721 Received DATA (on stdin) 09:40:39.946838 > 33 bytes data, server => client 09:40:39.946912 '200 I modify TYPE as you wanted\r\n' 09:40:39.948132 < 21 bytes data, client => server 09:40:39.948276 'SIZE verifiedserver\r\n' 09:40:39.950533 Received DATA (on stdin) 09:40:39.950669 > 8 bytes data, server => client 09:40:39.950777 '213 17\r\n' 09:40:39.951545 < 21 bytes data, client => server 09:40:39.951698 'RETR verifiedserver\r\n' 09:40:39.954125 Received DATA (on stdin) 09:40:39.954248 > 29 bytes data, server => client 09:40:39.954369 '150 Binary junk (17 bytes).\r\n' 09:40:39.958413 Received DATA (on stdin) 09:40:39.958640 > 28 bytes data, server => client 09:40:39.958822 '226 File transfer complete\r\n' 09:40:39.997487 < 6 bytes data, client => server 09:40:39.997667 'QUIT\r\n' 09:40:39.998568 Received DATA (on stdin) 09:40:39.998761 > 18 bytes data, server => client 09:40:39.998857 '221 bye bye baby\r\n' 09:40:40.002591 ====> Client disconnect 09:40:40.003238 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.939418 Running IPv4 version 09:40:39.940162 Listening on port 43875 09:40:39.940742 Wrote pid 86385 to log/8/server/ftp_sockdata.pid 09:40:39.940939 Received PING (on stdin) 09:40:39.941699 Received PORT (on stdin) 09:40:39.944649 ====> Client connect 09:40:39.953261 Received DATA (on stdin) 09:40:39.953513 > 17 bytes data, server => client 09:40:39.953645 'WE ROOLZ: 77502\r\n' 09:40:39.954121 Received DISC (on stdin) 09:40:39.954287 ====> Client forcibly disconnected 09:40:39.956052 Received QUIT (on stdin) 09:40:39.956202 quits 09:40:39.956700 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 229 Entering Passiv Mode (|||1000000|) Testnum 238 === End of file server.cmd === Start of file valgrind238 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind238 test 0247...[FTP upload time condition evaluates TRUE => skip upload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind247 ../src/curl -q --output log/10/curl247.out --include --trace-ascii log/10/trace247 --trace-config all --trace-time ftp://127.0.0.1:32859/247 -T log/10/test247.txt -z "apr 1 2005 08:00:00" > log/10/stdout247 2> log/10/stderr247 247: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 247 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind247CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind244 ../src/curl -q --output log/58/curl244.out --include --trace-ascii log/58/trace244 --trace-config all --trace-time --ftp-method nocwd ftp://127.0.0.1:38901/fir%23t/th%69rd/244/ > log/58/stdout244 2> log/58/stderr244 ../src/curl -q --output log/10/curl247.out --include --trace-ascii log/10/trace247 --trace-config all --trace-time ftp://127.0.0.1:32859/247 -T log/10/test247.txt -z "apr 1 2005 08:00:00" > log/10/stdout247 2> log/10/stderr247 === End of file commands.log === Start of file ftp_server.log 09:40:39.824911 ====> Client connect 09:40:39.827460 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.830152 < "USER anonymous" 09:40:39.830570 > "331 We are happy you popped in![CR][LF]" 09:40:39.834216 < "PASS ftp@example.com" 09:40:39.834617 > "230 Welcome you silly person[CR][LF]" 09:40:39.837290 < "PWD" 09:40:39.837726 > "257 "/" is current directory[CR][LF]" 09:40:39.840121 < "EPSV" 09:40:39.840452 ====> Passive DATA channel requested by client 09:40:39.840623 DATA sockfilt for passive data channel starting... 09:40:39.874450 DATA sockfilt for passive data channel started (pid 86651) 09:40:39.875640 DATA sockfilt for passive data channel listens on port 43525 09:40:39.876205 > "229 Entering Passive Mode (|||43525|)[LF]" 09:40:39.876471 Client has been notified that DATA conn will be accepted on port 43525 09:40:39.878049 Client connects to port 43525 09:40:39.878395 ====> Client established passive DATA connection on port 43525 09:40:39.879297 < "TYPE I" 09:40:39.879732 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.884346 < "SIZE verifiedserver" 09:40:39.886971 > "213 17[CR][LF]" 09:40:39.888982 < "RETR verifiedserver" 09:40:39.889411 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.890498 =====> Closing passive DATA connection... 09:40:39.894402 Server disconnects passive DATA connection 09:40:39.895367 Fancy that; client wants to DISC, too 09:40:39.898692 Server disconnected passive DATA connection 09:40:39.899087 DATA sockfilt for passive data channel quits (pid 86651) 09:40:39.906123 DATA sockfilt for passive data channel quit (pid 86651) 09:40:39.906400 =====> Closed passive DATA connection 09:40:39.906807 > "226 File transfer complete[CR][LF]" 09:40:39.940053 < "QUIT" 09:40:39.940902 > "221 bye bye baby[CR][LF]" 09:40:39.949900 MAIN sockfilt said DISC 09:40:39.950257 ====> Client disconnected 09:40:39.950692 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:40.077396 ====> Client connect 09:40:40.081177 Received DATA (on stdin) 09:40:40.081351 > 160 bytes data, server => client 09:40:40.081543 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:40.081690 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:40.081788 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:40.082799 < 16 bytes data, client => server 09:40:40.083013 'USER anonymous\r\n' 09:40:40.084322 Received DATA (on stdin) 09:40:40.084553 > 33 bytes data, server => client 09:40:40.084743 '331 We are happy you popped in!\r\n' 09:40:40.085598 < 22 bytes data, client => server 09:40:40.085737 'PASS ftp@example.com\r\n' 09:40:40.088354 Received DATA (on stdin) 09:40:40.088645 > 30 bytes data, server => client 09:40:40.088750 '230 Welcome you silly person\r\n' 09:40:40.090354 < 5 bytes data, client => server 09:40:40.090580 'PWD\r\n' 09:40:40.091816 Received DATA (on stdin) 09:40:40.091949 > 30 bytes data, server => client 09:40:40.092040 '257 "/" is current directory\r\n' 09:40:40.092972 < 6 bytes data, client => server 09:40:40.093152 'EPSV\r\n' 09:40:40.129936 Received DATA (on stdin) 09:40:40.130128 > 38 bytes data, server => client 09:40:40.130241 '229 Entering Passive Mode (|||43525|)\n' 09:40:40.132120 < 8 bytes data, client => server 09:40:40.132266 'TYPE I\r\n' 09:40:40.136584 Received DATA (on stdin) 09:40:40.136761 > 33 bytes data, server => client 09:40:40.136857 '200 I modify TYPE as you wanted\r\n' 09:40:40.137601 < 21 bytes data, client => server 09:40:40.137762 'SIZE verifiedserver\r\n' 09:40:40.138535 Received DATA (on stdin) 09:40:40.138691 > 8 bytes data, server => client 09:40:40.141049 '213 17\r\n' 09:40:40.141850 < 21 bytes data, client => server 09:40:40.141983 'RETR verifiedserver\r\n' 09:40:40.146670 Received DATA (on stdin) 09:40:40.146854 > 29 bytes data, server => client 09:40:40.146961 '150 Binary junk (17 bytes).\r\n' 09:40:40.160852 Received DATA (on stdin) 09:40:40.160999 > 28 bytes data, server => client 09:40:40.161097 '226 File transfer complete\r\n' 09:40:40.192655 < 6 bytes data, client => server 09:40:40.192848 'QUIT\r\n' 09:40:40.194141 Received DATA (on stdin) 09:40:40.194302 > 18 bytes data, server => client 09:40:40.195258 '221 bye bye baby\r\n' 09:40:40.199627 ====> Client disconnect 09:40:40.204848 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.119291 Running IPv4 version 09:40:39.127033 Listening on port 43525 09:40:39.127545 Wrote pid 86651 to log/10/server/ftp_sockdata.pid 09:40:39.127798 Received PING (on stdin) 09:40:39.128800 Received PORT (on stdin) 09:40:39.131357 ====> Client connect 09:40:39.143853 Received DATA (on stdin) 09:40:39.144029 > 17 bytes data, server => client 09:40:39.144119 'WE ROOLZ: 77425\r\n' 09:40:39.148001 ====> Client disconnect 09:40:39.148623 Received DISC (on stdin) 09:40:39.148945 Crikey! Client also wants to disconnect 09:40:39.152546 Received ACKD (on stdin) 09:40:39.154591 Received QUIT (on stdin) 09:40:39.154786 quits 09:40:39.155247 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 247 === End of file server.cmd === Start of file test247.txt data to see that FTP works so does it? === End of file test247.txt === Start of file valgrind247 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind247 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/33/server/http_ipv6_server.pid" --logfile "log/33/http_ipv6_server.log" --logdir "log/33" --portfile log/33/server/http_ipv6_server.port --config log/33/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 86151 port 46415 * pid http-ipv6 => 86151 86151 prechecked ./server/servers resolve --ipv6 ip6-localhost test 0241 SKIPPED: Resolving IPv6 'ip6-localhost' didn't work test 0245...[HTTP POST --digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind245 ../src/curl -q --output log/39/curl245.out --include --trace-ascii log/39/trace245 --trace-config all --trace-time http://127.0.0.1:42899/245 -u auser:apasswd --digest -d CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind243 ../src/curl -q --output log/54/curl243.out --include --trace-ascii log/54/trace243 --trace-config all --trace-time http://127.0.0.1:44921/243 --proxy http://127.0.0.1:44921 --proxy-user testuser:testpass --proxy-anyauth -d "postit" > log/54/stdout243 2> log/54/stderr243 "junkelijunk" > log/39/stdout245 2> log/39/stderr245 245: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 245 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind245 ../src/curl -q --output log/39/curl245.out --include --trace-ascii log/39/trace245 --trace-config all --trace-time http://127.0.0.1:42899/245 -u auser:apasswd --digest -d "junkelijunk" > log/39/stdout245 2> log/39/stderr245 === End of file commands.log === Start of file http_server.log 09:40:40.145877 ====> Client connect 09:40:40.146249 accept_connection 3 returned 4 09:40:40.146903 accept_connection 3 returned 0 09:40:40.147089 Read 93 bytes 09:40:40.147234 Process 93 bytes request 09:40:40.147377 Got request: GET /verifiedserver HTTP/1.1 09:40:40.147589 Are-we-friendly question received 09:40:40.147868 Wrote request (93 bytes) input to log/39/server.input 09:40:40.148064 Identifying ourselves as friends 09:40:40.152034 Response sent (56 bytes) and written to log/39/server.response 09:40:40.152250 special request received, no persistency 09:40:40.152345 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 245 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind245 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind245 test 0246...[HTTP POST --digest with server doing a 100 before 401 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind246 ../src/curl -q --output log/43/curl246.out --include --trace-ascii log/43/trace246 --trace-config all --trace-time http://127.0.0.1:41267/246 -u auser:apasswd --digest -d "junkelijunk" > log/43/stdout246 2> log/43/stderr246 246: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 246 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind246 ../src/curl -q --output log/43/curl246.out --include --trace-ascii log/43/trace246 --trace-config all --trace-time http://127.0.0.1:41267/246 -u auser:apasswd --digest -d "junkelijunk" > log/43/stdout246 2> log/43/stderr246 === End of file commands.log === Start of file http_server.log 09:40:40.125077 ====> Client connect 09:40:40.125378 accept_connection 3 returned 4 09:40:40.125697 accept_connection 3 returned 0 09:40:40.126521 Read 93 bytes 09:40:40.126660 Process 93 bytes request 09:40:40.126744 Got request: GET /verifiedserver HTTP/1.1 09:40:40.126819 Are-we-friendly question received 09:40:40.127039 Wrote request (93 bytes) input to log/43/server.input 09:40:40.127236 Identifying ourselves as friends 09:40:40.127838 Response sent (56 bytes) and written to log/43/server.response 09:40:40.127944 special request received, no persistency 09:40:40.128009 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 246 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind246 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind246 test 0232...[HTTP GET deflate raw-compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind232 ../src/curl -q --output log/45/curl232.out --include --trace-ascii log/45/trace232 --trace-config all --trace-time http://127.0.0.1:34239/232 --compressed > log/45/stdout232 2> log/45/stderr232 232: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 232 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-checCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind260 ../src/curl -q --output log/64/curl260.out --include --trace-ascii log/64/trace260 --trace-config all --trace-time "http://127.0.0.1:33073?260" > log/64/stdout260 2> log/64/stderr260 k=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind232 ../src/curl -q --output log/45/curl232.out --include --trace-ascii log/45/trace232 --trace-config all --trace-time http://127.0.0.1:34239/232 --compressed > log/45/stdout232 2> log/45/stderr232 === End of file commands.log === Start of file http_server.log 09:40:38.855880 ====> Client connect 09:40:38.856188 accept_connection 3 returned 4 09:40:38.856369 accept_connection 3 returned 0 09:40:38.856651 Read 93 bytes 09:40:38.856765 Process 93 bytes request 09:40:38.856851 Got request: GET /verifiedserver HTTP/1.1 09:40:38.856932 Are-we-friendly question received 09:40:38.857154 Wrote request (93 bytes) input to log/45/server.input 09:40:38.857347 Identifying ourselves as friends 09:40:38.858173 Response sent (56 bytes) and written to log/45/server.response 09:40:38.858287 special request received, no persistency 09:40:38.858358 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 232 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind232 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind232 test 0243...[HTTP POST with --proxy-anyauth, picking NTLM] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind243 ../src/curl -q --output log/54/curl243.out --include --trace-ascii log/54/trace243 --trace-config all --trace-time http://127.0.0.1:44921/243 --proxy http://127.0.0.1:44921 --proxy-user testuser:testpass --proxy-anyauth -d "postit" > log/54/stdout243 2> log/54/stderr243 243: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 243 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind243 ../src/curl -q --output log/54/curl243.out --include --trace-ascii log/54/trace243 --trace-config all --trace-time http://127.0.0.1:44921/243 --proxy http://127.0.0.1:44921 --proxy-user testuser:testpass --proxy-anyauth -d "postit" > log/54/stdout243 2> log/54/stderr243 === End of file commands.log === Start of file http_server.log 09:40:40.080353 ====> Client connect 09:40:40.080965 accept_connection 3 returned 4 09:40:40.081156 accept_connection 3 returned 0 09:40:40.081851 Read 93 bytes 09:40:40.081989 Process 93 bytes request 09:40:40.082076 Got request: GET /verifiedserver HTTP/1.1 09:40:40.082141 Are-we-friendly question received 09:40:40.082370 Wrote request (93 bytes) input to log/54/server.input 09:40:40.082661 Identifying ourselves as friends 09:40:40.083347 Response sent (56 bytes) and written to log/54/server.response 09:40:40.087717 special request received, no persistency 09:40:40.087833 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 243 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind243 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind243 test 0244...[FTP dir listing with nocwd and URL encoded path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind244 ../src/curl -q --output log/58/curl244.out --include --trace-ascii log/58/trace244 --trace-config all --trace-time --ftp-method nocwd ftp://127.0.0.1:38901/fir%23t/th%69rd/244/ > log/58/stdout244 2> log/58/stderr244 244: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 244 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind244 ../src/curl -q --output log/58/curl244.out --include --trace-ascii log/58/trace244 --trace-config all --trace-time --ftp-method nocwd ftp://127.0.0.1:38901/fir%23t/thCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind239 ../src/curl -q --output log/55/curl239.out --include --trace-ascii log/55/trace239 --trace-config all --trace-time http://127.0.0.1:33071/239 --proxy http://127.0.0.1:33071 --proxy-user testuser:testpass --proxy-ntlm -d "postit" > log/55/stdout239 2> log/55/stderr239 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind250 ../src/curl -q --output log/1/curl250.out --include --trace log/1/trace250 --trace-config all --trace-time ftp://127.0.0.1:33417/ > log/1/stdout250 2> log/1/stderr250 %69rd/244/ > log/58/stdout244 2> log/58/stderr244 === End of file commands.log === Start of file ftp_server.log 09:40:39.944968 ====> Client connect 09:40:39.946194 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.948697 < "USER anonymous" 09:40:39.953157 > "331 We are happy you popped in![CR][LF]" 09:40:39.954317 < "PASS ftp@example.com" 09:40:39.955546 > "230 Welcome you silly person[CR][LF]" 09:40:39.956718 < "PWD" 09:40:39.957558 > "257 "/" is current directory[CR][LF]" 09:40:39.959318 < "EPSV" 09:40:39.959544 ====> Passive DATA channel requested by client 09:40:39.959702 DATA sockfilt for passive data channel starting... 09:40:39.972940 DATA sockfilt for passive data channel started (pid 86836) 09:40:39.973990 DATA sockfilt for passive data channel listens on port 46265 09:40:39.974386 > "229 Entering Passive Mode (|||46265|)[LF]" 09:40:39.974612 Client has been notified that DATA conn will be accepted on port 46265 09:40:39.977045 Client connects to port 46265 09:40:39.977305 ====> Client established passive DATA connection on port 46265 09:40:39.978056 < "TYPE I" 09:40:39.978379 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.980237 < "SIZE verifiedserver" 09:40:39.980993 > "213 17[CR][LF]" 09:40:39.982571 < "RETR verifiedserver" 09:40:39.983087 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.983989 =====> Closing passive DATA connection... 09:40:39.984202 Server disconnects passive DATA connection 09:40:39.987109 Server disconnected passive DATA connection 09:40:39.987343 DATA sockfilt for passive data channel quits (pid 86836) 09:40:39.989380 DATA sockfilt for passive data channel quit (pid 86836) 09:40:39.989621 =====> Closed passive DATA connection 09:40:39.990405 > "226 File transfer complete[CR][LF]" 09:40:40.029201 < "QUIT" 09:40:40.030908 > "221 bye bye baby[CR][LF]" 09:40:40.031525 MAIN sockfilt said DISC 09:40:40.031912 ====> Client disconnected 09:40:40.032399 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:40.196818 ====> Client connect 09:40:40.200194 Received DATA (on stdin) 09:40:40.200339 > 160 bytes data, server => client 09:40:40.200549 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:40.200675 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:40.200749 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:40.201424 < 16 bytes data, client => server 09:40:40.201627 'USER anonymous\r\n' 09:40:40.202831 Received DATA (on stdin) 09:40:40.202962 > 33 bytes data, server => client 09:40:40.203107 '331 We are happy you popped in!\r\n' 09:40:40.207266 < 22 bytes data, client => server 09:40:40.207390 'PASS ftp@example.com\r\n' 09:40:40.208331 Received DATA (on stdin) 09:40:40.208534 > 30 bytes data, server => client 09:40:40.208708 '230 Welcome you silly person\r\n' 09:40:40.209727 < 5 bytes data, client => server 09:40:40.209852 'PWD\r\n' 09:40:40.210923 Received DATA (on stdin) 09:40:40.211054 > 30 bytes data, server => client 09:40:40.211530 '257 "/" is current directory\r\n' 09:40:40.212276 < 6 bytes data, client => server 09:40:40.212409 'EPSV\r\n' 09:40:40.228679 Received DATA (on stdin) 09:40:40.228818 > 38 bytes data, server => client 09:40:40.228896 '229 Entering Passive Mode (|||46265|)\n' 09:40:40.230083 < 8 bytes data, client => server 09:40:40.230222 'TYPE I\r\n' 09:40:40.232498 Received DATA (on stdin) 09:40:40.232640 > 33 bytes data, server => client 09:40:40.232714 '200 I modify TYPE as you wanted\r\n' 09:40:40.233212 < 21 bytes data, client => server 09:40:40.233333 'SIZE verifiedserver\r\n' 09:40:40.234295 Received DATA (on stdin) 09:40:40.234421 > 8 bytes data, server => client 09:40:40.234961 '213 17\r\n' 09:40:40.235614 < 21 bytes data, client => server 09:40:40.235745 'RETR verifiedserver\r\n' 09:40:40.238104 Received DATA (on stdin) 09:40:40.238229 > 29 bytes data, server => client 09:40:40.238312 '150 Binary junk (17 bytes).\r\n' 09:40:40.243682 Received DATA (on stdin) 09:40:40.243836 > 28 bytes data, server => client 09:40:40.244519 '226 File transfer complete\r\n' 09:40:40.281945 < 6 bytes data, client => server 09:40:40.282109 'QUIT\r\n' 09:40:40.283255 Received DATA (on stdin) 09:40:40.283398 > 18 bytes data, server => client 09:40:40.283673 '221 bye bye baby\r\n' 09:40:40.284990 ====> Client disconnect 09:40:40.287528 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.224978 Running IPv4 version 09:40:39.225662 Listening on port 46265 09:40:39.226085 Wrote pid 86836 to log/58/server/ftp_sockdata.pid 09:40:39.226246 Received PING (on stdin) 09:40:39.227041 Received PORT (on stdin) 09:40:39.230397 ====> Client connect 09:40:39.238885 Received DATA (on stdin) 09:40:39.239019 > 17 bytes data, server => client 09:40:39.239092 'WE ROOLZ: 77973\r\n' 09:40:39.239611 Received DISC (on stdin) 09:40:39.239761 ====> Client forcibly disconnected 09:40:39.241297 Received QUIT (on stdin) 09:40:39.241530 quits 09:40:39.241989 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 244 === End of file server.cmd === Start of file valgrind244 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind244 test 0236...[FTP resume upload but denied access to remote file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind236 ../src/curl -q --output log/59/curl236.out --include --trace-ascii log/59/trace236 --trace-config all --trace-time ftp://127.0.0.1:43961/236 -T log/59/file236.txt -C - > log/59/stdout236 2> log/59/stderr236 236: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 236 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind236 ../src/curl -q --output log/59/curl236.out --include --trace-ascii log/59/trace236 --trace-config all --trace-time ftp://127.0.0.1:43961/236 -T log/59/file236.txt -C - > log/59/stdout236 2> log/59/stderr236 === End of file commands.log === Start of file file236.txt Test data === End of file file236.txt === Start of file ftp_server.log 09:40:39.705467 ====> Client connect 09:40:39.706871 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.713285 < "USER anonymous" 09:40:39.718089 > "331 We are happy you popped in![CR][LF]" 09:40:39.720368 < "PASS ftp@example.com" 09:40:39.720700 > "230 Welcome you silly person[CR][LF]" 09:40:39.724218 < "PWD" 09:40:39.725149 > "257 "/" is current directory[CR][LF]" 09:40:39.727092 < "EPSV" 09:40:39.727353 ====> Passive DATA channel requested by client 09:40:39.727544 DATA sockfilt for passive data channel starting... 09:40:39.740506 DATA sockfilt for passive data channel started (pid 86464) 09:40:39.741718 DATA sockfilt for passive data channel listens on port 33851 09:40:39.744379 > "229 Entering Passive Mode (|||33851|)[LF]" 09:40:39.744696 Client has been notified that DATA conn will be accepted on port 33851 09:40:39.747981 Client connects to port 33851 09:40:39.748281 ====> Client established passive DATA connection on port 33851 09:40:39.749198 < "TYPE I" 09:40:39.750567 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:39.752387 < "SIZE verifiedserver" 09:40:39.752912 > "213 17[CR][LF]" 09:40:39.755312 < "RETR verifiedserver" 09:40:39.756397 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:39.757337 =====> Closing passive DATA connection... 09:40:39.757584 Server disconnects passive DATA connection 09:40:39.760433 Server disconnected passive DATA connection 09:40:39.760729 DATA sockfilt for passive data channel quits (pid 86464) 09:40:39.762887 DATA sockfilt for passive data channel quit (pid 86464) 09:40:39.763129 =====> Closed passive DATA connection 09:40:39.764057 > "226 File transfer complete[CR][LF]" 09:40:39.807612 < "QUIT" 09:40:39.808085 > "221 bye bye baby[CR][LF]" 09:40:39.812456 MAIN sockfilt said DISC 09:40:39.812863 ====> Client disconnected 09:40:39.813405 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.958609 ====> Client connect 09:40:39.963977 Received DATA (on stdin) 09:40:39.964173 > 160 bytes data, server => client 09:40:39.964279 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.964372 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.964609 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.965730 < 16 bytes data, client => server 09:40:39.965874 'USER anonymous\r\n' 09:40:39.967360 Received DATA (on stdin) 09:40:39.967572 > 33 bytes data, server => client 09:40:39.972214 '331 We are happy you popped in!\r\n' 09:40:39.974852 < 22 bytes data, client => server 09:40:39.974991 'PASS ftp@example.com\r\n' 09:40:39.975088 Received DATA (on stdin) 09:40:39.975163 > 30 bytes data, server => client 09:40:39.975246 '230 Welcome you silly person\r\n' 09:40:39.976731 < 5 bytes data, client => server 09:40:39.976928 'PWD\r\n' 09:40:39.978260 Received DATA (on stdin) 09:40:39.978384 > 30 bytes data, server => client 09:40:39.979141 '257 "/" is current directory\r\n' 09:40:39.979991 < 6 bytes data, client => server 09:40:39.980116 'EPSV\r\n' 09:40:39.998861 Received DATA (on stdin) 09:40:39.999027 > 38 bytes data, server => client 09:40:39.999183 '229 Entering Passive Mode (|||33851|)\n' 09:40:40.001249 < 8 bytes data, client => server 09:40:40.001380 'TYPE I\r\n' 09:40:40.003331 Received DATA (on stdin) 09:40:40.003569 > 33 bytes data, server => client 09:40:40.003800 '200 I modify TYPE as you wanted\r\n' 09:40:40.005325 < 21 bytes data, client => server 09:40:40.005567 'SIZE verifiedserver\r\n' 09:40:40.006928 Received DATA (on stdin) 09:40:40.007067 > 8 bytes data, server => client 09:40:40.007160 '213 17\r\n' 09:40:40.008026 < 21 bytes data, client => server 09:40:40.008184 'RETR verifiedserver\r\n' 09:40:40.009606 Received DATA (on stdin) 09:40:40.009794 > 29 bytes data, server => client 09:40:40.011610 '150 Binary junk (17 bytes).\r\n' 09:40:40.017088 Received DATA (on stdin) 09:40:40.017218 > 28 bytes data, server => client 09:40:40.017390 '226 File transfer complete\r\n' 09:40:40.057319 < 6 bytes data, client => server 09:40:40.057571 'QUIT\r\n' 09:40:40.063565 Received DATA (on stdin) 09:40:40.063738 > 18 bytes data, server => client 09:40:40.063833 '221 bye bye baby\r\n' 09:40:40.065795 ====> Client disconnect 09:40:40.067413 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.992501 Running IPv4 version 09:40:39.993036 Listening on port 33851 09:40:39.993403 Wrote pid 86464 to log/59/server/ftp_sockdata.pid 09:40:39.993665 Received PING (on stdin) 09:40:39.994762 Received PORT (on stdin) 09:40:40.000949 ====> Client connect 09:40:40.012034 Received DATA (on stdin) 09:40:40.012224 > 17 bytes data, server => client 09:40:40.012307 'WE ROOLZ: 78816\r\n' 09:40:40.012704 Received DISC (on stdin) 09:40:40.012905 ====> Client forcibly disconnected 09:40:40.014857 Received QUIT (on stdin) 09:40:40.014987 quits 09:40:40.015419 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 550 access to this file is very much denied REPLY APPE 550 I said: access to this file is very much denied REPLY STOR 550 I said: access to this file is very much denied REPLY SIZE 500 command not understood Testnum 236 === End of file server.cmd === Start of file valgrind236 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind236 test 0249...[HTTP 304 response with "illegal" Content-Length: header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind249 ../src/curl -q --output log/63/curl249.out --include --trace-ascii log/63/trace249 --trace-config all --trace-time http://127.0.0.1:38797/249 -z "dec 12 12:00:00 1999 GMT" > log/63/stdout249 2> log/63/stderr249 249: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 249 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind249 ../src/curl -q --output log/63/curl249.out --include --trace-ascii log/63/trace249 --trace-config all --trace-time http://127.0.0.1:38797/249 -z "dec 12 12:00:00 1999 GMT" > log/63/stdout249 2> log/63/stderr249 === End of file commands.log === Start of file http_server.log 09:40:40.170913 ====> Client connect 09:40:40.171362 accept_connection 3 returned 4 09:40:40.171849 accept_connection 3 returned 0 09:40:40.172028 Read 93 bytes 09:40:40.172124 Process 93 bytes request 09:40:40.172210 Got request: GET /verifiedserver HTTP/1.1 09:40:40.17CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind251 ../src/curl -q --output log/51/curl251.out --include --trace-ascii log/51/trace251 --trace-config all --trace-time ftp://127.0.0.1:42737/ -P 127.0.0.1 > log/51/stdout251 2> log/51/stderr251 2299 Are-we-friendly question received 09:40:40.172689 Wrote request (93 bytes) input to log/63/server.input 09:40:40.172872 Identifying ourselves as friends 09:40:40.173419 Response sent (56 bytes) and written to log/63/server.response 09:40:40.176688 special request received, no persistency 09:40:40.176776 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 249 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind249 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind249 test 0250...[FTP dir list PASV with slow response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind250 ../src/curl -q --output log/1/curl250.out --include --trace log/1/trace250 --trace-config all --trace-time ftp://127.0.0.1:33417/ > log/1/stdout250 2> log/1/stderr250 250: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 250 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind250 ../src/curl -q --output log/1/curl250.out --include --trace log/1/trace250 --trace-config all --trace-time ftp://127.0.0.1:33417/ > log/1/stdout250 2> log/1/stderr250 === End of file commands.log === Start of file ftp_server.log 09:40:39.972599 ====> Client connect 09:40:39.974403 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.976958 < "USER anonymous" 09:40:39.977999 > "331 We are happy you popped in![CR][LF]" 09:40:39.979467 < "PASS ftp@example.com" 09:40:39.981048 > "230 Welcome you silly person[CR][LF]" 09:40:39.981611 < "PWD" 09:40:39.982192 > "257 "/" is current directory[CR][LF]" 09:40:39.984288 < "EPSV" 09:40:39.984558 ====> Passive DATA channel requested by client 09:40:39.984737 DATA sockfilt for passive data channel starting... 09:40:39.996963 DATA sockfilt for passive data channel started (pid 86885) 09:40:39.998412 DATA sockfilt for passive data channel listens on port 38913 09:40:39.999094 > "229 Entering Passive Mode (|||38913|)[LF]" 09:40:39.999349 Client has been notified that DATA conn will be accepted on port 38913 09:40:40.002232 Client connects to port 38913 09:40:40.002527 ====> Client established passive DATA connection on port 38913 09:40:40.003378 < "TYPE I" 09:40:40.004866 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:40.006023 < "SIZE verifiedserver" 09:40:40.007129 > "213 17[CR][LF]" 09:40:40.008564 < "RETR verifiedserver" 09:40:40.009383 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:40.010189 =====> Closing passive DATA connection... 09:40:40.010405 Server disconnects passive DATA connection 09:40:40.012805 Server disconnected passive DATA connection 09:40:40.013084 DATA sockfilt for passive data channel quits (pid 86885) 09:40:40.015140 DATA sockfilt for passive data channel quit (pid 86885) 09:40:40.015410 =====> Closed passive DATA connection 09:40:40.016382 > "226 File transfer complete[CR][LF]" 09:40:40.054600 < "QUIT" 09:40:40.055417 > "221 bye bye baby[CR][LF]" 09:40:40.059941 MAIN sockfilt said DISC 09:40:40.060267 ====> Client disconnected 09:40:40.060723 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:39.225765 ====> Client connect 09:40:39.227689 Received DATA (on stdin) 09:40:39.227849 > 160 bytes data, server => client 09:40:39.228407 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:39.228693 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:39.228788 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:39.229562 < 16 bytes data, client => server 09:40:39.229710 'USER anonymous\r\n' 09:40:39.230995 Received DATA (on stdin) 09:40:39.231119 > 33 bytes data, server => client 09:40:39.231279 '331 We are happy you popped in!\r\n' 09:40:39.232519 < 22 bytes data, client => server 09:40:39.232665 'PASS ftp@example.com\r\n' 09:40:39.233548 Received DATA (on stdin) 09:40:39.233674 > 30 bytes data, server => client 09:40:39.233830 '230 Welcome you silly person\r\n' 09:40:39.234345 < 5 bytes data, client => server 09:40:39.234544 'PWD\r\n' 09:40:39.236184 Received DATA (on stdin) 09:40:39.236307 > 30 bytes data, server => client 09:40:39.236392 '257 "/" is current directory\r\n' 09:40:39.237238 < 6 bytes data, client => server 09:40:39.237369 'EPSV\r\n' 09:40:39.253365 Received DATA (on stdin) 09:40:39.253583 > 38 bytes data, server => client 09:40:39.253708 '229 Entering Passive Mode (|||38913|)\n' 09:40:39.255246 < 8 bytes data, client => server 09:40:39.255393 'TYPE I\r\n' 09:40:39.257513 Received DATA (on stdin) 09:40:39.257663 > 33 bytes data, server => client 09:40:39.257838 '200 I modify TYPE as you wanted\r\n' 09:40:39.258945 < 21 bytes data, client => server 09:40:39.259068 'SIZE verifiedserver\r\n' 09:40:39.260124 Received DATA (on stdin) 09:40:39.260260 > 8 bytes data, server => client 09:40:39.260517 '213 17\r\n' 09:40:39.261570 < 21 bytes data, client => server 09:40:39.261708 'RETR verifiedserver\r\n' 09:40:39.262737 Received DATA (on stdin) 09:40:39.262888 > 29 bytes data, server => client 09:40:39.264350 '150 Binary junk (17 bytes).\r\n' 09:40:39.269430 Received DATA (on stdin) 09:40:39.269636 > 28 bytes data, server => client 09:40:39.269806 '226 File transfer complete\r\n' 09:40:39.307422 < 6 bytes data, client => server 09:40:39.307647 'QUIT\r\n' 09:40:39.308770 Received DATA (on stdin) 09:40:39.308913 > 18 bytes data, server => client 09:40:39.309413 '221 bye bye baby\r\n' 09:40:39.310003 ====> Client disconnect 09:40:39.314824 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:39.249086 Running IPv4 version 09:40:39.249756 Listening on port 38913 09:40:39.250152 Wrote pid 86885 to log/1/server/ftCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind256 ../src/curl -q --include --trace-ascii log/34/trace256 --trace-config all --trace-time -x http://127.0.0.1:33117 http://127.0.0.1:33117/want/256 -C - --no-include -o log/34/fewl256.txt -U daniel:stenberg > log/34/stdout256 2> log/34/stderr256 p_sockdata.pid 09:40:39.250310 Received PING (on stdin) 09:40:39.251134 Received PORT (on stdin) 09:40:39.255674 ====> Client connect 09:40:39.264792 Received DATA (on stdin) 09:40:39.264930 > 17 bytes data, server => client 09:40:39.265020 'WE ROOLZ: 77379\r\n' 09:40:39.265279 Received DISC (on stdin) 09:40:39.265493 ====> Client forcibly disconnected 09:40:39.267087 Received QUIT (on stdin) 09:40:39.267232 quits 09:40:39.267696 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd SLOWDOWN Testnum 250 === End of file server.cmd === Start of file valgrind250 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind250 test 0239...[HTTP proxy-auth NTLM and then POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind239 ../src/curl -q --output log/55/curl239.out --include --trace-ascii log/55/trace239 --trace-config all --trace-time http://127.0.0.1:33071/239 --proxy http://127.0.0.1:33071 --proxy-user testuser:testpass --proxy-ntlm -d "postit" > log/55/stdout239 2> log/55/stderr239 239: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 239 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind239 ../src/curl -q --output log/55/curl239.out --include --trace-ascii log/55/trace239 --trace-config all --trace-time http://127.0.0.1:33071/239 --proxy http://127.0.0.1:33071 --proxy-user testuser:testpass --proxy-ntlm -d "postit" > log/55/stdout239 2> log/55/stderr239 === End of file commands.log === Start of file http_server.log 09:40:40.068865 ====> Client connect 09:40:40.069561 accept_connection 3 returned 4 09:40:40.069779 accept_connection 3 returned 0 09:40:40.069937 Read 93 bytes 09:40:40.070048 Process 93 bytes request 09:40:40.070152 Got request: GET /verifiedserver HTTP/1.1 09:40:40.070246 Are-we-friendly question received 09:40:40.070590 Wrote request (93 bytes) input to log/55/server.input 09:40:40.070802 Identifying ourselves as friends 09:40:40.071715 Response sent (56 bytes) and written to log/55/server.response 09:40:40.071853 special request received, no persistency 09:40:40.071937 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 239 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind239 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind239 test 0260...[HTTP GET URL without slash but with question mark] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind260 ../src/curl -q --output log/64/curl260.out --include --trace-ascii log/64/trace260 --trace-config all --trace-time "http://127.0.0.1:33073?260" > log/64/stdout260 2> log/64/stderr260 260: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 260 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind260 ../src/curl -q --output log/64/curl260.out --include --trace-ascii log/64/trace260 --trace-config all --trace-time "http://127.0.0.1:33073?260" > log/64/stdout260 2> log/64/stderr260 === End of file commands.log === Start of file http_server.log 09:40:40.479888 ====> Client connect 09:40:40.480200 accept_connection 3 returned 4 09:40:40.480628 accept_connection 3 returned 0 09:40:40.480796 Read 93 bytes 09:40:40.480975 Process 93 bytes request 09:40:40.481156 Got request: GET /verifiedserver HTTP/1.1 09:40:40.481279 Are-we-friendly question received 09:40:40.481844 Wrote request (93 bytes) input to log/64/server.input 09:40:40.482056 Identifying ourselves as friends 09:40:40.486828 Response sent (56 bytes) and written to log/64/server.response 09:40:40.487297 special request received, no persistency 09:40:40.487426 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 260 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind260 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind260 test 0256...[HTTP resume request over proxy with auth without server supporting it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind256 ../src/curl -q --include --trace-ascii log/34/trace256 --trace-config all --trace-time -x http://127.0.0.1:33117 http://127.0.0.1:33117/want/256 -C - --no-include -o log/34/fewl256.txt -U daniel:stenberg > log/34/stdout256 2> log/34/stderr256 256: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 256 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind256 ../src/curl -q --include --trace-ascii log/34/trace256 --trace-config all --trace-time -x http://127.0.0.1:33117 http://127.0.0.1:33117/want/256 -C - --no-include -o log/34/fewl256.txt -U daniel:stenberg > log/34/stdout256 2> log/34/stderr256 === End of file commands.log === Start of file fewl256.txt This text is here to simulate a partly downloaded file to resume download on. === End of file fewl256.txt === Start of file http_server.log 09:40:40.387883 ====> Client connect 09:40:40.388220 accept_connection 3 returned 4 09:40:40.388388 accept_connection 3 returned 0 09:40:40.388670 Read 93 bytes 09:40:40.388779 Process 93 bytes request 09:40:40.388858 Got request: GET /verifiedserver HTTP/1.1 09:40:40.388927 Are-we-friendly question received 09:40:40.389162 Wrote request (93 bytes) input to log/34/server.input 09:40:40.389345 Identifying ourselves as friends 09:40:40.392586 Response sent (56 bytes) and written to log/34/server.response 09:40:40.392721 special request received, no persistency 09:40:40.392796 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file server.cmd Testnum 256 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file valgrind256 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind256 test 0251...[FTP dir list, PORT with specified IP and slow response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind251 ../src/curl -q --output log/51/curl251.out --include --trace-ascii log/51/trace251 --trace-config all --trace-time ftp://127.0.0.1:42737/ -P 127.0.0.1 > log/51/stdout251 2> log/51/stderr251 251: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 251 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind251 ../src/curl -q --output log/51/curl251.out --include --trace-ascii log/51/trace251 --trace-config all --trace-time ftp://127.0.0.1:42737/ -P 127.0.0.1 > log/51/stdout251 2> log/51/stderr251 === End of file commands.log === Start of file ftp_server.log 09:40:39.975883 ====> Client connect 09:40:39.979273 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:39.983357 < "USER anonymous" 09:40:39.984705 > "331 We are happy you popped in![CR][LF]" 09:40:39.986376 < "PASS ftp@example.com" 09:40:39.987055 > "230 Welcome you silly person[CR][LF]" 09:40:39.989531 < "PWD" 09:40:39.989977 > "257 "/" is current directory[CR][LF]" 09:40:39.992617 < "EPSV" 09:40:39.992968 ====> Passive DATA channel requested by client 09:40:39.993154 DATA sockfilt for passive data channel starting... 09:40:40.022897 DATA sockfilt for passive data channel started (pid 86897) 09:40:40.024048 DATA sockfilt for passive data channel listens on port 35505 09:40:40.026059 > "229 Entering Passive Mode (|||35505|)[LF]" 09:40:40.026487 Client has been notified that DATA conn will be accepted on port 35505 09:40:40.030060 Client connects to port 35505 09:40:40.030427 ====> Client established passive DATA connection on port 35505 09:40:40.031370 < "TYPE I" 09:40:40.033958 > "200 I modify TYPE as you wanted[CR][LF]" 09:40CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind258 ../src/curl -q --output log/18/curl258.out --include --trace-ascii log/18/trace258 --trace-config all --trace-time -x http://127.0.0.1:41285 http://remotehost:54321/we/want/258 -F name=daniel -F tool=curl -F file=@log/18/test258.txt -H "Expect:" -U uuuser:pppassword --proxy-anyauth > log/18/stdout258 2> log/18/stderr258 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind269 ../src/curl -q --output log/31/curl269.out --include --trace-ascii log/31/trace269 --trace-config all --trace-time http://127.0.0.1:45557/269 --ignore-content-length > log/31/stdout269 2> log/31/stderr269 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind264 ../src/curl -q --output log/3/curl264.out --include --trace-ascii log/3/trace264 --trace-config all --trace-time http://we.want.that.site.com/264 -x http://f%61ke:user@127.0.0.1:42107 > log/3/stdout264 2> log/3/stderr264 :40.036658 < "SIZE verifiedserver" 09:40:40.037690 > "213 17[CR][LF]" 09:40:40.040480 < "RETR verifiedserver" 09:40:40.041140 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:40.043517 =====> Closing passive DATA connection... 09:40:40.044067 Server disconnects passive DATA connection 09:40:40.046919 Server disconnected passive DATA connection 09:40:40.047228 DATA sockfilt for passive data channel quits (pid 86897) 09:40:40.049887 DATA sockfilt for passive data channel quit (pid 86897) 09:40:40.050147 =====> Closed passive DATA connection 09:40:40.050503 > "226 File transfer complete[CR][LF]" 09:40:40.084956 < "QUIT" 09:40:40.086213 > "221 bye bye baby[CR][LF]" 09:40:40.090353 MAIN sockfilt said DISC 09:40:40.091309 ====> Client disconnected 09:40:40.091961 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:40.228898 ====> Client connect 09:40:40.233298 Received DATA (on stdin) 09:40:40.233550 > 160 bytes data, server => client 09:40:40.233677 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:40.233763 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:40.233837 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:40.235603 < 16 bytes data, client => server 09:40:40.235764 'USER anonymous\r\n' 09:40:40.237717 Received DATA (on stdin) 09:40:40.237868 > 33 bytes data, server => client 09:40:40.238028 '331 We are happy you popped in!\r\n' 09:40:40.239513 < 22 bytes data, client => server 09:40:40.239661 'PASS ftp@example.com\r\n' 09:40:40.241042 Received DATA (on stdin) 09:40:40.241166 > 30 bytes data, server => client 09:40:40.241251 '230 Welcome you silly person\r\n' 09:40:40.242053 < 5 bytes data, client => server 09:40:40.242188 'PWD\r\n' 09:40:40.244310 Received DATA (on stdin) 09:40:40.244564 > 30 bytes data, server => client 09:40:40.244689 '257 "/" is current directory\r\n' 09:40:40.245415 < 6 bytes data, client => server 09:40:40.245731 'EPSV\r\n' 09:40:40.280556 Received DATA (on stdin) 09:40:40.280744 > 38 bytes data, server => client 09:40:40.280848 '229 Entering Passive Mode (|||35505|)\n' 09:40:40.283067 < 8 bytes data, client => server 09:40:40.283202 'TYPE I\r\n' 09:40:40.288011 Received DATA (on stdin) 09:40:40.288198 > 33 bytes data, server => client 09:40:40.288313 '200 I modify TYPE as you wanted\r\n' 09:40:40.289038 < 21 bytes data, client => server 09:40:40.289195 'SIZE verifiedserver\r\n' 09:40:40.291856 Received DATA (on stdin) 09:40:40.292061 > 8 bytes data, server => client 09:40:40.292181 '213 17\r\n' 09:40:40.293153 < 21 bytes data, client => server 09:40:40.293311 'RETR verifiedserver\r\n' 09:40:40.295210 Received DATA (on stdin) 09:40:40.295349 > 29 bytes data, server => client 09:40:40.295538 '150 Binary junk (17 bytes).\r\n' 09:40:40.304604 Received DATA (on stdin) 09:40:40.304756 > 28 bytes data, server => client 09:40:40.304850 '226 File transfer complete\r\n' 09:40:40.337630 < 6 bytes data, client => server 09:40:40.337815 'QUIT\r\n' 09:40:40.339053 Received DATA (on stdin) 09:40:40.339199 > 18 bytes data, server => client 09:40:40.339389 '221 bye bye baby\r\n' 09:40:40.343704 ====> Client disconnect 09:40:40.344373 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:40.274659 Running IPv4 version 09:40:40.275258 Listening on port 35505 09:40:40.275790 Wrote pid 86897 to log/51/server/ftp_sockdata.pid 09:40:40.276018 Received PING (on stdin) 09:40:40.277101 Received PORT (on stdin) 09:40:40.282744 ====> Client connect 09:40:40.295929 Received DATA (on stdin) 09:40:40.296170 > 17 bytes data, server => client 09:40:40.298408 'WE ROOLZ: 77543\r\n' 09:40:40.298895 Received DISC (on stdin) 09:40:40.299292 ====> Client forcibly disconnected 09:40:40.301226 Received QUIT (on stdin) 09:40:40.301361 quits 09:40:40.301855 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd SLOWDOWN Testnum 251 === End of file server.cmd === Start of file valgrind251 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind251 test 0258...[HTTP POST multipart without Expect: header using proxy anyauth (Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind258 ../src/curl -q --output log/18/curl258.out --include --trace-ascii log/18/trace258 --trace-config all --trace-time -x http://127.0.0.1:41285 http://remotehost:54321/we/want/258 -F name=daniel -F tool=curl -F file=@log/18/test258.txt -H "Expect:" -U uuuser:pppassword --proxy-anyauth > log/18/stdout258 2> log/18/stderr258 258: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 258 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind258 ../src/curl -q --output log/18/curl258.out --include --trace-ascii log/18/trace258 --trace-config all --trace-time -x http://127.0.0.1:41285 http://remotehost:54321/we/want/258 -F name=daniel -F tool=curl -F file=@log/18/test258.txt -H "Expect:" -U uuuser:pppassword --proxy-anyauth > log/18/stdout258 2> log/18/stderr258 === End of file commands.log === Start of file http_server.log 09:40:40.362831 ====> Client connect 09:40:40.363135 accept_connection 3 returned 4 09:40:40.363306 accept_connection 3 returned 0 09:40:40.363574 Read 93 bytes 09:40:40.363712 Process 93 bytes request 09:40:40.363811 Got request: GET /verifiedserver HTTP/1.1 09:40:40.363885 Are-we-friendly question received 09:40:40.364109 Wrote request (93 bytes) input to log/18/server.input 09:40:40.364308 Identifying ourselves as friends 09:40:40.365149 Response sent (56 bytes) and written to log/18/server.response 09:40:40.365262 special request received, no persistency 09:40:40.365336 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 258 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 =CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind240 ../src/curl -q --output log/46/curl240.out --include --trace-ascii log/46/trace240 --trace-config all --trace-time -g "http://[::1]:44225/240" > log/46/stdout240 2> log/46/stderr240 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind257 ../src/curl -q --output log/23/curl257.out --include --trace-ascii log/23/trace257 --trace-config all --trace-time http://supersite.com/want/257 -L -x http://127.0.0.1:42467 --netrc-optional --netrc-file log/23/netrc257 > log/23/stdout257 2> log/23/stderr257 == End of file server.response === Start of file test258.txt foo- This is a moo- bar === End of file test258.txt === Start of file valgrind258 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind258 test 0264...[HTTP with proxy string including http:// and user+password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind264 ../src/curl -q --output log/3/curl264.out --include --trace-ascii log/3/trace264 --trace-config all --trace-time http://we.want.that.site.com/264 -x http://f%61ke:user@127.0.0.1:42107 > log/3/stdout264 2> log/3/stderr264 264: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 264 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind264 ../src/curl -q --output log/3/curl264.out --include --trace-ascii log/3/trace264 --trace-config all --trace-time http://we.want.that.site.com/264 -x http://f%61ke:user@127.0.0.1:42107 > log/3/stdout264 2> log/3/stderr264 === End of file commands.log === Start of file http_server.log 09:40:40.655148 ====> Client connect 09:40:40.655689 accept_connection 3 returned 4 09:40:40.655904 accept_connection 3 returned 0 09:40:40.656058 Read 93 bytes 09:40:40.656183 Process 93 bytes request 09:40:40.656300 Got request: GET /verifiedserver HTTP/1.1 09:40:40.656401 Are-we-friendly question received 09:40:40.656785 Wrote request (93 bytes) input to log/3/server.input 09:40:40.656994 Identifying ourselves as friends 09:40:40.658165 Response sent (56 bytes) and written to log/3/server.response 09:40:40.658309 special request received, no persistency 09:40:40.658391 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 264 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind264 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind264 test 0269...[HTTP --ignore-content-length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind269 ../src/curl -q --output log/31/curl269.out --include --trace-ascii log/31/trace269 --trace-config all --trace-time http://127.0.0.1:45557/269 --ignore-content-length > log/31/stdout269 2> log/31/stderr269 269: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 269 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind269 ../src/curl -q --output log/31/curl269.out --include --trace-ascii log/31/trace269 --trace-config all --trace-time http://127.0.0.1:45557/269 --ignore-content-length > log/31/stdout269 2> log/31/stderr269 === End of file commands.log === Start of file http_server.log 09:40:40.834950 ====> Client connect 09:40:40.835419 accept_connection 3 returned 4 09:40:40.836356 accept_connection 3 returned 0 09:40:40.836627 Read 93 bytes 09:40:40.836796 Process 93 bytes request 09:40:40.836978 Got request: GET /verifiedserver HTTP/1.1 09:40:40.837066 Are-we-friendly question received 09:40:40.837373 Wrote request (93 bytes) input to log/31/server.input 09:40:40.837798 Identifying ourselves as friends 09:40:40.840205 Response sent (56 bytes) and written to log/31/server.response 09:40:40.840350 special request received, no persistency 09:40:40.840428 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 269 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind269 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind266 ../src/curl -q --output log/40/curl266.out --include --trace-ascii log/40/trace266 --trace-config all --trace-time http://127.0.0.1:42139/266 -D log/40/heads266 > log/40/stdout266 2> log/40/stderr266 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind261 ../src/curl -q --output log/60/curl261.out --include --trace-ascii log/60/trace261 --trace-config all --trace-time ftp://127.0.0.1:41385/261 > log/60/stdout261 2> log/60/stderr261 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind262 ../src/curl -q --output log/62/curl262.out --include --trace-ascii log/62/trace262 --trace-config all --trace-time http://127.0.0.1:38899/262 > log/62/stdout262 2> log/62/stderr262 A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind269 test 0257...[HTTP Location: following with --netrc-optional] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind257 ../src/curl -q --output log/23/curl257.out --include --trace-ascii log/23/trace257 --trace-config all --trace-time http://supersite.com/want/257 -L -x http://127.0.0.1:42467 --netrc-optional --netrc-file log/23/netrc257 > log/23/stdout257 2> log/23/stderr257 257: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 257 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind257 ../src/curl -q --output log/23/curl257.out --include --trace-ascii log/23/trace257 --trace-config all --trace-time http://supersite.com/want/257 -L -x http://127.0.0.1:42467 --netrc-optional --netrc-file log/23/netrc257 > log/23/stdout257 2> log/23/stderr257 === End of file commands.log === Start of file http_server.log 09:40:40.373998 ====> Client connect 09:40:40.374772 accept_connection 3 returned 4 09:40:40.374972 accept_connection 3 returned 0 09:40:40.375112 Read 93 bytes 09:40:40.375202 Process 93 bytes request 09:40:40.375286 Got request: GET /verifiedserver HTTP/1.1 09:40:40.375364 Are-we-friendly question received 09:40:40.375704 Wrote request (93 bytes) input to log/23/server.input 09:40:40.375902 Identifying ourselves as friends 09:40:40.376835 Response sent (56 bytes) and written to log/23/server.response 09:40:40.376966 special request received, no persistency 09:40:40.377039 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file netrc257 machine supersite.com login user1 password passwd1 machine anotherone.com login user2 password passwd2 === End of file netrc257 === Start of file server.cmd Testnum 257 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind257 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind257 test 0266...[HTTP GET with chunked Transfer-Encoding and chunked trailer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind266 ../src/curl -q --output log/40/curl266.out --include --trace-ascii log/40/trace266 --trace-config all --trace-time http://127.0.0.1:42139/266 -D log/40/heads266 > log/40/stdout266 2> log/40/stderr266 266: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 266 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind266 ../src/curl -q --output log/40/curl266.out --include --trace-ascii log/40/trace266 --trace-config all --trace-time http://127.0.0.1:42139/266 -D log/40/heads266 > log/40/stdout266 2> log/40/stderr266 === End of file commands.log === Start of file http_server.log 09:40:40.706287 ====> Client connect 09:40:40.706831 accept_connection 3 returned 4 09:40:40.707028 accept_connection 3 returned 0 09:40:40.707156 Read 93 bytes 09:40:40.707240 Process 93 bytes request 09:40:40.707313 Got request: GET /verifiedserver HTTP/1.1 09:40:40.707385 Are-we-friendly question received 09:40:40.707703 Wrote request (93 bytes) input to log/40/server.input 09:40:40.707898 Identifying ourselves as friends 09:40:40.708796 Response sent (56 bytes) and written to log/40/server.response 09:40:40.708909 special request received, no persistency 09:40:40.708973 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 266 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file valgrind266 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind268 ../src/curl -q --output log/19/curl268.out --include --trace-ascii log/19/trace268 --trace-config all --trace-time http://127.0.0.1:35697/268 --variable hello@log/19/junk --expand-data {{hello:json}} > log/19/stdout268 2> log/19/stderr268 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind242 ../src/curl -q --output log/50/curl242.out --include --trace-ascii log/50/trace242 --trace-config all --trace-time -g "http://foobar:barfoo@[::1]:33399/242" > log/50/stdout242 2> log/50/stderr242 grind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind266 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/46/server/http_ipv6_server.pid" --logfile "log/46/http_ipv6_server.log" --logdir "log/46" --portfile log/46/server/http_ipv6_server.port --config log/46/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 86139 port 44225 * pid http-ipv6 => 86139 86139 test 0240...[HTTP-IPv6 GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind240 ../src/curl -q --output log/46/curl240.out --include --trace-ascii log/46/trace240 --trace-config all --trace-time -g "http://[::1]:44225/240" > log/46/stdout240 2> log/46/stderr240 240: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 240 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind240 ../src/curl -q --output log/46/curl240.out --include --trace-ascii log/46/trace240 --trace-config all --trace-time -g "http://[::1]:44225/240" > log/46/stdout240 2> log/46/stderr240 === End of file commands.log === Start of file http_ipv6_server.log 09:40:39.037355 Running HTTP IPv6 version on port 44225 09:40:39.038212 Wrote pid 86139 to log/46/server/http_ipv6_server.pid 09:40:39.038661 Wrote port 44225 to log/46/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 240 === End of file server.cmd === Start of file valgrind240 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind240 test 0268...[JSON encoding of Unicode string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind268 ../src/curl -q --output log/19/curl268.out --include --trace-ascii log/19/trace268 --trace-config all --trace-time http://127.0.0.1:35697/268 --variable hello@log/19/junk --expand-data {{hello:json}} > log/19/stdout268 2> log/19/stderr268 268: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 268 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind268 ../src/curl -q --output log/19/curl268.out --include --trace-ascii log/19/trace268 --trace-config all --trace-time http://127.0.0.1:35697/268 --variable hello@log/19/junk --expand-data {{hello:json}} > log/19/stdout268 2> log/19/stderr268 === End of file commands.log === Start of file http_server.log 09:40:40.865001 ====> Client connect 09:40:40.865383 accept_connection 3 returned 4 09:40:40.865659 accept_connection 3 returned 0 09:40:40.865802 Read 93 bytes 09:40:40.865911 Process 93 bytes request 09:40:40.866005 Got request: GET /verifiedserver HTTP/1.1 09:40:40.866097 Are-we-friendly question received 09:40:40.866354 Wrote request (93 bytes) input to log/19/server.input 09:40:40.866655 Identifying ourselves as friends 09:40:40.871731 Response sent (56 bytes) and written to log/19/server.response 09:40:40.871873 special request received, no persistency 09:40:40.871986 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file junk “ === End of file junk === Start of file server.cmd Testnum 268 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind268 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind268 test 0261...[FTP RETR with 226 response code to TYPE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind261 ../src/curl -q --output log/60/curl261.out --include --trace-ascii log/60/trace261 --trace-config all --trace-time ftp://127.0.0.1:41385/261 > log/60/stdout261 2> log/60/stderr261 261: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 261 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind261 ../src/curl -q --output log/60/curl261.out --include --trace-ascii log/60/trace261 --trace-config all --trace-time ftp://127.0.0.1:41385/261 > log/60/stdout261 2> log/60/stderr261 === End of file commands.log === Start of file ftp_server.log 09:40:40.340393 ====> Client connect 09:40:40.343388 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:40.345377 < "USER anonymous" 09:40:40.347315 > "331 We are happy you popped in![CR][LF]" 09:40:40.348106 < "PASS ftp@example.com" 09:40:40.348474 > "230 Welcome you silly person[CR][LF]" 09:40:40.350530 < "PWD" 09:40:40.351258 > "257 "/" is current directory[CR][LF]" 09:40:40.415350 < "EPSV" 09:40:40.415694 ====> Passive DATA channel requested by client 09:40:40.415990 DATA sockfilt for passive data channel starting... 09:40:40.461737 DATA sockfilt for passive data channel started (pid 87635) 09:40:40.465190 DATA sockfilt for passive data channel listens on port 34035 09:40:40.465818 > "229 Entering Passive Mode (|||34035|)[LF]" 09:40:40.466050 Client has been notified that DATA conn will be accepted on port 34035 09:40:40.471408 Client connects to port 34035 09:40:40.471719 ====> Client established passive DATA connection on port 34035 09:40:40.472636 < "TYPE I" 09:40:40.473155 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:40.477204 < "SIZE verifiedserver" 09:40:40.480121 > "213 17[CR][LF]" 09:40:40.482406 < "RETR verifiedserver" 09:40:40.485906 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:40.486825 =====> Closing passive DATA connection... 09:40:40.487076 Server disconnects passive DATA connection 09:40:40.490088 Server disconnected passive DATA connection 09:40:40.490355 DATA sockfilt for passive data channel quits (pid 87635) 09:40:40.499971 DATA sockfilt for passive data channel quit (pid 87635) 09:40:40.500230 =====> Closed passive DATA connection 09:40:40.500553 > "226 File transfer complete[CR][LF]" 09:40:40.529971 < "QUIT" 09:40:40.530482 > "221 bye bye baby[CR][LF]" 09:40:40.540249 MAIN sockfilt said DISC 09:40:40.540713 ====> Client disconnected 09:40:40.541711 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:40.593228 ====> Client connect 09:40:40.595503 Received DATA (on stdin) 09:40:40.595671 > 160 bytes data, server => client 09:40:40.595876 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:40.596013 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:40.596100 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:40.597732 < 16 bytes data, client => server 09:40:40.597879 'USER anonymous\r\n' 09:40:40.599557 Received DATA (on stdin) 09:40:40.599716 > 33 bytes data, server => client 09:40:40.599909 '331 We are happy you popped in!\r\n' 09:40:40.600580 < 22 bytes data, client => server 09:40:40.600727 'PASS ftp@example.com\r\n' 09:40:40.602536 Received DATA (on stdin) 09:40:40.602682 > 30 bytes data, server => client 09:40:40.602770 '230 Welcome you silly person\r\n' 09:40:40.603360 < 5 bytes data, client => server 09:40:40.603573 'PWD\r\n' 09:40:40.605738 Received DATA (on stdin) 09:40:40.605997 > 30 bytes data, server => client 09:40:40.606103 '257 "/" is current directory\r\n' 09:40:40.647999 < 6 bytes data, client => server 09:40:40.648200 'EPSV\r\n' 09:40:40.720941 Received DATA (on stdin) 09:40:40.721118 > 38 bytes data, server => client 09:40:40.721209 '229 Entering Passive Mode (|||34035|)\n' 09:40:40.722648 < 8 bytes data, client => server 09:40:40.722802 'TYPE I\r\n' 09:40:40.728574 Received DATA (on stdin) 09:40:40.728726 > 33 bytes data, server => client 09:40:40.728878 '200 I modify TYPE as you wanted\r\n' 09:40:40.730068 < 21 bytes data, client => server 09:40:40.730220 'SIZE verifiedserver\r\n' 09:40:40.732668 Received DATA (on stdin) 09:40:40.732833 > 8 bytes data, server => client 09:40:40.733009 '213 17\r\n' 09:40:40.734203 < 21 bytes data, client => server 09:40:40.734336 'RETR verifiedserver\r\n' 09:40:40.740999 Received DATA (on stdin) 09:40:40.741140 > 29 bytes data, server => client 09:40:40.741227 '150 Binary junk (17 bytes).\r\n' 09:40:40.755620 Received DATA (on stdin) 09:40:40.755786 > 28 bytes data, server => client 09:40:40.755867 '226 File transfer complete\r\n' 09:40:40.782376 < 6 bytes data, client => server 09:40:40.782619 'QUIT\r\n' 09:40:40.784637 Received DATA (on stdin) 09:40:40.784790 > 18 bytes data, server => client 09:40:40.784884 '221 bye bye baby\r\n' 09:40:40.789587 ====> Client disconnect 09:40:40.795913 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:40.713903 Running IPv4 version 09:40:40.714392 Listening on port 34035 09:40:40.714911 Wrote pid 87635 to log/60/server/ftp_sockdata.pid 09:40:40.715170 Received PING (on stdin) 09:40:40.715931 Received PORT (on stdin) 09:40:40.724803 ====> Client connect 09:40:40.741611 Received DATA (on stdin) 09:40:40.741764 > 17 bytes data, server => client 09:40:40.741847 'WE ROOLZ: 78622\r\n' 09:40:40.742122 Received DISC (on stdin) 09:40:40.742408 ====> Client forcibly disconnected 09:40:40.745100 Received QUIT (on stdin) 09:40:40.745278 quits 09:40:40.745807 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY TYPE 226 Kind of on the positive side Testnum 261 === End of file server.cmd === Start of file valgrind261 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind261 test 0262...[Reject HTTP response with binary zero in header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind265 ../src/curl -q --output log/41/curl265.out --include --trace-ascii log/41/trace265 --trace-config all --trace-time http://test.remote.example.com.265:35093/path/2650002 --proxy http://127.0.0.1:35093 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/41/stdout265 2> log/41/stderr265 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind252 ../src/curl -q --output log/48/curl252.out --include --trace-ascii log/48/trace252 --trace-config all --trace-time -g "ftp://[::1]:32917/" > log/48/stdout252 2> log/48/stderr252 num-callers=16 --log-file=log/62/valgrind262 ../src/curl -q --output log/62/curl262.out --include --trace-ascii log/62/trace262 --trace-config all --trace-time http://127.0.0.1:38899/262 > log/62/stdout262 2> log/62/stderr262 262: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 262 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind262 ../src/curl -q --output log/62/curl262.out --include --trace-ascii log/62/trace262 --trace-config all --trace-time http://127.0.0.1:38899/262 > log/62/stdout262 2> log/62/stderr262 === End of file commands.log === Start of file http_server.log 09:40:40.669832 ====> Client connect 09:40:40.670119 accept_connection 3 returned 4 09:40:40.670282 accept_connection 3 returned 0 09:40:40.673283 Read 93 bytes 09:40:40.673526 Process 93 bytes request 09:40:40.673645 Got request: GET /verifiedserver HTTP/1.1 09:40:40.673761 Are-we-friendly question received 09:40:40.674017 Wrote request (93 bytes) input to log/62/server.input 09:40:40.674199 Identifying ourselves as friends 09:40:40.674977 Response sent (56 bytes) and written to log/62/server.response 09:40:40.675085 special request received, no persistency 09:40:40.675166 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 262 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind262 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind262 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/50/server/http_ipv6_server.pid" --logfile "log/50/http_ipv6_server.log" --logdir "log/50" --portfile log/50/server/http_ipv6_server.port --config log/50/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 86175 port 33399 * pid http-ipv6 => 86175 86175 test 0242...[HTTP-IPv6 GET with username+password in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind242 ../src/curl -q --output log/50/curl242.out --include --trace-ascii log/50/trace242 --trace-config all --trace-time -g "http://foobar:barfoo@[::1]:33399/242" > log/50/stdout242 2> log/50/stderr242 242: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 242 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind242 ../src/curl -q --output log/50/curl242.out --include --trace-ascii log/50/trace242 --trace-config all --trace-time -g "http://foobar:barfoo@[::1]:33399/242" > log/50/stdout242 2> log/50/stderr242 === End of file commands.log === Start of file http_ipv6_server.log 09:40:39.194338 Running HTTP IPv6 version on port 33399 09:40:39.195179 Wrote pid 86175 to log/50/server/http_ipv6_server.pid 09:40:39.195740 Wrote port 33399 to log/50/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 242 === End of file server.cmd === Start of file valgrind242 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind242 test 0300 SKIPPED: no stunnel test 0301 SKIPPED: no stunnel test 0302 SKIPPED: no stunnel test 0265...[HTTP proxy CONNECT auth NTLM and then POST, response-body in the 407] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind265 ../src/curl -q --output log/41/curl265.out --include --trace-ascii log/41/trace265 --trace-config all --trace-time http://test.remote.example.com.265:35093/path/2650002 --proxy http://127.0.0.1:35093 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/41/stdout265 2> log/41/stderr265 265: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 265 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind265 ../src/curl -q --output log/41/curl265.out --include --trace-ascii log/41/trace265 --trace-config all --trace-time http://test.remote.example.com.265:35093/path/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind253 ../src/curl -q --output log/44/curl253.out --include --trace-ascii log/44/trace253 --trace-config all --trace-time -g "ftp://[::1]:42753/" -P - > log/44/stdout253 2> log/44/stderr253 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind259 ../src/curl -q --output log/52/curl259.out --include --trace-ascii log/52/trace259 --trace-config all --trace-time -x http://127.0.0.1:40089 http://remotehost:54321/we/want/259 -F name=daniel -F tool=curl -F file=@log/52/test259.txt -U uuuser:pppassword --proxy-anyauth -H "Expect: 100-continue" > log/52/stdout259 2> log/52/stderr259 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind255 ../src/curl -q --output log/57/curl255.out --include --trace-ascii log/57/trace255 --trace-config all --trace-time -g "ftp://[::1]:35147/" -P - --disable-eprt > log/57/stdout255 2> log/57/stderr255 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind248 ../src/curl -q --output log/17/curl248.out --include --trace-ascii log/17/trace248 --trace-config all --trace-time ftp://127.0.0.1:33875/248 -T log/17/test248.txt -z "apr 1 2005 08:00:00" > log/17/stdout248 2> log/17/stderr248 2650002 --proxy http://127.0.0.1:35093 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/41/stdout265 2> log/41/stderr265 === End of file commands.log === Start of file http_server.log 09:40:40.682371 ====> Client connect 09:40:40.682970 accept_connection 3 returned 4 09:40:40.683184 accept_connection 3 returned 0 09:40:40.686814 Read 93 bytes 09:40:40.687007 Process 93 bytes request 09:40:40.687153 Got request: GET /verifiedserver HTTP/1.1 09:40:40.687320 Are-we-friendly question received 09:40:40.687790 Wrote request (93 bytes) input to log/41/server.input 09:40:40.688064 Identifying ourselves as friends 09:40:40.691238 Response sent (56 bytes) and written to log/41/server.response 09:40:40.691512 special request received, no persistency 09:40:40.691647 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 265 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind265 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind265 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/44/server/ftp_ipv6_server.pid" --logfile "log/44/ftp_ipv6_server.log" --logdir "log/44" --portfile "log/44/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 42753 (log/44/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 86560 port 42753 * pid ftp-ipv6 => 86560 86560 test 0253...[FTP IPv6 dir list with EPRT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind253 ../src/curl -q --output log/44/curl253.out --include --trace-ascii log/44/trace253 --trace-config all --trace-time -g "ftp://[::1]:42753/" -P - > log/44/stdout253 2> log/44/stderr253 253: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 253 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind253 ../src/curl -q --output log/44/curl253.out --include --trace-ascii log/44/trace253 --trace-config all --trace-time -g "ftp://[::1]:42753/" -P - > log/44/stdout253 2> log/44/stderr253 === End of file commands.log === Start of file ftp_ipv6_server.log 09:40:40.411845 FTP server listens on port IPv6/42753 09:40:40.412849 logged pid 86560 in log/44/server/ftp_ipv6_server.pid 09:40:40.413147 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 09:40:40.663067 Running IPv6 version 09:40:40.663719 Listening on port 42753 09:40:40.664247 Wrote pid 87592 to log/44/server/ftp_ipv6_sockctrl.pid 09:40:40.664727 Wrote port 42753 to log/44/server/ftp_ipv6_server.port 09:40:40.664902 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 253 === End of file server.cmd === Start of file valgrind253 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind253 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/48/server/ftp_ipv6_server.pid" --logfile "log/48/ftp_ipv6_server.log" --logdir "log/48" --portfile "log/48/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 32917 (log/48/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 86581 port 32917 * pid ftp-ipv6 => 86581 86581 test 0252...[FTP IPv6 dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind252 ../src/curl -q --output log/48/curl252.out --include --trace-ascii log/48/trace252 --trace-config all --trace-time -g "ftp://[::1]:32917/" > log/48/stdout252 2> log/48/stderr252 252: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 252 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind252 ../src/curl -q --output log/48/curl252.out --include --trace-ascii log/48/trace252 --trace-config all --trace-time -g "ftp://[::1]:32917/" > log/48/stdout252 2> log/48/stderr252 === End of file commands.log === Start of file ftp_ipv6_server.log 09:40:40.441543 FTP server listens on port IPv6/32917 09:40:40.442535 logged pid 865CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind278 ../src/curl -q --output log/20/curl278.out --include --trace-ascii log/20/trace278 --trace-config all --trace-time http://we.want.that.site.com/278 -x http://f%61ke:@127.0.0.1:45475 > log/20/stdout278 2> log/20/stderr278 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind254 ../src/curl -q --output log/42/curl254.out --include --trace-ascii log/42/trace254 --trace-config all --trace-time -g "ftp://[::1]:40823/" --disable-epsv > log/42/stdout254 2> log/42/stderr254 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind274 ../src/curl -q --output log/49/curl274.out --include --trace-ascii log/49/trace274 --trace-config all --trace-time http://127.0.0.1:42667/want/274 -L --max-redirs 0 > log/49/stdout274 2> log/49/stderr274 81 in log/48/server/ftp_ipv6_server.pid 09:40:40.442887 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 09:40:40.691693 Running IPv6 version 09:40:40.693500 Listening on port 32917 09:40:40.694063 Wrote pid 87628 to log/48/server/ftp_ipv6_sockctrl.pid 09:40:40.694421 Wrote port 32917 to log/48/server/ftp_ipv6_server.port 09:40:40.694699 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 252 === End of file server.cmd === Start of file valgrind252 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind252 test 0259...[HTTP POST multipart with Expect: header using proxy anyauth (Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind259 ../src/curl -q --output log/52/curl259.out --include --trace-ascii log/52/trace259 --trace-config all --trace-time -x http://127.0.0.1:40089 http://remotehost:54321/we/want/259 -F name=daniel -F tool=curl -F file=@log/52/test259.txt -U uuuser:pppassword --proxy-anyauth -H "Expect: 100-continue" > log/52/stdout259 2> log/52/stderr259 259: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 259 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind259 ../src/curl -q --output log/52/curl259.out --include --trace-ascii log/52/trace259 --trace-config all --trace-time -x http://127.0.0.1:40089 http://remotehost:54321/we/want/259 -F name=daniel -F tool=curl -F file=@log/52/test259.txt -U uuuser:pppassword --proxy-anyauth -H "Expect: 100-continue" > log/52/stdout259 2> log/52/stderr259 === End of file commands.log === Start of file http_server.log 09:40:40.509608 ====> Client connect 09:40:40.509943 accept_connection 3 returned 4 09:40:40.510120 accept_connection 3 returned 0 09:40:40.510286 Read 93 bytes 09:40:40.510391 Process 93 bytes request 09:40:40.510561 Got request: GET /verifiedserver HTTP/1.1 09:40:40.510657 Are-we-friendly question received 09:40:40.510894 Wrote request (93 bytes) input to log/52/server.input 09:40:40.511076 Identifying ourselves as friends 09:40:40.515720 Response sent (56 bytes) and written to log/52/server.response 09:40:40.515833 special request received, no persistency 09:40:40.515897 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 259 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file test259.txt foo- This is a moo- bar === End of file test259.txt === Start of file valgrind259 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind259 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/17/server/ftp_server.pid" --logfile "log/17/ftp_server.log" --logdir "log/17" --portfile "log/17/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33875 (log/17/server/ftp_server.port) RUN: FTP server is PID 86383 port 33875 * pid ftp => 86383 86383 test 0248...[FTP upload time condition evaluates FALSE => upload anyway] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind248 ../src/curl -q --output log/17/curl248.out --include --trace-ascii log/17/trace248 --trace-config all --trace-time ftp://127.0.0.1:33875/248 -T log/17/test248.txt -z "apr 1 2005 08:00:00" > log/17/stdout248 2> log/17/stderr248 248: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 248 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind248 ../src/curl -q --output log/17/curl248.out --include --trace-ascii log/17/trace248 --trace-config all --trace-time ftp://127.0.0.1:33875/248 -T log/17/test248.txt -z "apr 1 2005 08:00:00" > log/17/stdout248 2> log/17/stderr248 === End of file commands.log === Start of file ftp_server.log 09:40:40.352420 FTP server listens on port IPv4/33875 09:40:40.353452 logged pid 86383 in log/17/server/ftp_server.pid 09:40:40.354121 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:40.602929 Running IPv4 version 09:40:40.603627 Listening on port 33875 09:40:40.604162 Wrote pid 87513 to log/17/server/ftp_sockctrl.pid 09:40:40.604789 Wrote port 33875 to log/17/server/ftp_server.port 09:40:40.605064 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 248 === End of file server.cmd === Start of file test248.txt data to see that FTP works so does it? === End of file test248.txt === Start of file valgrind248 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind248 test 0278...[HTTP with proxy string including http:// and user+empty password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind278 ../src/curl -q --output log/20/curl278.out --include --trace-ascii log/20/trace278 --trace-config all --trace-time http://we.want.that.site.com/278 -x http://f%61ke:@127.0.0.1:45475 > log/20/stdout278 2> log/20/stderr278 278: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 278 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind278 ../src/curl -q --output log/20/curl278.out --include --trace-ascii log/20/trace278 --trace-config all --trace-time http://we.want.that.site.com/278 -x http://f%61ke:@127.0.0.1:45475 > log/20/stdout278 2> log/20/stderr278 === End of file commands.log === Start of file http_server.log 09:40:41.150385 ====> Client connect 09:40:41.150840 accept_connection 3 returned 4 09:40:41.151010 accept_connection 3 returned 0 09:40:41.151130 Read 93 bytes 09:40:41.151224 Process 93 bytes request 09:40:41.151304 Got request: GET /verifiedserver HTTP/1.1 09:40:41.151378 Are-we-friendly question received 09:40:41.151720 Wrote request (93 bytes) input to log/20/server.input 09:40:41.151933 Identifying ourselves as friends 09:40:41.153559 Response sent (56 bytes) and written to log/20/server.response 09:40:41.153692 special request received, no persistency 09:40:41.153772 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 278 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind278 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind278 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/57/server/ftp_ipv6_server.pid" --logfile "log/57/ftp_ipv6_server.log" --logdir "log/57" --portfile "log/57/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 35147 (log/57/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 86620 port 35147 * pid ftp-ipv6 => 86620 86620 test 0255...[FTP IPv6 dir list with EPRT and --disable-eprt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind255 ../src/curl -q --output log/57/curl255.out --include --trace-ascii log/57/trace255 --trace-config all --trace-time -g "ftp://[::1]:35147/" -P - --disable-eprt > log/57/stdout255 2> log/57/stderr255 255: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 255 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind255 ../src/curl -q --output log/57/curl255.out --include --trace-ascii log/57/trace255 --trace-config all --trace-time -g "ftp://[::1]:35147/" -P - --disable-eprt > log/57/stdout255 2> log/57/stderr255 === End of file commands.log === Start of file ftp_ipv6_server.log 09:40:40.443810 FTP server listens on port IPv6/35147 09:40:40.444959 logged pid 86620 in log/57/server/ftp_ipv6_server.pid 09:40:40.445274 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 09:40:40.693743 Running IPv6 version 09:40:40.694345 Listening on port 35147 09:40:40.695921 Wrote pid 87625 to log/57/server/ftp_ipv6_sockctrl.pid 09:40:40.696289 Wrote port 35147 to log/57/server/ftp_ipv6_server.port 09:40:40.696569 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 255 === End of file server.cmd === Start of file valgrind255 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind267 ../src/curl -q --output log/27/curl267.out --include --trace-ascii log/27/trace267 --trace-config all --trace-time http://127.0.0.1:42323/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no" > log/27/stdout267 2> log/27/stderr267 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind273 ../src/curl -q --output log/53/curl273.out --include --trace-ascii log/53/trace273 --trace-config all --trace-time http://127.0.0.1:34639/273 -u testuser:testpass --digest > log/53/stdout273 2> log/53/stderr273 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind277 ../src/curl -q --output log/36/curl277.out --include --trace-ascii log/36/trace277 --trace-config all --trace-time http://127.0.0.1:44255/want/277 -F name=daniel -H "Content-Type: text/info" > log/36/stdout277 2> log/36/stderr277 d: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind255 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/42/server/ftp_ipv6_server.pid" --logfile "log/42/ftp_ipv6_server.log" --logdir "log/42" --portfile "log/42/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 40823 (log/42/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 86585 port 40823 * pid ftp-ipv6 => 86585 86585 test 0254...[FTP IPv6 dir list PASV and --disable-epsv] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind254 ../src/curl -q --output log/42/curl254.out --include --trace-ascii log/42/trace254 --trace-config all --trace-time -g "ftp://[::1]:40823/" --disable-epsv > log/42/stdout254 2> log/42/stderr254 254: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 254 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind254 ../src/curl -q --output log/42/curl254.out --include --trace-ascii log/42/trace254 --trace-config all --trace-time -g "ftp://[::1]:40823/" --disable-epsv > log/42/stdout254 2> log/42/stderr254 === End of file commands.log === Start of file ftp_ipv6_server.log 09:40:40.442547 FTP server listens on port IPv6/40823 09:40:40.443485 logged pid 86585 in log/42/server/ftp_ipv6_server.pid 09:40:40.443730 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 09:40:40.694075 Running IPv6 version 09:40:40.694718 Listening on port 40823 09:40:40.695120 Wrote pid 87630 to log/42/server/ftp_ipv6_sockctrl.pid 09:40:40.695521 Wrote port 40823 to log/42/server/ftp_ipv6_server.port 09:40:40.695719 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 254 === End of file server.cmd === Start of file valgrind254 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind254 test 0274...[HTTP Location: following with --max-redirs 0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind274 ../src/curl -q --output log/49/curl274.out --include --trace-ascii log/49/trace274 --trace-config all --trace-time http://127.0.0.1:42667/want/274 -L --max-redirs 0 > log/49/stdout274 2> log/49/stderr274 274: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 274 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind274 ../src/curl -q --output log/49/curl274.out --include --trace-ascii log/49/trace274 --trace-config all --trace-time http://127.0.0.1:42667/want/274 -L --max-redirs 0 > log/49/stdout274 2> log/49/stderr274 === End of file commands.log === Start of file http_server.log 09:40:41.228834 ====> Client connect 09:40:41.229140 accept_connection 3 returned 4 09:40:41.229298 accept_connection 3 returned 0 09:40:41.230211 Read 93 bytes 09:40:41.230362 Process 93 bytes request 09:40:41.230581 Got request: GET /verifiedserver HTTP/1.1 09:40:41.230707 Are-we-friendly question received 09:40:41.230962 Wrote request (93 bytes) input to log/49/server.input 09:40:41.231233 Identifying ourselves as friends 09:40:41.238660 Response sent (56 bytes) and written to log/49/server.response 09:40:41.238781 special request received, no persistency 09:40:41.238858 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 274 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind274 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind274 test 0267...[HTTP POST with NTLM authorization and added custom headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind267 ../src/curl -q --output log/27/curl267.out --include --trace-ascii log/27/trace267 --trace-config all --trace-time http://127.0.0.1:42323/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no" > log/27/stdout267 2> log/27/stderr267 267: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 267 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind267 ../src/curl -q --output log/27/curl267.out --include --trace-ascii log/27/trace267 --trace-config all --trace-time http://127.0.0.1:42323/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no" > log/27/stdout267 2> log/27/stderr267 === End of file commands.log === Start of file http_server.log 09:40:40.776939 ====> Client connect 09:40:40.777237 accept_connection 3 returned 4 09:40:40.777388 accept_connection 3 returned 0 09:40:40.777596 Read 93 bytes 09:40:40.777707 Process 93 bytes request 09:40:40.777797 Got request: GET /verifiedserver HTTP/1.1 09:40:40.777872 Are-we-friendly question received 09:40:40.778096 Wrote request (93 bytes) input to log/27/server.input 09:40:40.778343 Identifying ourselves as friends 09:40:40.780231 Response sent (56 bytes) and written to log/27/server.response 09:40:40.780345 special request received, no persistency 09:40:40.780409 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 267 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind267 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind267 test 0277...[HTTP RFC1867-type formposting with custom Content-Type] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind277 ../src/curl -q --output log/36/curl277.out --include --trace-ascii log/36/trace277 --trace-config all --trace-time http://127.0.0.1:44255/want/277 -F name=daniel -H "Content-Type: text/info" > log/36/stdout277 2> log/36/stderr277 277: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 277 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind277 ../src/curl -q --output log/36/curl277.out --include --trace-ascii log/36/trace277 --trace-config all --trace-time http://127.0.0.1:44255/want/277 -F name=daniel -H "Content-Type: text/info" > log/36/stdout277 2> log/36/stderr277 === End of file commands.log === Start of file http_server.log 09:40:41.299386 ====> Client connect 09:40:41.299885 accept_connection 3 returned 4 09:40:41.300078 accept_connection 3 returned 0 09:40:41.300219 Read 93 bytes 09:40:41.300331 Process 93 bytes request 09:40:41.300430 Got request: GET /verifiedserver HTTP/1.1 09:40:41.300627 Are-we-friendly question received 09:40:41.300875 Wrote request (93 bytes) input to log/36/server.input 09:40:41.301206 Identifying ourselves as friends 09:40:41.302154 Response sent (56 bytes) and written to log/36/server.response 09:40:41.302285 special request received, no persistency 09:40:41.302369 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 277 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind277 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind276 ../src/curl -q --output log/14/curl276.out --include --trace-ascii log/14/trace276 --trace-config all --trace-time "http://127.0.0.1:43309/want?uri=http://anything/276?secondq/276" -L > log/14/stdout276 2> log/14/stderr276 d: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind277 test 0273...[HTTP with two Digest authorization headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind273 ../src/curl -q --output log/53/curl273.out --include --trace-ascii log/53/trace273 --trace-config all --trace-time http://127.0.0.1:34639/273 -u testuser:testpass --digest > log/53/stdout273 2> log/53/stderr273 273: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 273 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind273 ../src/curl -q --output log/53/curl273.out --include --trace-ascii log/53/trace273 --trace-config all --trace-time http://127.0.0.1:34639/273 -u testuser:testpass --digest > log/53/stdout273 2> log/53/stderr273 === End of file commands.log === Start of file http_server.log 09:40:41.079405 ====> Client connect 09:40:41.079929 accept_connection 3 returned 4 09:40:41.080104 accept_connection 3 returned 0 09:40:41.080232 Read 93 bytes 09:40:41.080361 Process 93 bytes request 09:40:41.080562 Got request: GET /verifiedserver HTTP/1.1 09:40:41.080754 Are-we-friendly question received 09:40:41.081094 Wrote request (93 bytes) input to log/53/server.input 09:40:41.081331 Identifying ourselves as friends 09:40:41.082365 Response sent (56 bytes) and written to log/53/server.response 09:40:41.086688 special request received, no persistency 09:40:41.086793 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 273 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind273 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind273 test 0320 SKIPPED: no gnutls-serv (with SRP support) test 0321 SKIPPED: no gnutls-serv (with SRP support) test 0324 SKIPPED: no gnutls-serv (with SRP support) test 0276...[HTTP Location: following with multiple question marks in URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind276 ../src/curl -q --output log/14/curl276.out --include --trace-ascii log/14/trace276 --trace-config all --trace-time "http://127.0.0.1:43309/want?uri=http://anything/276?secondq/276" -L > log/14/stdout276 2> log/14/stderr276 276: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 276 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind276 ../src/curl -q --output log/14/curl276.out --include --trace-ascii log/14/trace276 --trace-config all --trace-time "http://127.0.0.1:43309/want?uri=http://anything/276?secondq/276" -L > log/14/stdout276 2> log/14/stderr276 === End of file commands.log === Start of file http_server.log 09:40:41.154841 ====> Client connect 09:40:41.155122 accept_connection 3 returned 4 09:40:41.155289 accept_connection 3 returned 0 09:40:41.156098 Read 93 bytes 09:40:41.156248 Process 93 bytes request 09:40:41.156343 Got request: GET /verifiedserver HTTP/1.1 09:40:41.156536 Are-we-friendly question received 09:40:41.156846 Wrote request (93 bytes) input to log/14/server.input 09:40:41.157082 Identifying ourselves as friends 09:40:41.157787 Response sent (56 bytes) and written to log/14/server.response 09:40:41.157972 special request received, no persistency 09:40:41.158049 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 276 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind276 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a correspondiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind280 ../src/curl -q --output log/56/curl280.out --include --trace-ascii log/56/trace280 --trace-config all --trace-time ftp://127.0.0.1:36539/280/ --ftp-alternative-to-user "USER replacement" > log/56/stdout280 2> log/56/stderr280 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind271 ../src/curl -q --output log/38/curl271.out --include --trace-ascii log/38/trace271 --trace-config all --trace-time tftp://127.0.0.1:40279//271 > log/38/stdout271 2> log/38/stderr271 ng 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind276 test 0280...[FTP --ftp-alternative-to-user on USER failure] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind280 ../src/curl -q --output log/56/curl280.out --include --trace-ascii log/56/trace280 --trace-config all --trace-time ftp://127.0.0.1:36539/280/ --ftp-alternative-to-user "USER replacement" > log/56/stdout280 2> log/56/stderr280 280: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 280 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind280 ../src/curl -q --output log/56/curl280.out --include --trace-ascii log/56/trace280 --trace-config all --trace-time ftp://127.0.0.1:36539/280/ --ftp-alternative-to-user "USER replacement" > log/56/stdout280 2> log/56/stderr280 === End of file commands.log === Start of file ftp_server.log 09:40:41.182069 ====> Client connect 09:40:41.184503 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:41.187243 < "USER anonymous" 09:40:41.188094 > "331 We are happy you popped in![CR][LF]" 09:40:41.190430 < "PASS ftp@example.com" 09:40:41.190952 > "230 Welcome you silly person[CR][LF]" 09:40:41.193652 < "PWD" 09:40:41.194498 > "257 "/" is current directory[CR][LF]" 09:40:41.197259 < "EPSV" 09:40:41.197652 ====> Passive DATA channel requested by client 09:40:41.197940 DATA sockfilt for passive data channel starting... 09:40:41.212590 DATA sockfilt for passive data channel started (pid 88704) 09:40:41.213640 DATA sockfilt for passive data channel listens on port 39197 09:40:41.214165 > "229 Entering Passive Mode (|||39197|)[LF]" 09:40:41.214422 Client has been notified that DATA conn will be accepted on port 39197 09:40:41.215825 Client connects to port 39197 09:40:41.216184 ====> Client established passive DATA connection on port 39197 09:40:41.217079 < "TYPE I" 09:40:41.217459 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:41.219328 < "SIZE verifiedserver" 09:40:41.220879 > "213 17[CR][LF]" 09:40:41.222079 < "RETR verifiedserver" 09:40:41.223559 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:41.224527 =====> Closing passive DATA connection... 09:40:41.224974 Server disconnects passive DATA connection 09:40:41.225550 Server disconnected passive DATA connection 09:40:41.226131 DATA sockfilt for passive data channel quits (pid 88704) 09:40:41.228207 DATA sockfilt for passive data channel quit (pid 88704) 09:40:41.228445 =====> Closed passive DATA connection 09:40:41.229369 > "226 File transfer complete[CR][LF]" 09:40:41.266812 < "QUIT" 09:40:41.267234 > "221 bye bye baby[CR][LF]" 09:40:41.277260 MAIN sockfilt said DISC 09:40:41.278897 ====> Client disconnected 09:40:41.279423 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:41.435015 ====> Client connect 09:40:41.437126 Received DATA (on stdin) 09:40:41.437282 > 160 bytes data, server => client 09:40:41.437557 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:41.437714 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:41.437797 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:41.439835 < 16 bytes data, client => server 09:40:41.440007 'USER anonymous\r\n' 09:40:41.442130 Received DATA (on stdin) 09:40:41.442260 > 33 bytes data, server => client 09:40:41.442351 '331 We are happy you popped in!\r\n' 09:40:41.443150 < 22 bytes data, client => server 09:40:41.443293 'PASS ftp@example.com\r\n' 09:40:41.445106 Received DATA (on stdin) 09:40:41.445284 > 30 bytes data, server => client 09:40:41.445400 '230 Welcome you silly person\r\n' 09:40:41.446365 < 5 bytes data, client => server 09:40:41.446601 'PWD\r\n' 09:40:41.447833 Received DATA (on stdin) 09:40:41.447979 > 30 bytes data, server => client 09:40:41.448589 '257 "/" is current directory\r\n' 09:40:41.449762 < 6 bytes data, client => server 09:40:41.450000 'EPSV\r\n' 09:40:41.467891 Received DATA (on stdin) 09:40:41.468049 > 38 bytes data, server => client 09:40:41.468136 '229 Entering Passive Mode (|||39197|)\n' 09:40:41.469385 < 8 bytes data, client => server 09:40:41.469615 'TYPE I\r\n' 09:40:41.471189 Received DATA (on stdin) 09:40:41.471348 > 33 bytes data, server => client 09:40:41.471525 '200 I modify TYPE as you wanted\r\n' 09:40:41.472171 < 21 bytes data, client => server 09:40:41.472305 'SIZE verifiedserver\r\n' 09:40:41.473529 Received DATA (on stdin) 09:40:41.473678 > 8 bytes data, server => client 09:40:41.473852 '213 17\r\n' 09:40:41.474922 < 21 bytes data, client => server 09:40:41.475060 'RETR verifiedserver\r\n' 09:40:41.476188 Received DATA (on stdin) 09:40:41.476339 > 29 bytes data, server => client 09:40:41.476593 '150 Binary junk (17 bytes).\r\n' 09:40:41.482430 Received DATA (on stdin) 09:40:41.482638 > 28 bytes data, server => client 09:40:41.482816 '226 File transfer complete\r\n' 09:40:41.519346 < 6 bytes data, client => server 09:40:41.519628 'QUIT\r\n' 09:40:41.521411 Received DATA (on stdin) 09:40:41.521641 > 18 bytes data, server => client 09:40:41.521739 '221 bye bye baby\r\n' 09:40:41.530671 ====> Client disconnect 09:40:41.531620 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:41.464545 Running IPv4 version 09:40:41.465203 Listening on port 39197 09:40:41.465703 Wrote pid 88704 to log/56/server/ftp_sockdata.pid 09:40:41.465914 Received PING (on stdin) 09:40:41.466825 Received PORT (on stdin) 09:40:41.469171 ====> Client connect 09:40:41.477870 Received DATA (on stdin) 09:40:41.478046 > 17 bytes data, server => client 09:40:41.478136 'WE ROOLZ: 77376\r\n' 09:40:41.478953 Received DISC (on stdin) 09:40:41.479147 ====> Client forcibly disconnected 09:40:41.480195 Received QUIT (on stdin) 09:40:41.480342 quits 09:40:41.480839 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY USER 530 We don't like USER commands COUNT USER 1 Testnum 280 === End of file server.cmd === Start of file valgrind280 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind280 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind272 ../src/curl -q --output log/25/curl272.out --include --trace-ascii log/25/trace272 --trace-config all --trace-time ftp://127.0.0.1:34069/272 -z "2004 jan 1 12:12:12 UTC" > log/25/stdout272 2> log/25/stderr272 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind270 ../src/curl -q --output log/37/curl270.out --include --trace-ascii log/37/trace270 --trace-config all --trace-time ftp://127.0.0.1:40443/270 --ftp-skip-pasv-ip --disable-epsv > log/37/stdout270 2> log/37/stderr270 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind281 ../src/curl -q --output log/61/curl281.out --include --trace-ascii log/61/trace281 --trace-config all --trace-time http://127.0.0.1:44381/we/want/281 -f -T log/61/test281.txt > log/61/stdout281 2> log/61/stderr281 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind263 ../src/curl -q --output log/15/curl263.out --include --trace-ascii log/15/trace263 --trace-config all --trace-time -g -x "http://[::1]:35915" http://veryveryremotesite.com/263 > log/15/stdout263 2> log/15/stderr263 idfile "log/38/server/tftp_server.pid" --portfile "log/38/server/tftp_server.port" --logfile "log/38/tftp_server.log" --logdir "log/38" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 87691 port 40279 * pid tftp => 87691 87691 test 0271...[TFTP retrieve] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind271 ../src/curl -q --output log/38/curl271.out --include --trace-ascii log/38/trace271 --trace-config all --trace-time tftp://127.0.0.1:40279//271 > log/38/stdout271 2> log/38/stderr271 271: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 271 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind271 ../src/curl -q --output log/38/curl271.out --include --trace-ascii log/38/trace271 --trace-config all --trace-time tftp://127.0.0.1:40279//271 > log/38/stdout271 2> log/38/stderr271 === End of file commands.log === Start of file server.cmd Testnum 271 === End of file server.cmd === Start of file tftp_server.log 09:40:40.980831 Wrote pid 87691 to log/38/server/tftp_server.pid 09:40:40.981530 Wrote port 40279 to log/38/server/tftp_server.port 09:40:40.981727 Running IPv4 version on port UDP/40279 === End of file tftp_server.log === Start of file valgrind271 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind271 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/25/server/ftp_server.pid" --logfile "log/25/ftp_server.log" --logdir "log/25" --portfile "log/25/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34069 (log/25/server/ftp_server.port) RUN: FTP server is PID 87701 port 34069 * pid ftp => 87701 87701 test 0272...[FTP timed conditioned get file with identical time stamp] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind272 ../src/curl -q --output log/25/curl272.out --include --trace-ascii log/25/trace272 --trace-config all --trace-time ftp://127.0.0.1:34069/272 -z "2004 jan 1 12:12:12 UTC" > log/25/stdout272 2> log/25/stderr272 272: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 272 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind272 ../src/curl -q --output log/25/curl272.out --include --trace-ascii log/25/trace272 --trace-config all --trace-time ftp://127.0.0.1:34069/272 -z "2004 jan 1 12:12:12 UTC" > log/25/stdout272 2> log/25/stderr272 === End of file commands.log === Start of file ftp_server.log 09:40:41.210045 FTP server listens on port IPv4/34069 09:40:41.211196 logged pid 87701 in log/25/server/ftp_server.pid 09:40:41.211545 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:41.460266 Running IPv4 version 09:40:41.461607 Listening on port 34069 09:40:41.462170 Wrote pid 88689 to log/25/server/ftp_sockctrl.pid 09:40:41.462750 Wrote port 34069 to log/25/server/ftp_server.port 09:40:41.462930 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 272 === End of file server.cmd === Start of file valgrind272 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind272 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/37/server/ftp_server.pid" --logfile "log/37/ftp_server.log" --logdir "log/37" --portfile "log/37/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40443 (log/37/server/ftp_server.port) RUN: FTP server is PID 87603 port 40443 * pid ftp => 87603 87603 test 0270...[FTP RETR PASV --ftp-skip-pasv-ip] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind270 ../src/curl -q --output log/37/curl270.out --include --trace-ascii log/37/trace270 --trace-config all --trace-time ftp://127.0.0.1:40443/270 --ftp-skip-pasv-ip --disable-epsv > log/37/stdout270 2> log/37/stderr270 270: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 270 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind270 ../src/curl -q --output log/37/curl270.out --include --trace-ascii log/37/trace270 --trace-config all --trace-time ftp://127.0.0.1:40443/270 --ftp-skip-pasv-ip --disable-epsv > log/37/stdout270 2> log/37/stderr270 === End of file commands.log === Start of file ftp_server.log 09:40:41.256979 FTP server listens on port IPv4/40443 09:40:41.259456 logged pid 87603 in log/37/server/ftp_server.pid 09:40:41.259723 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:41.501772 Running IPv4 version 09:40:41.502381 Listening on port 40443 09:40:41.504672 Wrote pid 88732 to log/37/server/ftp_sockctrl.pid 09:40:41.505026 Wrote port 40443 to log/37/server/ftp_server.port 09:40:41.509609 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd PASVBADIP Testnum 270 === End of file server.cmd === Start of file valgrind270 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind270 test 0281...[HTTP PUT from file with 100 + 401 responses and -f without auth given] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind281 ../src/curl -q --output log/61/curl281.out --include --trace-ascii log/61/trace281 --trace-config all --trace-time http://127.0.0.1:44381/we/want/281 -f -T log/61/test281.txt > log/61/stdout281 2> log/61/stderr281 281: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 281 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind281 ../src/curl -q --output log/61/curl281.out --include --trace-ascii log/61/trace281 --trace-config all --trace-time http://127.0.0.1:44381/we/want/281 -f -T log/61/test281.txt > log/61/stdout281 2> log/61/stderr281 === End of file commands.log === Start of file http_server.log 09:40:41.608964 ====> Client connect 09:40:41.609287 accept_connection 3 returned 4 09:40:41.609596 accept_connection 3 returned 0 09:40:41.609907 Read 93 bytes 09:40:41.610027 Process 93 bytes request 09:40:41.610115 Got request: GET /verifiedserver HTTP/1.1 09:40:41.610195 Are-we-friendly question received 09:40:41.610626 Wrote request (93 bytes) input to log/61/server.input 09:40:41.610844 Identifying ourselves as friends 09:40:41.612725 Response sent (56 bytes) and written to log/61/server.response 09:40:41.612846 special request received, no persistency 09:40:41.612928 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 281 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file test281.txt Weird file to upload === End of file test281.txt === Start of file valgrind281 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind281 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/15/server/http_ipv6_server.pid" --logfile "log/15/http_ipv6_server.log" --logdir "log/15" --portfile log/15/server/http_ipv6_server.port --config log/15/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 87136 port 35915 * pid http-ipv6 => 87136 87136 test 0263...[HTTP-IPv6 GET with proxy specified using IPv6-numerical address] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind263 ../src/curl -q --output log/15/curl263.out --include --trace-ascii log/15/trace263 --trace-config all --trace-time -g -x "http://[::1]:35915" http://veryveryremotesite.com/263 > log/15/stdout263 2> log/15/stderr263 263: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 263 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind263 ../src/curl -q --output log/15/curl263.out --include --trace-ascii log/15/trace263 --trace-config all --trace-time -g -x "http://[::1]:35915" http://veryveryremotesite.com/263 > log/15/stdout263 2> log/15/stderr263 === End of file commands.log === Start of file http_ipv6_server.log 09:40:40.634206 Running HTTP IPv6 version on port 35915 09:40:40.635213 Wrote pid 87136 to log/15/server/http_ipv6_server.pid 09:40:40.637737 Wrote port 35915 to log/15/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 263 === End of file server.cmd === Start of file valgrind263 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind279 ../src/curl -q --output log/47/curl279.out --include --trace-ascii log/47/trace279 --trace-config all --trace-time http://we.want.that.site.com/279 -x http://f%61ke@127.0.0.1:41103 > log/47/stdout279 2> log/47/stderr279 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind287 ../src/curl -q --include --trace-ascii log/55/trace287 --trace-config all --trace-time http://test.remote.example.com.287:33071/path/287 -H "User-Agent: looser/2015" --proxy http://127.0.0.1:33071 --proxytunnel --proxy-header "User-Agent: looser/2007" > log/55/stdout287 2> log/55/stderr287 ind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind263 test 0279...[HTTP with proxy string including http:// and user only] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind279 ../src/curl -q --output log/47/curl279.out --include --trace-ascii log/47/trace279 --trace-config all --trace-time http://we.want.that.site.com/279 -x http://f%61ke@127.0.0.1:41103 > log/47/stdout279 2> log/47/stderr279 279: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 279 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind279 ../src/curl -q --output log/47/curl279.out --include --trace-ascii log/47/trace279 --trace-config all --trace-time http://we.want.that.site.com/279 -x http://f%61ke@127.0.0.1:41103 > log/47/stdout279 2> log/47/stderr279 === End of file commands.log === Start of file http_server.log 09:40:41.471953 ====> Client connect 09:40:41.472257 accept_connection 3 returned 4 09:40:41.472425 accept_connection 3 returned 0 09:40:41.472756 Read 93 bytes 09:40:41.472874 Process 93 bytes request 09:40:41.472991 Got request: GET /verifiedserver HTTP/1.1 09:40:41.473083 Are-we-friendly question received 09:40:41.473372 Wrote request (93 bytes) input to log/47/server.input 09:40:41.473688 Identifying ourselves as friends 09:40:41.474751 Response sent (56 bytes) and written to log/47/server.response 09:40:41.474903 special request received, no persistency 09:40:41.474993 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 279 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind279 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind279 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind288 ../src/curl -q --output log/1/curl288.out --trace-ascii log/1/trace288 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/1/test288.txt > log/1/stdout288 2> log/1/stderr288 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind290 ../src/curl -q --output log/58/curl290.out --include --trace-ascii log/58/trace290 --trace-config all --trace-time ftp://127.0.0.1:38901/290 --max-filesize 30 > log/58/stdout290 2> log/58/stderr290 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind282 ../src/curl -q --output log/45/curl282.out --include --trace-ascii log/45/trace282 --trace-config all --trace-time http://127.0.0.1:34239/282 > log/45/stdout282 2> log/45/stderr282 test 0287...[HTTP proxy CONNECT with custom User-Agent header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind287 ../src/curl -q --include --trace-ascii log/55/trace287 --trace-config all --trace-time http://test.remote.example.com.287:33071/path/287 -H "User-Agent: looser/2015" --proxy http://127.0.0.1:33071 --proxytunnel --proxy-header "User-Agent: looser/2007" > log/55/stdout287 2> log/55/stderr287 287: stdout FAILED: --- log/55/check-expected 2025-07-18 09:40:42.695987359 +0000 +++ log/55/check-generated 2025-07-18 09:40:42.694607180 +0000 @@ -1,2 +0,0 @@ -HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] -[CR][LF] == Contents of files in the log/55/ dir after test 287 === Start of file check-expected HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] [CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind287 ../src/curl -q --include --trace-ascii log/55/trace287 --trace-config all --trace-time http://test.remote.example.com.287:33071/path/287 -H "User-Agent: looser/2015" --proxy http://127.0.0.1:33071 --proxytunnel --proxy-header "User-Agent: looser/2007" > log/55/stdout287 2> log/55/stderr287 === End of file commands.log === Start of file http_server.log 09:40:41.933849 ====> Client connect 09:40:41.934136 accept_connection 3 returned 4 09:40:41.934344 accept_connection 3 returned 0 09:40:41.935117 Read 93 bytes 09:40:41.935262 Process 93 bytes request 09:40:41.935354 Got request: GET /verifiedserver HTTP/1.1 09:40:41.935425 Are-we-friendly question received 09:40:41.935742 Wrote request (93 bytes) input to log/55/server.input 09:40:41.935926 Identifying ourselves as friends 09:40:41.936538 Response sent (56 bytes) and written to log/55/server.response 09:40:41.936654 special request received, no persistency 09:40:41.936722 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 287 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind287 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind287 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind291 ../src/curl -q --output log/18/curl291.out --include --trace-ascii log/18/trace291 --trace-config all --trace-time ftp://127.0.0.1:42089/291 --max-filesize 100 > log/18/stdout291 2> log/18/stderr291 * starts no server setenv all_proxy = http://fake:user@127.0.0.1:47/ test 0288...[file:// with (unsupported) proxy, authentication and range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind288 ../src/curl -q --output log/1/curl288.out --trace-ascii log/1/trace288 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/1/test288.txt > log/1/stdout288 2> log/1/stderr288 288: data FAILED: --- log/1/check-expected 2025-07-18 09:40:42.873549149 +0000 +++ log/1/check-generated 2025-07-18 09:40:42.872610390 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/1/ dir after test 288 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind288 ../src/curl -q --output log/1/curl288.out --trace-ascii log/1/trace288 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/1/test288.txt > log/1/stdout288 2> log/1/stderr288 === End of file commands.log === Start of file server.cmd Testnum 288 === End of file server.cmd === Start of file test288.txt foo bar bar foo moo === End of file test288.txt === Start of file valgrind288 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind288 test 0282...[HTTP GET with no response body or headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind282 ../src/curl -q --output log/45/curl282.out --include --trace-ascii log/45/trace282 --trace-config all --trace-time http://127.0.0.1:34239/282 > log/45/stdout282 2> log/45/stderr282 282: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 282 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind282 ../src/curl -q --output log/45/curl282.out --include --trace-ascii log/45/trace282 --trace-config all --trace-time http://127.0.0.1:34239/282 > log/45/stdout282 2> log/45/stderr282 === End of file commands.log === Start of file http_server.log 09:40:40.765549 ====> Client connect 09:40:40.765868 accept_connection 3 returned 4 09:40:40.766024 accept_connection 3 returned 0 09:40:40.766151 Read 93 bytes 09:40:40.766240 Process 93 bytes request 09:40:40.766331 Got request: GET /verifiedserver HTTP/1.1 09:40:40.766408 Are-we-friendly question received 09:40:40.766761 Wrote request (93 bytes) input to log/45/server.input 09:40:40.766954 Identifying ourselves as friends 09:40:40.767769 Response sent (56 bytes) and written to log/45/server.response 09:40:40.768364 special request received, no persistency 09:40:40.768551 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 282 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind282 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind282 test 0290...[FTP download maximum filesize exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind290 ../src/curl -q --output log/58/curl290.out --include --trace-ascii log/58/trace290 --trace-config all --trace-time ftp://127.0.0.1:38901/290 --max-filesize 30 > log/58/stdout290 2> log/58/stderr290 290: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 290 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind290 ../src/curl -q --output log/58/curl290.out --include --trace-ascii log/58/trace290 --trace-config all --trace-time ftp://127.0.0.1:38901/290 --max-filesize 30 > log/58/stdout290 2> log/58/stderr290 === End of file commands.log === Start of file ftp_server.log 09:40:41.785914 ====> Client connect 09:40:41.789547 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:41.792299 < "USER anonymous" 09:40:41.794155 > "331 We are happy you popped in![CR][LF]" 09:40:41.794927 < "PASS ftp@example.com" 09:40:41.795282 > "230 Welcome you silly person[CR][LF]" 09:40:41.797994 < "PWD" 09:40:41.799485 > "257 "/" is current directory[CR][LF]" 09:40:41.800627 < "EPSV" 09:40:41.800983 ====> Passive DATA channel requested by client 09:40:41.801184 DATA sockfilt for passive data channel starting... 09:40:41.812187 DATA sockfilt for passive data channel started (pid 89637) 09:40:41.813387 DATA sockfilt for passive data channel listens on port 43279 09:40:41.814350 > "229 Entering Passive Mode (|||43279|)[LF]" 09:40:41.814614 Client has been notified that DATA conn will be accepted on port 43279 09:40:41.816591 Client connects to port 43279 09:40:41.817016 ====> Client established passive DATA connection on port 43279 09:40:41.817909 < "TYPE I" 09:40:41.818317 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:41.820458 < "SIZE verifiedserver" 09:40:41.821013 > "213 17[CR][LF]" 09:40:41.823165 < "RETR verifiedserver" 09:40:41.824638 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:41.825435 =====> Closing passive DATA connection... 09:40:41.825649 Server disconnects passive DATA connection 09:40:41.827174 Fancy that; client wants to DISC, too 09:40:41.828072 Server disconnected passive DATA connection 09:40:41.828313 DATA sockfilt for passive data channel quits (pid 89637) 09:40:41.830207 DATA sockfilt for passive data channel quit (pid 89637) 09:40:41.830486 =====> Closed passive DATA connection 09:40:41.830848 > "226 File transfer complete[CR][LF]" 09:40:41.867608 < "QUIT" 09:40:41.868475 > "221 bye bye baby[CR][LF]" 09:40:41.870330 MAIN sockfilt said DISC 09:40:41.871158 ====> Client disconnected 09:40:41.871656 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.037689 ====> Client connect 09:40:42.040911 Received DATA (on stdin) 09:40:42.041062 > 160 bytes data, server => client 09:40:42.042599 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.042763 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.042842 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.044416 < 16 bytes data, client => server 09:40:42.044791 'USER anonymous\r\n' 09:40:42.046501 Received DATA (on stdin) 09:40:42.046646 > 33 bytes data, server => client 09:40:42.046832 '331 We are happy you popped in!\r\n' 09:40:42.047509 < 22 bytes data, client => server 09:40:42.047649 'PASS ftp@example.com\r\n' 09:40:42.049377 Received DATA (on stdin) 09:40:42.049608 > 30 bytes data, server => client 09:40:42.049740 '230 Welcome you silly person\r\n' 09:40:42.050401 < 5 bytes data, client => server 09:40:42.050672 'PWD\r\n' 09:40:42.052182 Received DATA (on stdin) 09:40:42.052317 > 30 bytes data, server => client 09:40:42.052535 '257 "/" is current directory\r\n' 09:40:42.053621 < 6 bytes data, client => server 09:40:42.053748 'EPSV\r\n' 09:40:42.067664 Received DATA (on stdin) 09:40:42.067820 > 38 bytes data, server => client 09:40:42.068697 '229 Entering Passive Mode (|||43279|)\n' 09:40:42.070214 < 8 bytes data, client => server 09:40:42.070371 'TYPE I\r\n' 09:40:42.072032 Received DATA (on stdin) 09:40:42.072195 > 33 bytes data, server => client 09:40:42.072284 '200 I modify TYPE as you wanted\r\n' 09:40:42.073291 < 21 bytes data, client => server 09:40:42.073506 'SIZE verifiedserver\r\n' 09:40:42.075038 Received DATA (on stdin) 09:40:42.075177 > 8 bytes data, server => client 09:40:42.075264 '213 17\r\n' 09:40:42.075975 < 21 bytes data, client => server 09:40:42.076119 'RETR verifiedserver\r\n' 09:40:42.077339 Received DATA (on stdin) 09:40:42.077688 > 29 bytes data, server => client 09:40:42.077926 '150 Binary junk (17 bytes).\r\n' 09:40:42.085045 Received DATA (on stdin) 09:40:42.085263 > 28 bytes data, server => client 09:40:42.085351 '226 File transfer complete\r\n' 09:40:42.120413 < 6 bytes data, client => server 09:40:42.120658 'QUIT\r\n' 09:40:42.121821 Received DATA (on stdin) 09:40:42.121956 > 18 bytes data, server => client 09:40:42.122604 '221 bye bye baby\r\n' 09:40:42.123771 ====> Client disconnect 09:40:42.124321 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:41.064342 Running IPv4 version 09:40:41.064894 Listening on port 43279 09:40:41.065259 Wrote pid 89637 to log/58/server/ftp_sockdata.pid 09:40:41.065550 Received PING (on stdin) 09:40:41.066372 Received PORT (on stdin) 09:40:41.069983 ====> Client connect 09:40:41.078849 Received DATA (on stdin) 09:40:41.079009 > 17 bytes data, server => client 09:40:41.079092 'WE ROOLZ: 77973\r\n' 09:40:41.080188 ====> Client disconnect 09:40:41.080595 Received DISC (on stdin) 09:40:41.080702 Crikey! Client also wants to disconnect 09:40:41.081226 Received ACKD (on stdin) 09:40:41.082232 Received QUIT (on stdin) 09:40:41.082354 quits 09:40:41.082783 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 290 === End of file server.cmd === Start of file valgrind290 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind290 test 0291...[FTP download maximum filesize not exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind291 ../src/curl -q --output log/18/curl291.out --include --trace-ascii log/18/trace291 --trace-config all --trace-time ftp://127.0.0.1:42089/291 --max-filesize 100 > log/18/stdout291 2> log/18/stderr291 291: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 291 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind291 ../src/curl -q --output log/18/curl291.out --include --trace-ascii log/18/trace291 --trace-config all --trace-time ftp://127.0.0.1:42089/291 --max-filesize 100 > log/18/stdout291 2> log/18/stderr291 === End of file commands.log === Start of file ftp_server.log 09:40:41.852645 ====> Client connect 09:40:41.854229 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:41.857291 < "USER anonymous" 09:40:41.857717 > "331 We are happy you popped in![CR][LF]" 09:40:41.859339 < "PASS ftp@example.com" 09:40:41.859853 > "230 Welcome you silly person[CR][LF]" 09:40:41.861452 < "PWD" 09:40:41.8CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind289 ../src/curl -q --output log/59/curl289.out --include --trace-ascii log/59/trace289 --trace-config all --trace-time ftp://127.0.0.1:43961/289 -T log/59/illegal-nonexistent-file -C - > log/59/stdout289 2> log/59/stderr289 61930 > "257 "/" is current directory[CR][LF]" 09:40:41.864185 < "EPSV" 09:40:41.864499 ====> Passive DATA channel requested by client 09:40:41.864709 DATA sockfilt for passive data channel starting... 09:40:41.881131 DATA sockfilt for passive data channel started (pid 89731) 09:40:41.884247 DATA sockfilt for passive data channel listens on port 39787 09:40:41.884723 > "229 Entering Passive Mode (|||39787|)[LF]" 09:40:41.885070 Client has been notified that DATA conn will be accepted on port 39787 09:40:41.886893 Client connects to port 39787 09:40:41.887586 ====> Client established passive DATA connection on port 39787 09:40:41.893198 < "TYPE I" 09:40:41.896250 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:41.899453 < "SIZE verifiedserver" 09:40:41.901872 > "213 17[CR][LF]" 09:40:41.903181 < "RETR verifiedserver" 09:40:41.904094 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:41.906122 =====> Closing passive DATA connection... 09:40:41.906384 Server disconnects passive DATA connection 09:40:41.906696 Fancy that; client wants to DISC, too 09:40:41.907374 Server disconnected passive DATA connection 09:40:41.907656 DATA sockfilt for passive data channel quits (pid 89731) 09:40:41.912995 DATA sockfilt for passive data channel quit (pid 89731) 09:40:41.913246 =====> Closed passive DATA connection 09:40:41.913561 > "226 File transfer complete[CR][LF]" 09:40:41.950440 < "QUIT" 09:40:41.950962 > "221 bye bye baby[CR][LF]" 09:40:41.956415 MAIN sockfilt said DISC 09:40:41.956727 ====> Client disconnected 09:40:41.957268 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.105767 ====> Client connect 09:40:42.107940 Received DATA (on stdin) 09:40:42.108133 > 160 bytes data, server => client 09:40:42.108238 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.108334 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.108413 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.109922 < 16 bytes data, client => server 09:40:42.110157 'USER anonymous\r\n' 09:40:42.111525 Received DATA (on stdin) 09:40:42.111687 > 33 bytes data, server => client 09:40:42.111771 '331 We are happy you popped in!\r\n' 09:40:42.112411 < 22 bytes data, client => server 09:40:42.112642 'PASS ftp@example.com\r\n' 09:40:42.113600 Received DATA (on stdin) 09:40:42.113761 > 30 bytes data, server => client 09:40:42.113863 '230 Welcome you silly person\r\n' 09:40:42.114617 < 5 bytes data, client => server 09:40:42.114765 'PWD\r\n' 09:40:42.115947 Received DATA (on stdin) 09:40:42.116094 > 30 bytes data, server => client 09:40:42.116191 '257 "/" is current directory\r\n' 09:40:42.117048 < 6 bytes data, client => server 09:40:42.117189 'EPSV\r\n' 09:40:42.138508 Received DATA (on stdin) 09:40:42.138691 > 38 bytes data, server => client 09:40:42.138794 '229 Entering Passive Mode (|||39787|)\n' 09:40:42.140400 < 8 bytes data, client => server 09:40:42.140671 'TYPE I\r\n' 09:40:42.149885 Received DATA (on stdin) 09:40:42.150244 > 33 bytes data, server => client 09:40:42.150337 '200 I modify TYPE as you wanted\r\n' 09:40:42.153529 < 21 bytes data, client => server 09:40:42.153672 'SIZE verifiedserver\r\n' 09:40:42.154077 Received DATA (on stdin) 09:40:42.154222 > 8 bytes data, server => client 09:40:42.154390 '213 17\r\n' 09:40:42.156009 < 21 bytes data, client => server 09:40:42.156145 'RETR verifiedserver\r\n' 09:40:42.157327 Received DATA (on stdin) 09:40:42.157568 > 29 bytes data, server => client 09:40:42.158552 '150 Binary junk (17 bytes).\r\n' 09:40:42.167628 Received DATA (on stdin) 09:40:42.167774 > 28 bytes data, server => client 09:40:42.167858 '226 File transfer complete\r\n' 09:40:42.201631 < 6 bytes data, client => server 09:40:42.201880 'QUIT\r\n' 09:40:42.204996 Received DATA (on stdin) 09:40:42.205156 > 18 bytes data, server => client 09:40:42.205277 '221 bye bye baby\r\n' 09:40:42.209663 ====> Client disconnect 09:40:42.211252 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:41.131695 Running IPv4 version 09:40:41.132570 Listening on port 39787 09:40:41.133132 Wrote pid 89731 to log/18/server/ftp_sockdata.pid 09:40:41.133394 Received PING (on stdin) 09:40:41.135233 Received PORT (on stdin) 09:40:41.139962 ====> Client connect 09:40:41.158549 Received DATA (on stdin) 09:40:41.158708 > 17 bytes data, server => client 09:40:41.158793 'WE ROOLZ: 79172\r\n' 09:40:41.159662 ====> Client disconnect 09:40:41.160367 Received DISC (on stdin) 09:40:41.160599 Crikey! Client also wants to disconnect 09:40:41.161044 Received ACKD (on stdin) 09:40:41.162538 Received QUIT (on stdin) 09:40:41.162681 quits 09:40:41.163128 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 291 === End of file server.cmd === Start of file valgrind291 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind291 test 0289...[FTP resume upload but denied access to local file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind289 ../src/curl -q --output log/59/curl289.out --include --trace-ascii log/59/trace289 --trace-config all --trace-time ftp://127.0.0.1:43961/289 -T log/59/illegal-nonexistent-file -C - > log/59/stdout289 2> log/59/stderr289 curl returned 1, when expecting 26 289: exit FAILED == Contents of files in the log/59/ dir after test 289 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind289 ../src/curl -q --output log/59/curl289.out --include --trace-ascii log/59/trace289 --trace-config all --trace-time ftp://127.0.0.1:43961/289 -T log/59/illegal-nonexistent-file -C - > log/59/stdout289 2> log/59/stderr289 === End of file commands.log === Start of file ftp_server.log 09:40:41.827887 ====> Client connect 09:40:41.829301 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:41.833531 < "USER anonymous" 09:40:41.835934 > "331 We are happy you popped in![CR][LF]" 09:40:41.839161 < "PASS ftp@example.com" 09:40:41.840672 > "230 Welcome you silly person[CR][LF]" 09:40:41.843395 < "PWD" 09:40:41.844735 > "257 "/" is current directory[CR][LF]" 09:40:41.849242 < "EPSV" 09:40:41.849539 ====> Passive DATA channel requested by client 09:40:41.849700 DATA sockfilt for passive data channel starting... 09:40:41.864232 DATA sockfilt for passive data channelCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind294 ../src/curl -q --output log/62/curl294.out --include --trace-ascii log/62/trace294 --trace-config all --trace-time ftp://127.0.0.1:38963/294/ --ftp-account "data for acct" > log/62/stdout294 2> log/62/stderr294 started (pid 89705) 09:40:41.865156 DATA sockfilt for passive data channel listens on port 35055 09:40:41.865564 > "229 Entering Passive Mode (|||35055|)[LF]" 09:40:41.865975 Client has been notified that DATA conn will be accepted on port 35055 09:40:41.869618 Client connects to port 35055 09:40:41.870095 ====> Client established passive DATA connection on port 35055 09:40:41.870958 < "TYPE I" 09:40:41.871360 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:41.874909 < "SIZE verifiedserver" 09:40:41.875359 > "213 17[CR][LF]" 09:40:41.878068 < "RETR verifiedserver" 09:40:41.879020 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:41.880187 =====> Closing passive DATA connection... 09:40:41.880401 Server disconnects passive DATA connection 09:40:41.883809 Server disconnected passive DATA connection 09:40:41.884115 DATA sockfilt for passive data channel quits (pid 89705) 09:40:41.886046 DATA sockfilt for passive data channel quit (pid 89705) 09:40:41.886281 =====> Closed passive DATA connection 09:40:41.888125 > "226 File transfer complete[CR][LF]" 09:40:41.923636 < "QUIT" 09:40:41.924453 > "221 bye bye baby[CR][LF]" 09:40:41.928865 MAIN sockfilt said DISC 09:40:41.929195 ====> Client disconnected 09:40:41.929681 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.080195 ====> Client connect 09:40:42.083078 Received DATA (on stdin) 09:40:42.083264 > 160 bytes data, server => client 09:40:42.083382 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.083579 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.083707 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.084560 < 16 bytes data, client => server 09:40:42.084704 'USER anonymous\r\n' 09:40:42.089649 Received DATA (on stdin) 09:40:42.089821 > 33 bytes data, server => client 09:40:42.089949 '331 We are happy you popped in!\r\n' 09:40:42.090994 < 22 bytes data, client => server 09:40:42.091293 'PASS ftp@example.com\r\n' 09:40:42.093274 Received DATA (on stdin) 09:40:42.093421 > 30 bytes data, server => client 09:40:42.093682 '230 Welcome you silly person\r\n' 09:40:42.095741 < 5 bytes data, client => server 09:40:42.096023 'PWD\r\n' 09:40:42.097800 Received DATA (on stdin) 09:40:42.098082 > 30 bytes data, server => client 09:40:42.099272 '257 "/" is current directory\r\n' 09:40:42.101105 < 6 bytes data, client => server 09:40:42.101418 'EPSV\r\n' 09:40:42.120008 Received DATA (on stdin) 09:40:42.120153 > 38 bytes data, server => client 09:40:42.120242 '229 Entering Passive Mode (|||35055|)\n' 09:40:42.122240 < 8 bytes data, client => server 09:40:42.122643 'TYPE I\r\n' 09:40:42.125364 Received DATA (on stdin) 09:40:42.125593 > 33 bytes data, server => client 09:40:42.125705 '200 I modify TYPE as you wanted\r\n' 09:40:42.126588 < 21 bytes data, client => server 09:40:42.126761 'SIZE verifiedserver\r\n' 09:40:42.129369 Received DATA (on stdin) 09:40:42.129580 > 8 bytes data, server => client 09:40:42.129684 '213 17\r\n' 09:40:42.130260 < 21 bytes data, client => server 09:40:42.130400 'RETR verifiedserver\r\n' 09:40:42.134371 Received DATA (on stdin) 09:40:42.134601 > 29 bytes data, server => client 09:40:42.134701 '150 Binary junk (17 bytes).\r\n' 09:40:42.140384 Received DATA (on stdin) 09:40:42.140706 > 28 bytes data, server => client 09:40:42.141221 '226 File transfer complete\r\n' 09:40:42.176402 < 6 bytes data, client => server 09:40:42.176667 'QUIT\r\n' 09:40:42.177786 Received DATA (on stdin) 09:40:42.177944 > 18 bytes data, server => client 09:40:42.178517 '221 bye bye baby\r\n' 09:40:42.179093 ====> Client disconnect 09:40:42.183738 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:41.116379 Running IPv4 version 09:40:41.116978 Listening on port 35055 09:40:41.117375 Wrote pid 89705 to log/59/server/ftp_sockdata.pid 09:40:41.117648 Received PING (on stdin) 09:40:41.118292 Received PORT (on stdin) 09:40:41.121289 ====> Client connect 09:40:41.135029 Received DATA (on stdin) 09:40:41.135174 > 17 bytes data, server => client 09:40:41.135252 'WE ROOLZ: 78816\r\n' 09:40:41.135683 Received DISC (on stdin) 09:40:41.135842 ====> Client forcibly disconnected 09:40:41.138144 Received QUIT (on stdin) 09:40:41.138287 quits 09:40:41.138768 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 289 === End of file server.cmd === Start of file valgrind289 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind289 test 0294...[FTP --ftp-account on ACCT request] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind294 ../src/curl -q --output log/62/curl294.out --include --trace-ascii log/62/trace294 --trace-config all --trace-time ftp://127.0.0.1:38963/294/ --ftp-account "data for acct" > log/62/stdout294 2> log/62/stderr294 294: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 294 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind294 ../src/curl -q --output log/62/curl294.out --include --trace-ascii log/62/trace294 --trace-config all --trace-time ftp://127.0.0.1:38963/294/ --ftp-account "data for acct" > log/62/stdout294 2> log/62/stderr294 === End of file commands.log === Start of file ftp_server.log 09:40:42.043336 ====> Client connect 09:40:42.044727 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.052527 < "USER anonymous" 09:40:42.055312 > "331 We are happy you popped in![CR][LF]" 09:40:42.057542 < "PASS ftp@example.com" 09:40:42.059576 > "230 Welcome you silly person[CR][LF]" 09:40:42.061817 < "PWD" 09:40:42.062221 > "257 "/" is current directory[CR][LF]" 09:40:42.066447 < "EPSV" 09:40:42.066718 ====> Passive DATA channel requested by client 09:40:42.067039 DATA sockfilt for passive data channel starting... 09:40:42.084405 DATA sockfilt for passive data channel started (pid 89992) 09:40:42.086081 DATA sockfilt for passive data channel listens on port 36473 09:40:42.086561 > "229 Entering Passive Mode (|||36473|)[LF]" 09:40:42.086902 Client has been notified that DATA conn will be accepted on port 36473 09:40:42.088655 Client connects to port 36473 09:40:42.089080 ====> Client established passive DATA conneCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind299 ../src/curl -q --output log/23/curl299.out --include --trace-ascii log/23/trace299 --trace-config all --trace-time -x http://127.0.0.1:42467 -u michal:aybabtu ftp://host.com/we/want/299 > log/23/stdout299 2> log/23/stderr299 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind292 ../src/curl -q --output log/31/curl292.out --include --trace-ascii log/31/trace292 --trace-config all --trace-time http://127.0.0.1:45557/292 --max-filesize 1000 > log/31/stdout292 2> log/31/stderr292 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind275 ../src/curl -q --output log/21/curl275.out --include --trace-ascii log/21/trace275 --trace-config all --trace-time http://remotesite.com.275:34827/we/want/that/page/275 -p -x 127.0.0.1:43963 --user iam:myself --proxy-user youare:yourself http://remotesite.com.275:34827/we/want/that/page/275 > log/21/stdout275 2> log/21/stderr275 ction on port 36473 09:40:42.090152 < "TYPE I" 09:40:42.090491 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:42.095334 < "SIZE verifiedserver" 09:40:42.095847 > "213 17[CR][LF]" 09:40:42.100527 < "RETR verifiedserver" 09:40:42.101023 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:42.101825 =====> Closing passive DATA connection... 09:40:42.102058 Server disconnects passive DATA connection 09:40:42.106573 Server disconnected passive DATA connection 09:40:42.106960 DATA sockfilt for passive data channel quits (pid 89992) 09:40:42.109518 DATA sockfilt for passive data channel quit (pid 89992) 09:40:42.110017 =====> Closed passive DATA connection 09:40:42.111270 > "226 File transfer complete[CR][LF]" 09:40:42.151337 < "QUIT" 09:40:42.155955 > "221 bye bye baby[CR][LF]" 09:40:42.164226 MAIN sockfilt said DISC 09:40:42.164530 ====> Client disconnected 09:40:42.165262 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.296333 ====> Client connect 09:40:42.299573 Received DATA (on stdin) 09:40:42.299741 > 160 bytes data, server => client 09:40:42.299834 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.300002 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.300114 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.304765 < 16 bytes data, client => server 09:40:42.304928 'USER anonymous\r\n' 09:40:42.306699 Received DATA (on stdin) 09:40:42.306859 > 33 bytes data, server => client 09:40:42.309756 '331 We are happy you popped in!\r\n' 09:40:42.310431 < 22 bytes data, client => server 09:40:42.310660 'PASS ftp@example.com\r\n' 09:40:42.312686 Received DATA (on stdin) 09:40:42.312839 > 30 bytes data, server => client 09:40:42.313634 '230 Welcome you silly person\r\n' 09:40:42.314192 < 5 bytes data, client => server 09:40:42.314338 'PWD\r\n' 09:40:42.317726 Received DATA (on stdin) 09:40:42.317903 > 30 bytes data, server => client 09:40:42.318011 '257 "/" is current directory\r\n' 09:40:42.319193 < 6 bytes data, client => server 09:40:42.319343 'EPSV\r\n' 09:40:42.340406 Received DATA (on stdin) 09:40:42.340643 > 38 bytes data, server => client 09:40:42.340746 '229 Entering Passive Mode (|||36473|)\n' 09:40:42.342574 < 8 bytes data, client => server 09:40:42.344653 'TYPE I\r\n' 09:40:42.344791 Received DATA (on stdin) 09:40:42.344888 > 33 bytes data, server => client 09:40:42.344981 '200 I modify TYPE as you wanted\r\n' 09:40:42.346802 < 21 bytes data, client => server 09:40:42.346946 'SIZE verifiedserver\r\n' 09:40:42.349894 Received DATA (on stdin) 09:40:42.350045 > 8 bytes data, server => client 09:40:42.350140 '213 17\r\n' 09:40:42.353333 < 21 bytes data, client => server 09:40:42.353597 'RETR verifiedserver\r\n' 09:40:42.359562 Received DATA (on stdin) 09:40:42.359779 > 29 bytes data, server => client 09:40:42.359887 '150 Binary junk (17 bytes).\r\n' 09:40:42.364080 Received DATA (on stdin) 09:40:42.364237 > 28 bytes data, server => client 09:40:42.364632 '226 File transfer complete\r\n' 09:40:42.403157 < 6 bytes data, client => server 09:40:42.403338 'QUIT\r\n' 09:40:42.405721 Received DATA (on stdin) 09:40:42.405873 > 18 bytes data, server => client 09:40:42.413606 '221 bye bye baby\r\n' 09:40:42.417580 ====> Client disconnect 09:40:42.419314 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:42.336239 Running IPv4 version 09:40:42.336848 Listening on port 36473 09:40:42.337348 Wrote pid 89992 to log/62/server/ftp_sockdata.pid 09:40:42.337756 Received PING (on stdin) 09:40:42.338600 Received PORT (on stdin) 09:40:42.342065 ====> Client connect 09:40:42.355579 Received DATA (on stdin) 09:40:42.355758 > 17 bytes data, server => client 09:40:42.355843 'WE ROOLZ: 78462\r\n' 09:40:42.356144 Received DISC (on stdin) 09:40:42.356304 ====> Client forcibly disconnected 09:40:42.361311 Received QUIT (on stdin) 09:40:42.361566 quits 09:40:42.362090 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 Give me an ACCT now REPLY ACCT 230 Thank-you for the ACCT Testnum 294 === End of file server.cmd === Start of file valgrind294 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind294 test 0299...[FTP over HTTP proxy with user:pass not in url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind299 ../src/curl -q --output log/23/curl299.out --include --trace-ascii log/23/trace299 --trace-config all --trace-time -x http://127.0.0.1:42467 -u michal:aybabtu ftp://host.com/we/want/299 > log/23/stdout299 2> log/23/stderr299 299: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 299 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind299 ../src/curl -q --output log/23/curl299.out --include --trace-ascii log/23/trace299 --trace-config all --trace-time -x http://127.0.0.1:42467 -u michal:aybabtu ftp://host.com/we/want/299 > log/23/stdout299 2> log/23/stderr299 === End of file commands.log === Start of file http_server.log 09:40:42.326936 ====> Client connect 09:40:42.327263 accept_connection 3 returned 4 09:40:42.328098 accept_connection 3 returned 0 09:40:42.328296 Read 93 bytes 09:40:42.328401 Process 93 bytes request 09:40:42.328665 Got request: GET /verifiedserver HTTP/1.1 09:40:42.328776 Are-we-friendly question received 09:40:42.329042 Wrote request (93 bytes) input to log/23/server.input 09:40:42.329266 Identifying ourselves as friends 09:40:42.331364 Response sent (56 bytes) and written to log/23/server.response 09:40:42.331682 special request received, no persistency 09:40:42.331778 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 299 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind299 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind299 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/21/server/http2_server.pid" --logfile "log/21/http2_server.log" --logdir "log/21" --portfile log/21/server/http2_server.port --config log/21/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 88297 port 43963 * pid http-proxy => 88297 88297 test 0275...[HTTP CONNECT with proxytunnel getting two URLs from the same host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind275 ../src/curl -q --output log/21/curl275.out --include --trace-ascii log/21/trace275 --trace-config all --trace-time http://remotesite.com.275:34827/we/want/that/page/275 -p -x 127.0.0.1:43963 --user iam:myself --proxy-user youare:yourself http://remotesite.com.275:34827/we/want/that/page/275 > log/21/stdout275 2> log/21/stderr275 275: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 275 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind275 ../src/curl -q --output log/21/curl275.out --include --trace-ascii log/21/trace275 --trace-config all --trace-time http://remotesite.com.275:34827/we/want/that/page/275 -p -x 127.0.0.1:43963 --user iam:myself --proxy-user youare:yourself http://remotesite.com.275:34827/we/want/that/page/275 > log/21/stdout275 2> log/21/stderr275 === End of file commands.log === Start of file http2_server.log 09:40:41.436544 Run as proxy, CONNECT to host 127.0.0.1 09:40:41.437385 Running HTTP IPv4 version on port 43963 09:40:41.437956 Wrote pid 88297 to log/21/server/http2_server.pid 09:40:41.438307 Wrote port 43963 to log/21/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:40:41.102976 ====> Client connect 09:40:41.103269 accept_connection 3 returned 4 09:40:41.103420 accept_connection 3 returned 0 09:40:41.103753 Read 93 bytes 09:40:41.103850 Process 93 bytes request 09:40:41.103947 Got request: GET /verifiedserver HTTP/1.1 09:40:41.104027 Are-we-friendly question received 09:40:41.104251 Wrote request (93 bytes) input to log/21/server.input 09:40:41.104425 Identifying ourselves as friends 09:40:41.108706 Response sent (56 bytes) and written to log/21/server.response 09:40:41.108815 special request received, no persistency 09:40:41.108884 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 275 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind275 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind275 test 0292...[HTTP GET with maximum filesize not exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind292 ../src/curl -q --output log/31/curl292.out --include --trace-ascii log/31/trace292 --trace-config all --trace-time http://127.0.0.1:45557/292 --max-filesize 1000 > log/31/stdout292 2> log/31/stderr292 292: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 292 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind292 ../src/curl -q --output log/31/curl292.out --include --trace-ascii log/31/trace292 --trace-config all --trace-time http://127.0.0.1:45557/292 --max-filesize 1000 > log/31/stdout292 2> log/31/stderr292 === End of file commands.log === Start of file http_server.log 09:40:42.190975 ====> Client connect 09:40:42.191295 accept_connection 3 returned 4 09:40:42.191589 accept_connection 3 returned 0 09:40:42.191924 Read 93 bytes 09:40:42.192045 Process 93 bytes request 09:40:42.192152 Got request: GET /verifiedserver HTTP/1.1 09:40:42.192257 Are-we-friendly question received 09:40:42.192592 Wrote request (93 bytes) input to log/31/server.input 09:40:42.192784 Identifying ourselves as friends 09:40:42.197907 Response sent (56 bytes) and written to log/31/server.response 09:40:42.198047 special request received, no persistency 09:40:42.198128 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind296 ../src/curl -q --output log/60/curl296.out --include --trace-ascii log/60/trace296 --trace-config all --trace-time --ftp-method multicwd ftp://127.0.0.1:41385/first/second/third/296 > log/60/stdout296 2> log/60/stderr296 .0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 292 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind292 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind292 test 0296...[FTP CWD with --ftp-method multicwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind296 ../src/curl -q --output log/60/curl296.out --include --trace-ascii log/60/trace296 --trace-config all --trace-time --ftp-method multicwd ftp://127.0.0.1:41385/first/second/third/296 > log/60/stdout296 2> log/60/stderr296 296: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 296 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind296 ../src/curl -q --output log/60/curl296.out --include --trace-ascii log/60/trace296 --trace-config all --trace-time --ftp-method multicwd ftp://127.0.0.1:41385/first/second/third/296 > log/60/stdout296 2> log/60/stderr296 === End of file commands.log === Start of file ftp_server.log 09:40:42.048913 ====> Client connect 09:40:42.050475 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.054052 < "USER anonymous" 09:40:42.054594 > "331 We are happy you popped in![CR][LF]" 09:40:42.059342 < "PASS ftp@example.com" 09:40:42.063977 > "230 Welcome you silly person[CR][LF]" 09:40:42.066309 < "PWD" 09:40:42.066862 > "257 "/" is current directory[CR][LF]" 09:40:42.069233 < "EPSV" 09:40:42.069554 ====> Passive DATA channel requested by client 09:40:42.069868 DATA sockfilt for passive data channel starting... 09:40:42.082902 DATA sockfilt for passive data channel started (pid 89994) 09:40:42.084199 DATA sockfilt for passive data channel listens on port 46395 09:40:42.085146 > "229 Entering Passive Mode (|||46395|)[LF]" 09:40:42.085892 Client has been notified that DATA conn will be accepted on port 46395 09:40:42.088408 Client connects to port 46395 09:40:42.088733 ====> Client established passive DATA connection on port 46395 09:40:42.089903 < "TYPE I" 09:40:42.091925 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:42.092638 < "SIZE verifiedserver" 09:40:42.093936 > "213 17[CR][LF]" 09:40:42.095501 < "RETR verifiedserver" 09:40:42.096293 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:42.098143 =====> Closing passive DATA connection... 09:40:42.098386 Server disconnects passive DATA connection 09:40:42.099931 Server disconnected passive DATA connection 09:40:42.100228 DATA sockfilt for passive data channel quits (pid 89994) 09:40:42.102329 DATA sockfilt for passive data channel quit (pid 89994) 09:40:42.102592 =====> Closed passive DATA connection 09:40:42.103004 > "226 File transfer complete[CR][LF]" 09:40:42.140840 < "QUIT" 09:40:42.142151 > "221 bye bye baby[CR][LF]" 09:40:42.146265 MAIN sockfilt said DISC 09:40:42.147189 ====> Client disconnected 09:40:42.147818 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.299879 ====> Client connect 09:40:42.304566 Received DATA (on stdin) 09:40:42.304716 > 160 bytes data, server => client 09:40:42.304814 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.304909 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.304994 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.306607 < 16 bytes data, client => server 09:40:42.306786 'USER anonymous\r\n' 09:40:42.310554 Received DATA (on stdin) 09:40:42.310718 > 33 bytes data, server => client 09:40:42.310817 '331 We are happy you popped in!\r\n' 09:40:42.311564 < 22 bytes data, client => server 09:40:42.311705 'PASS ftp@example.com\r\n' 09:40:42.314187 Received DATA (on stdin) 09:40:42.314338 > 30 bytes data, server => client 09:40:42.318184 '230 Welcome you silly person\r\n' 09:40:42.319031 < 5 bytes data, client => server 09:40:42.319203 'PWD\r\n' 09:40:42.321040 Received DATA (on stdin) 09:40:42.321184 > 30 bytes data, server => client 09:40:42.321274 '257 "/" is current directory\r\n' 09:40:42.322054 < 6 bytes data, client => server 09:40:42.322201 'EPSV\r\n' 09:40:42.338316 Received DATA (on stdin) 09:40:42.338568 > 38 bytes data, server => client 09:40:42.339941 '229 Entering Passive Mode (|||46395|)\n' 09:40:42.341376 < 8 bytes data, client => server 09:40:42.341616 'TYPE I\r\n' 09:40:42.344109 Received DATA (on stdin) 09:40:42.344261 > 33 bytes data, server => client 09:40:42.344502 '200 I modify TYPE as you wanted\r\n' 09:40:42.345106 < 21 bytes data, client => server 09:40:42.345243 'SIZE verifiedserver\r\n' 09:40:42.346896 Received DATA (on stdin) 09:40:42.347043 > 8 bytes data, server => client 09:40:42.347210 '213 17\r\n' 09:40:42.348357 < 21 bytes data, client => server 09:40:42.348568 'RETR verifiedserver\r\n' 09:40:42.349656 Received DATA (on stdin) 09:40:42.349799 > 29 bytes data, server => client 09:40:42.350535 '150 Binary junk (17 bytes).\r\n' 09:40:42.357033 Received DATA (on stdin) 09:40:42.357168 > 28 bytes data, server => client 09:40:42.357256 '226 File transfer complete\r\n' 09:40:42.393655 < 6 bytes data, client => server 09:40:42.393827 'QUIT\r\n' 09:40:42.395052 Received DATA (on stdin) 09:40:42.395192 > 18 bytes data, server => client 09:40:42.395382 '221 bye bye baby\r\n' 09:40:42.399652 ====> Client disconnect 09:40:42.400278 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:42.335018 Running IPv4 version 09:40:42.335629 Listening on port 46395 09:40:42.336006 Wrote pid 89994 to log/60/server/ftp_sockdata.pid 09:40:42.336182 Received PING (on stdin) 09:40:42.337108 Received PORT (on stdin) 09:40:42.341832 ====> Client connect 09:40:42.350888 Received DATA (on stdin) 09:40:42.351037 > 17 bytes data, server => client 09:40:42.351119 'WE ROOLZ: 78622\r\n' 09:40:42.3523CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind295 ../src/curl -q --output log/50/curl295.out --include --trace-ascii log/50/trace295 --trace-config all --trace-time ftp://127.0.0.1:36567/295/ > log/50/stdout295 2> log/50/stderr295 18 Received DISC (on stdin) 09:40:42.352553 ====> Client forcibly disconnected 09:40:42.354202 Received QUIT (on stdin) 09:40:42.354329 quits 09:40:42.354845 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 296 === End of file server.cmd === Start of file valgrind296 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind296 test 0295...[FTP ACCT request without --ftp-account] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind295 ../src/curl -q --output log/50/curl295.out --include --trace-ascii log/50/trace295 --trace-config all --trace-time ftp://127.0.0.1:36567/295/ > log/50/stdout295 2> log/50/stderr295 295: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 295 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind295 ../src/curl -q --output log/50/curl295.out --include --trace-ascii log/50/trace295 --trace-config all --trace-time ftp://127.0.0.1:36567/295/ > log/50/stdout295 2> log/50/stderr295 === End of file commands.log === Start of file ftp_server.log 09:40:42.130629 ====> Client connect 09:40:42.132202 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.147884 < "USER anonymous" 09:40:42.149110 > "331 We are happy you popped in![CR][LF]" 09:40:42.150244 < "PASS ftp@example.com" 09:40:42.151419 > "230 Welcome you silly person[CR][LF]" 09:40:42.152675 < "PWD" 09:40:42.153544 > "257 "/" is current directory[CR][LF]" 09:40:42.155468 < "EPSV" 09:40:42.155862 ====> Passive DATA channel requested by client 09:40:42.156081 DATA sockfilt for passive data channel starting... 09:40:42.169962 DATA sockfilt for passive data channel started (pid 90092) 09:40:42.171032 DATA sockfilt for passive data channel listens on port 33069 09:40:42.171508 > "229 Entering Passive Mode (|||33069|)[LF]" 09:40:42.171852 Client has been notified that DATA conn will be accepted on port 33069 09:40:42.175014 Client connects to port 33069 09:40:42.175339 ====> Client established passive DATA connection on port 33069 09:40:42.176195 < "TYPE I" 09:40:42.177648 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:42.179147 < "SIZE verifiedserver" 09:40:42.181252 > "213 17[CR][LF]" 09:40:42.182071 < "RETR verifiedserver" 09:40:42.183504 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:42.184863 =====> Closing passive DATA connection... 09:40:42.185118 Server disconnects passive DATA connection 09:40:42.186439 Server disconnected passive DATA connection 09:40:42.186704 DATA sockfilt for passive data channel quits (pid 90092) 09:40:42.189908 DATA sockfilt for passive data channel quit (pid 90092) 09:40:42.190188 =====> Closed passive DATA connection 09:40:42.191197 > "226 File transfer complete[CR][LF]" 09:40:42.227147 < "QUIT" 09:40:42.228402 > "221 bye bye baby[CR][LF]" 09:40:42.232294 MAIN sockfilt said DISC 09:40:42.233372 ====> Client disconnected 09:40:42.233997 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.383714 ====> Client connect 09:40:42.386241 Received DATA (on stdin) 09:40:42.386406 > 160 bytes data, server => client 09:40:42.386771 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.386885 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.386984 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.400653 < 16 bytes data, client => server 09:40:42.400822 'USER anonymous\r\n' 09:40:42.402006 Received DATA (on stdin) 09:40:42.402158 > 33 bytes data, server => client 09:40:42.402333 '331 We are happy you popped in!\r\n' 09:40:42.403035 < 22 bytes data, client => server 09:40:42.403176 'PASS ftp@example.com\r\n' 09:40:42.404308 Received DATA (on stdin) 09:40:42.404519 > 30 bytes data, server => client 09:40:42.404711 '230 Welcome you silly person\r\n' 09:40:42.405618 < 5 bytes data, client => server 09:40:42.405759 'PWD\r\n' 09:40:42.406917 Received DATA (on stdin) 09:40:42.407059 > 30 bytes data, server => client 09:40:42.407545 '257 "/" is current directory\r\n' 09:40:42.408332 < 6 bytes data, client => server 09:40:42.408566 'EPSV\r\n' 09:40:42.426031 Received DATA (on stdin) 09:40:42.426209 > 38 bytes data, server => client 09:40:42.426305 '229 Entering Passive Mode (|||33069|)\n' 09:40:42.428253 < 8 bytes data, client => server 09:40:42.428390 'TYPE I\r\n' 09:40:42.430254 Received DATA (on stdin) 09:40:42.430405 > 33 bytes data, server => client 09:40:42.430690 '200 I modify TYPE as you wanted\r\n' 09:40:42.431918 < 21 bytes data, client => server 09:40:42.432080 'SIZE verifiedserver\r\n' 09:40:42.433288 Received DATA (on stdin) 09:40:42.433517 > 8 bytes data, server => client 09:40:42.433741 '213 17\r\n' 09:40:42.434357 < 21 bytes data, client => server 09:40:42.434700 'RETR verifiedserver\r\n' 09:40:42.436162 Received DATA (on stdin) 09:40:42.436317 > 29 bytes data, server => client 09:40:42.436576 '150 Binary junk (17 bytes).\r\n' 09:40:42.444194 Received DATA (on stdin) 09:40:42.444335 > 28 bytes data, server => client 09:40:42.444592 '226 File transfer complete\r\n' 09:40:42.479917 < 6 bytes data, client => server 09:40:42.480104 'QUIT\r\n' 09:40:42.481235 Received DATA (on stdin) 09:40:42.481391 > 18 bytes data, server => client 09:40:42.481674 '221 bye bye baby\r\n' 09:40:42.485583 ====> Client disconnect 09:40:42.486393 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:42.421927 Running IPv4 version 09:40:42.422689 Listening on port 33069 09:40:42.423111 Wrote pid 90092 to log/50/server/ftp_sockdata.pid 09:40:42.423295 Received PING (on stdin) 09:40:42.424125 Received PORT (on stdin) 09:40:42.427968 ====> Client connect 09:40:42.437775 Received DATA (on stdin) 09:40:42.437923 > 17 bytes data, server => client 09:40:42.439052 'WE ROOLZ: 77995\r\n' 09:40:42.439560 Received DISC (on stdin) 09:40:42.439758 ====> Client forcibly disconnected 09:40:42.441665 Received QUIT (on stdin) 09:40:42.441819 quits 09:40:42.442306 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 Give me an ACCT now REPLY PWD 530 No ACCT, go away Testnum 295 === End of file server.cmd === Start of file valgrind295 valgrind: Fatal errCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind333 ../src/curl -q --output log/48/curl333.out --include --trace-ascii log/48/trace333 --trace-config all --trace-time --no-proxy "hey" http://127.0.0.1:47/333 > log/48/stdout333 2> log/48/stderr333 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind283 ../src/curl -q --output log/63/curl283.out --include --trace-ascii log/63/trace283 --trace-config all --trace-time tftp://127.0.0.1:43379//invalid-file --tftp-blksize 1024 > log/63/stdout283 2> log/63/stderr283 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind318 ../src/curl -q --output log/49/curl318.out --include --trace-ascii log/49/trace318 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/318 -x 127.0.0.1:42667 -H "Authorization: s3cr3t" --proxy-user testing:this --location-trusted > log/49/stdout318 2> log/49/stderr318 or at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind295 * starts no server test 0333...[Try a non-boolean command line option with --no-] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind333 ../src/curl -q --output log/48/curl333.out --include --trace-ascii log/48/trace333 --trace-config all --trace-time --no-proxy "hey" http://127.0.0.1:47/333 > log/48/stdout333 2> log/48/stderr333 curl returned 1, when expecting 2 333: exit FAILED == Contents of files in the log/48/ dir after test 333 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind333 ../src/curl -q --output log/48/curl333.out --include --trace-ascii log/48/trace333 --trace-config all --trace-time --no-proxy "hey" http://127.0.0.1:47/333 > log/48/stdout333 2> log/48/stderr333 === End of file commands.log === Start of file server.cmd Testnum 333 === End of file server.cmd === Start of file valgrind333 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind333 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/63/server/tftp_server.pid" --portfile "log/63/server/tftp_server.port" --logfile "log/63/tftp_server.log" --logdir "log/63" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 88938 port 43379 * pid tftp => 88938 88938 test 0283...[TFTP retrieve on invalid file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind283 ../src/curl -q --output log/63/curl283.out --include --trace-ascii log/63/trace283 --trace-config all --trace-time tftp://127.0.0.1:43379//invalid-file --tftp-blksize 1024 > log/63/stdout283 2> log/63/stderr283 283: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 283 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind283 ../src/curl -q --output log/63/curl283.out --include --trace-ascii log/63/trace283 --trace-config all --trace-time tftp://127.0.0.1:43379//invalid-file --tftp-blksize 1024 > log/63/stdout283 2> log/63/stderr283 === End of file commands.log === Start of file server.cmd Testnum 283 === End of file server.cmd === Start of file tftp_server.log 09:40:41.846178 Wrote pid 88938 to log/63/server/tftp_server.pid 09:40:41.847038 Wrote port 43379 to log/63/server/tftp_server.port 09:40:41.847165 Running IPv4 version on port UDP/43379 === End of file tftp_server.log === Start of file valgrind283 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind283 test 0318...[HTTP with custom Authorization: and redirect to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind318 ../src/curl -q --output log/49/curl318.out --include --trace-ascii log/49/trace318 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/318 -x 127.0.0.1:42667 -H "Authorization: s3cr3t" --proxy-user testing:this --location-trusted > log/49/stdout318 2> log/49/stderr318 318: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 318 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind318 ../src/curl -q --output log/49/curl318.out --include --trace-ascii log/49/trace318 --traCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind293 ../src/curl -q --output log/46/curl293.out --include --trace-ascii log/46/trace293 --trace-config all --trace-time http://127.0.0.1:46523/293 --max-filesize 2 > log/46/stdout293 2> log/46/stderr293 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind326 ../src/curl -q --output log/36/curl326.out --trace-ascii log/36/trace326 --trace-config all --trace-time http://127.0.0.1:44255/326 --raw > log/36/stdout326 2> log/36/stderr326 ce-config all --trace-time http://first.host.it.is/we/want/that/page/318 -x 127.0.0.1:42667 -H "Authorization: s3cr3t" --proxy-user testing:this --location-trusted > log/49/stdout318 2> log/49/stderr318 === End of file commands.log === Start of file http_server.log 09:40:42.603851 ====> Client connect 09:40:42.604186 accept_connection 3 returned 4 09:40:42.604365 accept_connection 3 returned 0 09:40:42.604648 Read 93 bytes 09:40:42.604778 Process 93 bytes request 09:40:42.604874 Got request: GET /verifiedserver HTTP/1.1 09:40:42.605037 Are-we-friendly question received 09:40:42.605309 Wrote request (93 bytes) input to log/49/server.input 09:40:42.605616 Identifying ourselves as friends 09:40:42.606509 Response sent (56 bytes) and written to log/49/server.response 09:40:42.606653 special request received, no persistency 09:40:42.606734 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 318 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind318 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind318 test 0293...[HTTP GET with maximum filesize exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind293 ../src/curl -q --output log/46/curl293.out --include --trace-ascii log/46/trace293 --trace-config all --trace-time http://127.0.0.1:46523/293 --max-filesize 2 > log/46/stdout293 2> log/46/stderr293 293: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 293 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind293 ../src/curl -q --output log/46/curl293.out --include --trace-ascii log/46/trace293 --trace-config all --trace-time http://127.0.0.1:46523/293 --max-filesize 2 > log/46/stdout293 2> log/46/stderr293 === End of file commands.log === Start of file http_server.log 09:40:42.343843 ====> Client connect 09:40:42.344126 accept_connection 3 returned 4 09:40:42.344280 accept_connection 3 returned 0 09:40:42.344422 Read 93 bytes 09:40:42.344610 Process 93 bytes request 09:40:42.344704 Got request: GET /verifiedserver HTTP/1.1 09:40:42.344779 Are-we-friendly question received 09:40:42.345009 Wrote request (93 bytes) input to log/46/server.input 09:40:42.345189 Identifying ourselves as friends 09:40:42.348981 Response sent (56 bytes) and written to log/46/server.response 09:40:42.349093 special request received, no persistency 09:40:42.349171 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 293 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind293 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind293 test 0326...[HTTP GET chunked data in raw mode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind326 ../src/curl -q --output log/36/curl326.out --trace-ascii log/36/trace326 --trace-config all --trace-time http://127.0.0.1:44255/326 --raw > log/36/stdout326 2> log/36/stderr326 326: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 326 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind326 ../src/curl -q --output log/36/curl326.out --trace-ascii log/36/trace326 --trace-config all --trace-time http://127.0.0.1:44255/326 --raw > log/36/stdout326 2> log/36/stderr326 === End of file commands.log === Start of file http_server.log 09:40:42.738857 ====> Client connect 09:40:42.739204 accept_connection 3 returned 4 09:40:42.739391 accept_connection 3 returned 0 09:40:42.740132 Read 93 bytes 09:40:42.740294 Process 93 bytes reCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind315 ../src/curl -q --output log/43/curl315.out --include --trace-ascii log/43/trace315 --trace-config all --trace-time http://127.0.0.1:41267/315 --compressed > log/43/stdout315 2> log/43/stderr315 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind314 ../src/curl -q --output log/39/curl314.out --include --trace-ascii log/39/trace314 --trace-config all --trace-time http://127.0.0.1:42899/314 --compressed > log/39/stdout314 2> log/39/stderr314 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind317 ../src/curl -q --output log/57/curl317.out --include --trace-ascii log/57/trace317 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/317 -x 127.0.0.1:35945 -H "Authorization: s3cr3t" --proxy-user testing:this --location > log/57/stdout317 2> log/57/stderr317 quest 09:40:42.740386 Got request: GET /verifiedserver HTTP/1.1 09:40:42.740574 Are-we-friendly question received 09:40:42.740880 Wrote request (93 bytes) input to log/36/server.input 09:40:42.741097 Identifying ourselves as friends 09:40:42.741847 Response sent (56 bytes) and written to log/36/server.response 09:40:42.741963 special request received, no persistency 09:40:42.742036 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 326 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind326 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind326 test 0315...[HTTP GET brotli compressed content with broken header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind315 ../src/curl -q --output log/43/curl315.out --include --trace-ascii log/43/trace315 --trace-config all --trace-time http://127.0.0.1:41267/315 --compressed > log/43/stdout315 2> log/43/stderr315 315: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 315 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind315 ../src/curl -q --output log/43/curl315.out --include --trace-ascii log/43/trace315 --trace-config all --trace-time http://127.0.0.1:41267/315 --compressed > log/43/stdout315 2> log/43/stderr315 === End of file commands.log === Start of file http_server.log 09:40:42.578695 ====> Client connect 09:40:42.579117 accept_connection 3 returned 4 09:40:42.579308 accept_connection 3 returned 0 09:40:42.579538 Read 93 bytes 09:40:42.579706 Process 93 bytes request 09:40:42.579835 Got request: GET /verifiedserver HTTP/1.1 09:40:42.579928 Are-we-friendly question received 09:40:42.580207 Wrote request (93 bytes) input to log/43/server.input 09:40:42.580888 Identifying ourselves as friends 09:40:42.582292 Response sent (56 bytes) and written to log/43/server.response 09:40:42.582431 special request received, no persistency 09:40:42.582625 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 315 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind315 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind315 test 0314...[HTTP GET brotli compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind314 ../src/curl -q --output log/39/curl314.out --include --trace-ascii log/39/trace314 --trace-config all --trace-time http://127.0.0.1:42899/314 --compressed > log/39/stdout314 2> log/39/stderr314 314: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 314 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind314 ../src/curl -q --output log/39/curl314.out --include --trace-ascii log/39/trace314 --trace-config all --trace-time http://127.0.0.1:42899/314 --compressed > log/39/stdout314 2> log/39/stderr314 === End of file commands.log === Start of file http_server.log 09:40:42.565854 ====> Client connect 09:40:42.566182 accept_connection 3 returned 4 09:40:42.566384 accept_connection 3 returned 0 09:40:42.566753 Read 93 bytes 09:40:42.566868 Process 93 bytes request 09:40:42.566970 Got request: GET /verifiedserver HTTP/1.1 09:40:42.567093 Are-we-friendly question received 09:40:42.567353 Wrote request (93 bytes) input to log/39/server.input 09:40:42.567685 Identifying ourselves as friends 09:40:42.568544 Response sent (56 bytes) and written to log/39/server.response 09:40:42.568669 special request received, no persistency 09:40:42.568741 ====> Client disconnect 0 === End of file http_server.log === StCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind327 ../src/curl -q --output log/54/curl327.out --include --trace-ascii log/54/trace327 --trace-config all --trace-time http://127.0.0.1:44921/we/want/327 -b none -c log/54/cookies327 http://127.0.0.1:44921/we/want/3270002 > log/54/stdout327 2> log/54/stderr327 art of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 314 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind314 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind314 test 0317...[HTTP with custom Authorization: and redirect to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind317 ../src/curl -q --output log/57/curl317.out --include --trace-ascii log/57/trace317 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/317 -x 127.0.0.1:35945 -H "Authorization: s3cr3t" --proxy-user testing:this --location > log/57/stdout317 2> log/57/stderr317 317: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 317 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind317 ../src/curl -q --output log/57/curl317.out --include --trace-ascii log/57/trace317 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/317 -x 127.0.0.1:35945 -H "Authorization: s3cr3t" --proxy-user testing:this --location > log/57/stdout317 2> log/57/stderr317 === End of file commands.log === Start of file http_server.log 09:40:42.633046 ====> Client connect 09:40:42.633392 accept_connection 3 returned 4 09:40:42.633727 accept_connection 3 returned 0 09:40:42.633874 Read 93 bytes 09:40:42.633971 Process 93 bytes request 09:40:42.634057 Got request: GET /verifiedserver HTTP/1.1 09:40:42.634134 Are-we-friendly question received 09:40:42.634358 Wrote request (93 bytes) input to log/57/server.input 09:40:42.638018 Identifying ourselves as friends 09:40:42.639277 Response sent (56 bytes) and written to log/57/server.response 09:40:42.641702 special request received, no persistency 09:40:42.641840 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 317 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind317 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind317 test 0327...[HTTP with cookiejar without cookies left] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind327 ../src/curl -q --output log/54/curl327.out --include --trace-ascii log/54/trace327 --trace-config all --trace-time http://127.0.0.1:44921/we/want/327 -b none -c log/54/cookies327 http://127.0.0.1:44921/we/want/3270002 > log/54/stdout327 2> log/54/stderr327 327: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 327 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind327 ../src/curl -q --output log/54/curl327.out --include --trace-ascii log/54/trace327 --trace-config all --trace-time http://127.0.0.1:44921/we/want/327 -b none -c log/54/cookies327 http://127.0.0.1:44921/we/want/3270002 > log/54/stdout327 2> log/54/stderr327 === End of file commands.log === Start of file http_server.log 09:40:42.748919 ====> Client connect 09:40:42.749236 accept_connection 3 returned 4 09:40:42.749402 accept_connection 3 returned 0 09:40:42.749647 Read 93 bytes 09:40:42.749754 Process 93 bytes request 09:40:42.749851 Got request: GET /verifiedserver HTTP/1.1 09:40:42.749940 Are-we-friendly question received 09:40:42.750191 Wrote request (93 bytes) input to log/54/server.input 09:40:42.750390 Identifying ourselves as friends 09:40:42.751257 Response sent (56 bytes) and written to log/54/server.response 09:40:42.751374 special request received, no persistency 09:40:42.751533 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * uCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind328 ../src/curl -q --output log/14/curl328.out --include --trace-ascii log/14/trace328 --trace-config all --trace-time http://127.0.0.1:43309/hello/328 --compressed > log/14/stdout328 2> log/14/stderr328 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind350 ../src/curl -q --output log/12/curl350.out --include --trace-ascii log/12/trace350 --trace-config all --trace-time ftp://127.0.0.1:32959// --ftp-method multicwd > log/12/stdout350 2> log/12/stderr350 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind334 ../src/curl -q --output log/56/curl334.out --include --trace-ascii log/56/trace334 --trace-config all --trace-time http://127.0.0.1:43265/want/334 > log/56/stdout334 2> log/56/stderr334 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind316 ../src/curl -q --output log/52/curl316.out --include --trace-ascii log/52/trace316 --trace-config all --trace-time http://127.0.0.1:40089/316 --compressed > log/52/stdout316 2> log/52/stderr316 sing HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 327 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind327 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind327 test 0328...[HTTP with "Content-Encoding: none] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind328 ../src/curl -q --output log/14/curl328.out --include --trace-ascii log/14/trace328 --trace-config all --trace-time http://127.0.0.1:43309/hello/328 --compressed > log/14/stdout328 2> log/14/stderr328 328: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 328 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind328 ../src/curl -q --output log/14/curl328.out --include --trace-ascii log/14/trace328 --trace-config all --trace-time http://127.0.0.1:43309/hello/328 --compressed > log/14/stdout328 2> log/14/stderr328 === End of file commands.log === Start of file http_server.log 09:40:42.846977 ====> Client connect 09:40:42.847307 accept_connection 3 returned 4 09:40:42.847618 accept_connection 3 returned 0 09:40:42.851578 Read 93 bytes 09:40:42.851742 Process 93 bytes request 09:40:42.851829 Got request: GET /verifiedserver HTTP/1.1 09:40:42.851901 Are-we-friendly question received 09:40:42.852135 Wrote request (93 bytes) input to log/14/server.input 09:40:42.852327 Identifying ourselves as friends 09:40:42.853173 Response sent (56 bytes) and written to log/14/server.response 09:40:42.853295 special request received, no persistency 09:40:42.853373 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 328 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind328 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind328 test 0350...[FTP root dir list multicwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind350 ../src/curl -q --output log/12/curl350.out --include --trace-ascii log/12/trace350 --trace-config all --trace-time ftp://127.0.0.1:32959// --ftp-method multicwd > log/12/stdout350 2> log/12/stderr350 350: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 350 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind350 ../src/curl -q --output log/12/curl350.out --include --trace-ascii log/12/trace350 --trace-config all --trace-time ftp://127.0.0.1:32959// --ftp-method multicwd > log/12/stdout350 2> log/12/stderr350 === End of file commands.log === Start of file ftp_server.log 09:40:42.844311 ====> Client connect 09:40:42.848010 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.850282 < "USER anonymous" 09:40:42.851882 > "331 We are happy you popped in![CR][LF]" 09:40:42.853363 < "PASS ftp@example.com" 09:40:42.854174 > "230 Welcome you silly person[CR][LF]" 09:40:42.856005 < "PWD" 09:40:42.857163 > "257 "/" is current directory[CR][LF]" 09:40:42.858845 < "EPSV" 09:40:42.859179 ====> Passive DATA channel requested by client 09:40:42.859390 DATA sockfilt for passive data channel starting... 09:40:42.876508 DATA sockfilt for passive data channel started (pid 91181) 09:40:42.878194 DATA sockfilt for passive data channel listens on port 38895 09:40:42.879132 > "229 Entering Passive Mode (|||38895|)[LF]" 09:40:42.879400 Client has been notified that DATA conn will be accepted on port 38895 09:40:42.880991 Client connects to port 38895 09:40:42.881456 ====> Client established passive DATA connection on port 38895 09:40:42.882352 < "TYPE I" 09:40:42.882731 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:42.884713 < "SIZE verifiedserver" 09:40:42.886000 > "213 17[CR][LF]" 09:40:42.890290 < "RETR verifiedserver" 09:40:42.891403 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:42.892354 =====> Closing passive DATA connection... 09:40:42.892596 Server disconnects passive DATA connection 09:40:42.893636 Server disconnected passive DATA connection 09:40:42.893994 DATA sockfilt for passive data channel quits (pid 91181) 09:40:42.896260 DATA sockfilt for passive data channel quit (pid 91181) 09:40:42.896510 =====> Closed passive DATA connection 09:40:42.896916 > "226 File transfer complete[CR][LF]" 09:40:42.934685 < "QUIT" 09:40:42.936084 > "221 bye bye baby[CR][LF]" 09:40:42.937029 MAIN sockfilt said DISC 09:40:42.937324 ====> Client disconnected 09:40:42.937928 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:43.090789 ====> Client connect 09:40:43.099555 Received DATA (on stdin) 09:40:43.099725 > 160 bytes data, server => client 09:40:43.101667 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:43.101808 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:43.101890 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:43.102754 < 16 bytes data, client => server 09:40:43.102924 'USER anonymous\r\n' 09:40:43.104390 Received DATA (on stdin) 09:40:43.104684 > 33 bytes data, server => client 09:40:43.104892 '331 We are happy you popped in!\r\n' 09:40:43.106086 < 22 bytes data, client => server 09:40:43.106222 'PASS ftp@example.com\r\n' 09:40:43.107526 Received DATA (on stdin) 09:40:43.107673 > 30 bytes data, server => client 09:40:43.108199 '230 Welcome you silly person\r\n' 09:40:43.108881 < 5 bytes data, client => server 09:40:43.109017 'PWD\r\n' 09:40:43.110097 Received DATA (on stdin) 09:40:43.110235 > 30 bytes data, server => client 09:40:43.110405 '257 "/" is current directory\r\n' 09:40:43.111880 < 6 bytes data, client => server 09:40:43.112030 'EPSV\r\n' 09:40:43.132820 Received DATA (on stdin) 09:40:43.132982 > 38 bytes data, server => client 09:40:43.133094 '229 Entering Passive Mode (|||38895|)\n' 09:40:43.134790 < 8 bytes data, client => server 09:40:43.135009 'TYPE I\r\n' 09:40:43.136511 Received DATA (on stdin) 09:40:43.136664 > 33 bytes data, server => client 09:40:43.136752 '200 I modify TYPE as you wanted\r\n' 09:40:43.137640 < 21 bytes data, client => server 09:40:43.137778 'SIZE verifiedserver\r\n' 09:40:43.138931 Received DATA (on stdin) 09:40:43.139077 > 8 bytes data, server => client 09:40:43.139247 '213 17\r\n' 09:40:43.140674 < 21 bytes data, client => server 09:40:43.141054 'RETR verifiedserver\r\n' 09:40:43.144542 Received DATA (on stdin) 09:40:43.144695 > 29 bytes data, server => client 09:40:43.144775 '150 Binary junk (17 bytes).\r\n' 09:40:43.150575 Received DATA (on stdin) 09:40:43.150733 > 28 bytes data, server => client 09:40:43.150814 '226 File transfer complete\r\n' 09:40:43.187538 < 6 bytes data, client => server 09:40:43.187719 'QUIT\r\n' 09:40:43.188925 Received DATA (on stdin) 09:40:43.189104 > 18 bytes data, server => client 09:40:43.189274 '221 bye bye baby\r\n' 09:40:43.190348 ====> Client disconnect 09:40:43.191936 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:42.128182 Running IPv4 version 09:40:42.128981 Listening on port 38895 09:40:42.129511 Wrote pid 91181 to log/12/server/ftp_sockdata.pid 09:40:42.129737 Received PING (on stdin) 09:40:42.130949 Received PORT (on stdin) 09:40:42.134347 ====> Client connect 09:40:42.145692 Received DATA (on stdin) 09:40:42.145852 > 17 bytes data, server => client 09:40:42.145939 'WE ROOLZ: 77501\r\n' 09:40:42.146689 Received DISC (on stdin) 09:40:42.146860 ====> Client forcibly disconnected 09:40:42.148174 Received QUIT (on stdin) 09:40:42.148327 quits 09:40:42.148854 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 350 === End of file server.cmd === Start of file valgrind350 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind350 test 0334...[HTTP 204 No content with chunked header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind334 ../src/curl -q --output log/56/curl334.out --include --trace-ascii log/56/trace334 --trace-config all --trace-time http://127.0.0.1:43265/want/334 > log/56/stdout334 2> log/56/stderr334 334: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 334 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind334 ../src/curl -q --output log/56/curl334.out --include --trace-ascii log/56/trace334 --trace-config all --trace-time http://127.0.0.1:43265/want/334 > log/56/stdout334 2> log/56/stderr334 === End of file commands.log === Start of file http_server.log 09:40:42.867088 ====> Client connect 09:40:42.867382 accept_connection 3 returned 4 09:40:42.867748 accept_connection 3 returned 0 09:40:42.867901 Read 93 bytes 09:40:42.867987 Process 93 bytes request 09:40:42.868064 Got request: GET /verifiedserver HTTP/1.1 09:40:42.868142 Are-we-friendly question received 09:40:42.868356 Wrote request (93 bytes) input to log/56/server.input 09:40:42.868749 Identifying ourselves as friends 09:40:42.869819 Response sent (56 bytes) and written to log/56/server.response 09:40:42.869927 special request received, no persistency 09:40:42.869998 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 334 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind334 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected funCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind284 ../src/curl -q --output log/64/curl284.out --include --trace-ascii log/64/trace284 --trace-config all --trace-time tftp://127.0.0.1:35711//284 > log/64/stdout284 2> log/64/stderr284 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind360 ../src/curl -q --output log/6/curl360.out --include --trace-ascii log/6/trace360 --trace-config all --trace-time http://127.0.0.1:37181/360 --fail-with-body --fail > log/6/stdout360 2> log/6/stderr360 ction valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind334 test 0316...[HTTP GET brotli compressed content of size more than CURL_MAX_WRITE_SIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind316 ../src/curl -q --output log/52/curl316.out --include --trace-ascii log/52/trace316 --trace-config all --trace-time http://127.0.0.1:40089/316 --compressed > log/52/stdout316 2> log/52/stderr316 316: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 316 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind316 ../src/curl -q --output log/52/curl316.out --include --trace-ascii log/52/trace316 --trace-config all --trace-time http://127.0.0.1:40089/316 --compressed > log/52/stdout316 2> log/52/stderr316 === End of file commands.log === Start of file http_server.log 09:40:42.632971 ====> Client connect 09:40:42.633261 accept_connection 3 returned 4 09:40:42.633415 accept_connection 3 returned 0 09:40:42.634110 Read 93 bytes 09:40:42.634252 Process 93 bytes request 09:40:42.634346 Got request: GET /verifiedserver HTTP/1.1 09:40:42.634419 Are-we-friendly question received 09:40:42.634741 Wrote request (93 bytes) input to log/52/server.input 09:40:42.634914 Identifying ourselves as friends 09:40:42.635405 Response sent (56 bytes) and written to log/52/server.response 09:40:42.635590 special request received, no persistency 09:40:42.635663 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 316 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind316 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind316 test 0360...[Error on both --fail-with-body and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind360 ../src/curl -q --output log/6/curl360.out --include --trace-ascii log/6/trace360 --trace-config all --trace-time http://127.0.0.1:37181/360 --fail-with-body --fail > log/6/stdout360 2> log/6/stderr360 curl returned 1, when expecting 2 360: exit FAILED == Contents of files in the log/6/ dir after test 360 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind360 ../src/curl -q --output log/6/curl360.out --include --trace-ascii log/6/trace360 --trace-config all --trace-time http://127.0.0.1:37181/360 --fail-with-body --fail > log/6/stdout360 2> log/6/stderr360 === End of file commands.log === Start of file http_server.log 09:40:43.252920 ====> Client connect 09:40:43.253235 accept_connection 3 returned 4 09:40:43.253416 accept_connection 3 returned 0 09:40:43.253701 Read 93 bytes 09:40:43.253794 Process 93 bytes request 09:40:43.253882 Got request: GET /verifiedserver HTTP/1.1 09:40:43.253963 Are-we-friendly question received 09:40:43.254219 Wrote request (93 bytes) input to log/6/server.input 09:40:43.254526 Identifying ourselves as friends 09:40:43.259011 Response sent (56 bytes) and written to log/6/server.response 09:40:43.259157 special request received, no persistency 09:40:43.259241 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 360 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind360 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind338 ../src/curl -q --output log/25/curl338.out --include --trace-ascii log/25/trace338 --trace-config all --trace-time http://127.0.0.1:41727/338 --next http://127.0.0.1:41727/338 --anyauth -u foo:moo > log/25/stdout338 2> log/25/stderr338 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind349 ../src/curl -q --output log/32/curl349.out --include --trace-ascii log/32/trace349 --trace-config all --trace-time http://127.0.0.1:45607/349 --fail-with-body > log/32/stdout349 2> log/32/stderr349 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind298 ../src/curl -q --output log/40/curl298.out --include --trace-ascii log/40/trace298 --trace-config all --trace-time --ftp-method nocwd ftp://127.0.0.1:45501/first/second/th%69rd/298 > log/40/stdout298 2> log/40/stderr298 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind336 ../src/curl -q --output log/44/curl336.out --include --trace-ascii log/44/trace336 --trace-config all --trace-time ftp://127.0.0.1:41125/336 --range 3-6 > log/44/stdout336 2> log/44/stderr336 stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind360 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/64/server/tftp_server.pid" --portfile "log/64/server/tftp_server.port" --logfile "log/64/tftp_server.log" --logdir "log/64" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 89046 port 35711 * pid tftp => 89046 89046 test 0284...[TFTP retrieve of boundary case 512 byte file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind284 ../src/curl -q --output log/64/curl284.out --include --trace-ascii log/64/trace284 --trace-config all --trace-time tftp://127.0.0.1:35711//284 > log/64/stdout284 2> log/64/stderr284 284: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 284 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind284 ../src/curl -q --output log/64/curl284.out --include --trace-ascii log/64/trace284 --trace-config all --trace-time tftp://127.0.0.1:35711//284 > log/64/stdout284 2> log/64/stderr284 === End of file commands.log === Start of file server.cmd Testnum 284 === End of file server.cmd === Start of file tftp_server.log 09:40:41.943762 Wrote pid 89046 to log/64/server/tftp_server.pid 09:40:41.944387 Wrote port 35711 to log/64/server/tftp_server.port 09:40:41.944602 Running IPv4 version on port UDP/35711 === End of file tftp_server.log === Start of file valgrind284 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind284 test 0338...[ANYAUTH connection reuse of non-authed connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind338 ../src/curl -q --output log/25/curl338.out --include --trace-ascii log/25/trace338 --trace-config all --trace-time http://127.0.0.1:41727/338 --next http://127.0.0.1:41727/338 --anyauth -u foo:moo > log/25/stdout338 2> log/25/stderr338 338: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 338 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind338 ../src/curl -q --output log/25/curl338.out --include --trace-ascii log/25/trace338 --trace-config all --trace-time http://127.0.0.1:41727/338 --next http://127.0.0.1:41727/338 --anyauth -u foo:moo > log/25/stdout338 2> log/25/stderr338 === End of file commands.log === Start of file http_server.log 09:40:42.932634 ====> Client connect 09:40:42.932962 accept_connection 3 returned 4 09:40:42.933128 accept_connection 3 returned 0 09:40:42.933267 Read 93 bytes 09:40:42.933364 Process 93 bytes request 09:40:42.933524 Got request: GET /verifiedserver HTTP/1.1 09:40:42.933633 Are-we-friendly question received 09:40:42.933865 Wrote request (93 bytes) input to log/25/server.input 09:40:42.934033 Identifying ourselves as friends 09:40:42.938010 Response sent (56 bytes) and written to log/25/server.response 09:40:42.938167 special request received, no persistency 09:40:42.938272 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 338 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind338 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind338 test 0349...[HTTP GET --fail-with-body on HTTP error return] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind349 ../src/curl -q --output log/32/curl349.out --include --trace-ascii log/32/trace349 --trace-config aCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind319 ../src/curl -q --output log/53/curl319.out --trace-ascii log/53/trace319 --trace-config all --trace-time http://127.0.0.1:34639/319 --raw > log/53/stdout319 2> log/53/stderr319 ll --trace-time http://127.0.0.1:45607/349 --fail-with-body > log/32/stdout349 2> log/32/stderr349 349: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 349 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind349 ../src/curl -q --output log/32/curl349.out --include --trace-ascii log/32/trace349 --trace-config all --trace-time http://127.0.0.1:45607/349 --fail-with-body > log/32/stdout349 2> log/32/stderr349 === End of file commands.log === Start of file http_server.log 09:40:43.151763 ====> Client connect 09:40:43.152097 accept_connection 3 returned 4 09:40:43.152268 accept_connection 3 returned 0 09:40:43.153281 Read 93 bytes 09:40:43.153683 Process 93 bytes request 09:40:43.153872 Got request: GET /verifiedserver HTTP/1.1 09:40:43.153966 Are-we-friendly question received 09:40:43.154231 Wrote request (93 bytes) input to log/32/server.input 09:40:43.154417 Identifying ourselves as friends 09:40:43.155257 Response sent (56 bytes) and written to log/32/server.response 09:40:43.155368 special request received, no persistency 09:40:43.155515 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 349 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind349 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind349 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/40/server/ftp_server.pid" --logfile "log/40/ftp_server.log" --logdir "log/40" --portfile "log/40/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45501 (log/40/server/ftp_server.port) RUN: FTP server is PID 89681 port 45501 * pid ftp => 89681 89681 test 0298...[FTP CWD with --ftp-method nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind298 ../src/curl -q --output log/40/curl298.out --include --trace-ascii log/40/trace298 --trace-config all --trace-time --ftp-method nocwd ftp://127.0.0.1:45501/first/second/th%69rd/298 > log/40/stdout298 2> log/40/stderr298 298: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 298 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind298 ../src/curl -q --output log/40/curl298.out --include --trace-ascii log/40/trace298 --trace-config all --trace-time --ftp-method nocwd ftp://127.0.0.1:45501/first/second/th%69rd/298 > log/40/stdout298 2> log/40/stderr298 === End of file commands.log === Start of file ftp_server.log 09:40:42.532167 FTP server listens on port IPv4/45501 09:40:42.533161 logged pid 89681 in log/40/server/ftp_server.pid 09:40:42.533414 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.783090 Running IPv4 version 09:40:42.783769 Listening on port 45501 09:40:42.784194 Wrote pid 90576 to log/40/server/ftp_sockctrl.pid 09:40:42.784616 Wrote port 45501 to log/40/server/ftp_server.port 09:40:42.784948 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 298 === End of file server.cmd === Start of file valgrind298 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind298 test 0336...[FTP range download when SIZE doesn't work] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind336 ../src/curl -q --output log/44/curl336.out --include --trace-ascii log/44/trace336 --trace-config all --trace-time ftp://127.0.0.1:41125/336 --range 3-6 > log/44/stdout336 2> log/44/stderr336 336: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 336 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind336 ../src/curl -q --output log/44/curl336.out --include --trace-ascii log/44/trace336 --trace-config all --trace-time ftp://127.0.0.1:41125/336 --range 3-6 > log/44/stdout336 2> log/44/stderr336 === End of file commands.log =CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind341 ../src/curl -q --output log/37/curl341.out --include --trace-ascii log/37/trace341 --trace-config all --trace-time http://127.0.0.1:37551/341 --etag-compare log/37/etag341 > log/37/stdout341 2> log/37/stderr341 == Start of file ftp_server.log 09:40:42.636914 ====> Client connect 09:40:42.638539 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.643470 < "USER anonymous" 09:40:42.643933 > "331 We are happy you popped in![CR][LF]" 09:40:42.648457 < "PASS ftp@example.com" 09:40:42.651994 > "230 Welcome you silly person[CR][LF]" 09:40:42.654170 < "PWD" 09:40:42.655022 > "257 "/" is current directory[CR][LF]" 09:40:42.659596 < "EPSV" 09:40:42.660130 ====> Passive DATA channel requested by client 09:40:42.660419 DATA sockfilt for passive data channel starting... 09:40:42.674327 DATA sockfilt for passive data channel started (pid 90833) 09:40:42.675283 DATA sockfilt for passive data channel listens on port 41419 09:40:42.675737 > "229 Entering Passive Mode (|||41419|)[LF]" 09:40:42.676082 Client has been notified that DATA conn will be accepted on port 41419 09:40:42.678998 Client connects to port 41419 09:40:42.679288 ====> Client established passive DATA connection on port 41419 09:40:42.680041 < "TYPE I" 09:40:42.680388 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:42.682976 < "SIZE verifiedserver" 09:40:42.683336 > "213 17[CR][LF]" 09:40:42.688842 < "RETR verifiedserver" 09:40:42.689274 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:42.689979 =====> Closing passive DATA connection... 09:40:42.690194 Server disconnects passive DATA connection 09:40:42.693136 Server disconnected passive DATA connection 09:40:42.693400 DATA sockfilt for passive data channel quits (pid 90833) 09:40:42.695484 DATA sockfilt for passive data channel quit (pid 90833) 09:40:42.695707 =====> Closed passive DATA connection 09:40:42.696130 > "226 File transfer complete[CR][LF]" 09:40:42.734630 < "QUIT" 09:40:42.735407 > "221 bye bye baby[CR][LF]" 09:40:42.736882 MAIN sockfilt said DISC 09:40:42.737187 ====> Client disconnected 09:40:42.737651 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.888597 ====> Client connect 09:40:42.894574 Received DATA (on stdin) 09:40:42.894735 > 160 bytes data, server => client 09:40:42.894819 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.894903 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.894984 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.895848 < 16 bytes data, client => server 09:40:42.896000 'USER anonymous\r\n' 09:40:42.899617 Received DATA (on stdin) 09:40:42.899778 > 33 bytes data, server => client 09:40:42.899858 '331 We are happy you popped in!\r\n' 09:40:42.900823 < 22 bytes data, client => server 09:40:42.900998 'PASS ftp@example.com\r\n' 09:40:42.902606 Received DATA (on stdin) 09:40:42.902756 > 30 bytes data, server => client 09:40:42.906210 '230 Welcome you silly person\r\n' 09:40:42.907072 < 5 bytes data, client => server 09:40:42.907218 'PWD\r\n' 09:40:42.908244 Received DATA (on stdin) 09:40:42.908384 > 30 bytes data, server => client 09:40:42.909733 '257 "/" is current directory\r\n' 09:40:42.910606 < 6 bytes data, client => server 09:40:42.910773 'EPSV\r\n' 09:40:42.930095 Received DATA (on stdin) 09:40:42.930243 > 38 bytes data, server => client 09:40:42.930328 '229 Entering Passive Mode (|||41419|)\n' 09:40:42.932020 < 8 bytes data, client => server 09:40:42.932177 'TYPE I\r\n' 09:40:42.934393 Received DATA (on stdin) 09:40:42.934593 > 33 bytes data, server => client 09:40:42.934672 '200 I modify TYPE as you wanted\r\n' 09:40:42.935892 < 21 bytes data, client => server 09:40:42.936030 'SIZE verifiedserver\r\n' 09:40:42.938609 Received DATA (on stdin) 09:40:42.938757 > 8 bytes data, server => client 09:40:42.938833 '213 17\r\n' 09:40:42.939416 < 21 bytes data, client => server 09:40:42.939656 'RETR verifiedserver\r\n' 09:40:42.944107 Received DATA (on stdin) 09:40:42.944230 > 29 bytes data, server => client 09:40:42.944307 '150 Binary junk (17 bytes).\r\n' 09:40:42.950145 Received DATA (on stdin) 09:40:42.950267 > 28 bytes data, server => client 09:40:42.950351 '226 File transfer complete\r\n' 09:40:42.987546 < 6 bytes data, client => server 09:40:42.987718 'QUIT\r\n' 09:40:42.988784 Received DATA (on stdin) 09:40:42.988915 > 18 bytes data, server => client 09:40:42.989392 '221 bye bye baby\r\n' 09:40:42.990005 ====> Client disconnect 09:40:42.994566 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:42.926543 Running IPv4 version 09:40:42.927080 Listening on port 41419 09:40:42.927567 Wrote pid 90833 to log/44/server/ftp_sockdata.pid 09:40:42.927751 Received PING (on stdin) 09:40:42.928397 Received PORT (on stdin) 09:40:42.932354 ====> Client connect 09:40:42.944662 Received DATA (on stdin) 09:40:42.944801 > 17 bytes data, server => client 09:40:42.944881 'WE ROOLZ: 77468\r\n' 09:40:42.945144 Received DISC (on stdin) 09:40:42.945298 ====> Client forcibly disconnected 09:40:42.947402 Received QUIT (on stdin) 09:40:42.947731 quits 09:40:42.948177 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY SIZE 500 no such command Testnum 336 === End of file server.cmd === Start of file valgrind336 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind336 test 0319...[HTTP GET gobbledigook transfer-encoded data in raw mode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind319 ../src/curl -q --output log/53/curl319.out --trace-ascii log/53/trace319 --trace-config all --trace-time http://127.0.0.1:34639/319 --raw > log/53/stdout319 2> log/53/stderr319 319: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 319 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind319 ../src/curl -q --output log/53/curl319.out --trace-ascii log/53/trace319 --trace-config all --trace-time http://127.0.0.1:34639/319 --raw > log/53/stdout319 2> log/53/stderr319 === End of file commands.log === Start of file http_server.log 09:40:42.775984 ====> Client connect 09:40:42.776598 accept_connection 3 returned 4 09:40:42.776985 accept_connection 3 returned 0 09:40:42.777171 Read 93 bytes 09:40:42.777283 Process 93 bytes request 09:40:42.777548 Got request: GET /verifiedserver HTTP/1.1 09:40:42.777708 Are-we-friendly questioCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind330 ../src/curl -q --output log/42/curl330.out --include --trace-ascii log/42/trace330 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/330 -x 127.0.0.1:42819 -H "Cookie: test=yes" --location > log/42/stdout330 2> log/42/stderr330 n received 09:40:42.778081 Wrote request (93 bytes) input to log/53/server.input 09:40:42.778264 Identifying ourselves as friends 09:40:42.779428 Response sent (56 bytes) and written to log/53/server.response 09:40:42.782694 special request received, no persistency 09:40:42.782774 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 319 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind319 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind319 test 0341...[A non existing file with --etag-compare is just a blank] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind341 ../src/curl -q --output log/37/curl341.out --include --trace-ascii log/37/trace341 --trace-config all --trace-time http://127.0.0.1:37551/341 --etag-compare log/37/etag341 > log/37/stdout341 2> log/37/stderr341 341: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 341 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind341 ../src/curl -q --output log/37/curl341.out --include --trace-ascii log/37/trace341 --trace-config all --trace-time http://127.0.0.1:37551/341 --etag-compare log/37/etag341 > log/37/stdout341 2> log/37/stderr341 === End of file commands.log === Start of file http_server.log 09:40:43.098729 ====> Client connect 09:40:43.099051 accept_connection 3 returned 4 09:40:43.099221 accept_connection 3 returned 0 09:40:43.099351 Read 93 bytes 09:40:43.099519 Process 93 bytes request 09:40:43.099642 Got request: GET /verifiedserver HTTP/1.1 09:40:43.099723 Are-we-friendly question received 09:40:43.099932 Wrote request (93 bytes) input to log/37/server.input 09:40:43.100095 Identifying ourselves as friends 09:40:43.102808 Response sent (56 bytes) and written to log/37/server.response 09:40:43.102920 special request received, no persistency 09:40:43.102990 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 341 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind341 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind341 test 0330...[HTTP with custom Cookie: and redirect to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind330 ../src/curl -q --output log/42/curl330.out --include --trace-ascii log/42/trace330 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/330 -x 127.0.0.1:42819 -H "Cookie: test=yes" --location > log/42/stdout330 2> log/42/stderr330 330: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 330 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind330 ../src/curl -q --output log/42/curl330.out --include --trace-ascii log/42/trace330 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/330 -x 127.0.0.1:42819 -H "Cookie: test=yes" --location > log/42/stdout330 2> log/42/stderr330 === End of file commands.log === Start of file http_server.log 09:40:42.804794 ====> Client connect 09:40:42.805097 accept_connection 3 returned 4 09:40:42.805261 accept_connection 3 returned 0 09:40:42.805402 Read 93 bytes 09:40:42.805597 Process 93 bytes request 09:40:42.805692 Got request: GET /verifiedserver HTTP/1.1 09:40:42.805771 Are-we-friendly question received 09:40:42.805990 Wrote request (93 bytes) input to log/42/server.input 09:40:42.806171 Identifying ourselves as friends 09:40:42.806940 Response sent (56 bytes) and written to log/42/server.response 09:40:42.807055 special request received, no CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind344 ../src/curl -q --output log/47/curl344.out --include --trace-ascii log/47/trace344 --trace-config all --trace-time http://127.0.0.1:41103/344 --etag-compare log/47/etag344 --etag-save log/47/etag344 > log/47/stdout344 2> log/47/stderr344 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind347 ../src/curl -q --output log/35/curl347.out --include --trace-ascii log/35/trace347 --trace-config all --trace-time http://127.0.0.1:43179/347 --etag-save log/35/etag347 > log/35/stdout347 2> log/35/stderr347 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind343 ../src/curl -q --output log/33/curl343.out --include --trace-ascii log/33/trace343 --trace-config all --trace-time http://127.0.0.1:36559/343 --etag-compare log/33/etag343 --etag-save log/33/out343 > log/33/stdout343 2> log/33/stderr343 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind348 ../src/curl -q --output log/22/curl348.out --include --trace-ascii log/22/trace348 --trace-config all --trace-time ftp://127.0.0.1:41867/348 -T log/22/test348.txt > log/22/stdout348 2> log/22/stderr348 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind286 ../src/curl -q --output log/34/curl286.out --include --trace-ascii log/34/trace286 --trace-config all --trace-time -T log/34/test286.txt tftp://127.0.0.1:35651// > log/34/stdout286 2> log/34/stderr286 persistency 09:40:42.807128 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 330 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind330 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind330 test 0347...[--etag-save with blank incoming header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind347 ../src/curl -q --output log/35/curl347.out --include --trace-ascii log/35/trace347 --trace-config all --trace-time http://127.0.0.1:43179/347 --etag-save log/35/etag347 > log/35/stdout347 2> log/35/stderr347 347: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 347 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind347 ../src/curl -q --output log/35/curl347.out --include --trace-ascii log/35/trace347 --trace-config all --trace-time http://127.0.0.1:43179/347 --etag-save log/35/etag347 > log/35/stdout347 2> log/35/stderr347 === End of file commands.log === Start of file http_server.log 09:40:43.117967 ====> Client connect 09:40:43.118586 accept_connection 3 returned 4 09:40:43.118803 accept_connection 3 returned 0 09:40:43.119926 Read 93 bytes 09:40:43.120242 Process 93 bytes request 09:40:43.120383 Got request: GET /verifiedserver HTTP/1.1 09:40:43.120607 Are-we-friendly question received 09:40:43.120918 Wrote request (93 bytes) input to log/35/server.input 09:40:43.121205 Identifying ourselves as friends 09:40:43.125798 Response sent (56 bytes) and written to log/35/server.response 09:40:43.125928 special request received, no persistency 09:40:43.126003 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 347 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind347 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind347 test 0344...[Both --etag-compare and -save store new Etag using non-existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind344 ../src/curl -q --output log/47/curl344.out --include --trace-ascii log/47/trace344 --trace-config all --trace-time http://127.0.0.1:41103/344 --etag-compare log/47/etag344 --etag-save log/47/etag344 > log/47/stdout344 2> log/47/stderr344 344: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 344 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind344 ../src/curl -q --output log/47/curl344.out --include --trace-ascii log/47/trace344 --trace-config all --trace-time http://127.0.0.1:41103/344 --etag-compare log/47/etag344 --etag-save log/47/etag344 > log/47/stdout344 2> log/47/stderr344 === End of file commands.log === Start of file http_server.log 09:40:43.122623 ====> Client connect 09:40:43.123020 accept_connection 3 returned 4 09:40:43.123214 accept_connection 3 returned 0 09:40:43.123363 Read 93 bytes 09:40:43.123560 Process 93 bytes request 09:40:43.123699 Got request: GET /verifiedserver HTTP/1.1 09:40:43.123811 Are-we-friendly question received 09:40:43.124144 Wrote request (93 bytes) input to log/47/server.input 09:40:43.124404 Identifying ourselves as friends 09:40:43.130308 Response sent (56 bytes) and written to log/47/server.response 09:40:43.130552 special request received, no persistency 09:40:43.130690 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind370 ../src/curl -q --output log/31/curl370.out --include --trace-ascii log/31/trace370 --trace-config all --trace-time http://127.0.0.1:47/370 --etag-save log/31/nowhere/etag370 > log/31/stdout370 2> log/31/stderr370 curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 344 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind344 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind344 test 0348...[FTP upload file with 552 disk full response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind348 ../src/curl -q --output log/22/curl348.out --include --trace-ascii log/22/trace348 --trace-config all --trace-time ftp://127.0.0.1:41867/348 -T log/22/test348.txt > log/22/stdout348 2> log/22/stderr348 348: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 348 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind348 ../src/curl -q --output log/22/curl348.out --include --trace-ascii log/22/trace348 --trace-config all --trace-time ftp://127.0.0.1:41867/348 -T log/22/test348.txt > log/22/stdout348 2> log/22/stderr348 === End of file commands.log === Start of file ftp_server.log 09:40:42.961890 ====> Client connect 09:40:42.963240 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.972478 < "USER anonymous" 09:40:42.972948 > "331 We are happy you popped in![CR][LF]" 09:40:42.977121 < "PASS ftp@example.com" 09:40:42.979004 > "230 Welcome you silly person[CR][LF]" 09:40:42.984300 < "PWD" 09:40:42.986131 > "257 "/" is current directory[CR][LF]" 09:40:42.986832 < "EPSV" 09:40:42.987095 ====> Passive DATA channel requested by client 09:40:42.987258 DATA sockfilt for passive data channel starting... 09:40:43.011884 DATA sockfilt for passive data channel started (pid 91319) 09:40:43.016060 DATA sockfilt for passive data channel listens on port 42031 09:40:43.016476 > "229 Entering Passive Mode (|||42031|)[LF]" 09:40:43.016718 Client has been notified that DATA conn will be accepted on port 42031 09:40:43.021933 Client connects to port 42031 09:40:43.022373 ====> Client established passive DATA connection on port 42031 09:40:43.027282 < "TYPE I" 09:40:43.027669 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:43.033516 < "SIZE verifiedserver" 09:40:43.036936 > "213 17[CR][LF]" 09:40:43.039870 < "RETR verifiedserver" 09:40:43.043003 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:43.044092 =====> Closing passive DATA connection... 09:40:43.044339 Server disconnects passive DATA connection 09:40:43.046877 Server disconnected passive DATA connection 09:40:43.047155 DATA sockfilt for passive data channel quits (pid 91319) 09:40:43.051685 DATA sockfilt for passive data channel quit (pid 91319) 09:40:43.052054 =====> Closed passive DATA connection 09:40:43.052411 > "226 File transfer complete[CR][LF]" 09:40:43.084855 < "QUIT" 09:40:43.088223 > "221 bye bye baby[CR][LF]" 09:40:43.092220 MAIN sockfilt said DISC 09:40:43.096008 ====> Client disconnected 09:40:43.096667 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:43.212804 ====> Client connect 09:40:43.217294 Received DATA (on stdin) 09:40:43.217562 > 160 bytes data, server => client 09:40:43.217673 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:43.217772 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:43.217855 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:43.222058 < 16 bytes data, client => server 09:40:43.222229 'USER anonymous\r\n' 09:40:43.228670 Received DATA (on stdin) 09:40:43.228855 > 33 bytes data, server => client 09:40:43.228934 '331 We are happy you popped in!\r\n' 09:40:43.229830 < 22 bytes data, client => server 09:40:43.230015 'PASS ftp@example.com\r\n' 09:40:43.231175 Received DATA (on stdin) 09:40:43.231305 > 30 bytes data, server => client 09:40:43.233078 '230 Welcome you silly person\r\n' 09:40:43.236655 < 5 bytes data, client => server 09:40:43.236892 'PWD\r\n' 09:40:43.238381 Received DATA (on stdin) 09:40:43.238583 > 30 bytes data, server => client 09:40:43.238756 '257 "/" is current directory\r\n' 09:40:43.239431 < 6 bytes data, client => server 09:40:43.239614 'EPSV\r\n' 09:40:43.272632 Received DATA (on stdin) 09:40:43.272827 > 38 bytes data, server => client 09:40:43.272907 '229 Entering Passive Mode (|||42031|)\n' 09:40:43.276935 < 8 bytes data, client => server 09:40:43.277081 'TYPE I\r\n' 09:40:43.285550 Received DATA (on stdin) 09:40:43.285701 > 33 bytes data, server => client 09:40:43.285788 '200 I modify TYPE as you wanted\r\n' 09:40:43.286396 < 21 bytes data, client => server 09:40:43.286610 'SIZE verifiedserver\r\n' 09:40:43.287823 Received DATA (on stdin) 09:40:43.287979 > 8 bytes data, server => client 09:40:43.290983 '213 17\r\n' 09:40:43.291717 < 21 bytes data, client => server 09:40:43.291862 'RETR verifiedserver\r\n' 09:40:43.294108 Received DATA (on stdin) 09:40:43.294258 > 29 bytes data, server => client 09:40:43.294499 '150 Binary junk (17 bytes).\r\n' 09:40:43.306611 Received DATA (on stdin) 09:40:43.306792 > 28 bytes data, server => client 09:40:43.306893 '226 File transfer complete\r\n' 09:40:43.337227 < 6 bytes data, client => server 09:40:43.337395 'QUIT\r\n' 09:40:43.342622 Received DATA (on stdin) 09:40:43.342772 > 18 bytes data, server => client 09:40:43.342860 '221 bye bye baby\r\n' 09:40:43.345633 ====> Client disconnect 09:40:43.346533 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:43.261236 Running IPv4 version 09:40:43.261861 Listening on port 42031 09:40:43.262262 Wrote pid 91319 to log/22/server/ftp_sockdata.pid 09:40:43.265170 Received PING (on stdin) 09:40:43.266060 Received PORT (on stdin) 09:40:43.275002 ====> Client connect 09:40:43.298392 Received DATA (on stdin) 09:40:43.298634 > 17 bytes data, server => client 09:40:43.298735 'WE ROOLZ: 77494\r\n' 09:40:43.299062 Received DISC (on stdin) 09:40:43.299221 ====> Client forcibly disconnected 09:40:43.303561 Received QUIT (on stdin) 09:40:43.303738 quits 09:40:43.304295 ============> sockfiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind329 ../src/curl -q --output log/27/curl329.out --include --trace-ascii log/27/trace329 --trace-config all --trace-time http://127.0.0.1:42323/we/want/329 -b log/27/jar329.txt -b log/27/jar329-2.txt -H "Host: host.foo.com" http://127.0.0.1:42323/we/want/3290002 > log/27/stdout329 2> log/27/stderr329 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind353 ../src/curl -q --output log/30/curl353.out --include --trace-ascii log/30/trace353 --trace-config all --trace-time ftp://127.0.0.1:42901/ --ftp-method singlecwd > log/30/stdout353 2> log/30/stderr353 lt quits === End of file ftp_sockdata.log === Start of file server.cmd STOR 552 disk full Testnum 348 === End of file server.cmd === Start of file test348.txt data to see that FTP works so does it? === End of file test348.txt === Start of file valgrind348 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind348 test 0343...[Both --etag-compare and --etag-save to save new Etag] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind343 ../src/curl -q --output log/33/curl343.out --include --trace-ascii log/33/trace343 --trace-config all --trace-time http://127.0.0.1:36559/343 --etag-compare log/33/etag343 --etag-save log/33/out343 > log/33/stdout343 2> log/33/stderr343 343: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 343 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind343 ../src/curl -q --output log/33/curl343.out --include --trace-ascii log/33/trace343 --trace-config all --trace-time http://127.0.0.1:36559/343 --etag-compare log/33/etag343 --etag-save log/33/out343 > log/33/stdout343 2> log/33/stderr343 === End of file commands.log === Start of file etag343 "21025-dc7-39462498" === End of file etag343 === Start of file http_server.log 09:40:43.139815 ====> Client connect 09:40:43.140188 accept_connection 3 returned 4 09:40:43.140700 accept_connection 3 returned 0 09:40:43.141100 Read 93 bytes 09:40:43.141401 Process 93 bytes request 09:40:43.141874 Got request: GET /verifiedserver HTTP/1.1 09:40:43.142156 Are-we-friendly question received 09:40:43.142773 Wrote request (93 bytes) input to log/33/server.input 09:40:43.143320 Identifying ourselves as friends 09:40:43.144557 Response sent (56 bytes) and written to log/33/server.response 09:40:43.144682 special request received, no persistency 09:40:43.144757 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 343 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind343 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind343 setenv TZ = GMT test 0329...[HTTP cookie with Max-Age=0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind329 ../src/curl -q --output log/27/curl329.out --include --trace-ascii log/27/trace329 --trace-config all --trace-time http://127.0.0.1:42323/we/want/329 -b log/27/jar329.txt -b log/27/jar329-2.txt -H "Host: host.foo.com" http://127.0.0.1:42323/we/want/3290002 > log/27/stdout329 2> log/27/stderr329 329: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 329 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind329 ../src/curl -q --output log/27/curl329.out --include --trace-ascii log/27/trace329 --trace-config all --trace-time http://127.0.0.1:42323/we/want/329 -b log/27/jar329.txt -b log/27/jar329-2.txt -H "Host: host.foo.com" http://127.0.0.1:42323/we/want/3290002 > log/27/stdout329 2> log/27/stderr329 === End of file commands.log === Start of file http_server.log 09:40:42.857907 ====> Client connect 09:40:42.858264 accept_connection 3 returned 4 09:40:42.858537 accept_connection 3 returned 0 09:40:42.862248 Read 93 bytes 09:40:42.862509 Process 93 bytes request 09:40:42.862684 Got request: GET /verifiedserver HTTP/1.1 09:40:42.862801 Are-we-friendly question received 09:40:42.863045 Wrote request (93 bytes) input to log/27/server.input 09:40:42.863334 Identifying ourselves as friends 09:40:42.869820 Response sent (56 bytes) and written to log/27/server.response 09:40:42.869928 special request received, no persistency 09:40:42.869994 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind352 ../src/curl -q --output log/13/curl352.out --include --trace-ascii log/13/trace352 --trace-config all --trace-time ftp://127.0.0.1:34087// --ftp-method singlecwd > log/13/stdout352 2> log/13/stderr352 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind354 ../src/curl -q --output log/28/curl354.out --include --trace-ascii log/28/trace354 --trace-config all --trace-time ftp://127.0.0.1:34373/354 > log/28/stdout354 2> log/28/stderr354 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind342 ../src/curl -q --output log/3/curl342.out --include --trace-ascii log/3/trace342 --trace-config all --trace-time http://127.0.0.1:42107/342 --etag-compare log/3/etag342 > log/3/stdout342 2> log/3/stderr342 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind355 ../src/curl -q --output log/26/curl355.out --include --trace-ascii log/26/trace355 --trace-config all --trace-time http://127.0.0.1:46481/355 --alt-svc "" > log/26/stdout355 2> log/26/stderr355 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind331 ../src/curl -q --output log/20/curl331.out --include --trace-ascii log/20/trace331 --trace-config all --trace-time -x http://127.0.0.1:45475 http://moo/we/want/331 -b none http://moo/we/want/3310002 > log/20/stdout331 2> log/20/stderr331 === Start of file jar329.txt .host.foo.com TRUE /we/want/ FALSE 22147483647 test no .host.foo.com TRUE /we/want/ FALSE 22147483647 tester yes === End of file jar329.txt === Start of file server.cmd Testnum 329 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind329 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind329 * starts no server test 0370...[--etag-save with bad path - no transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind370 ../src/curl -q --output log/31/curl370.out --include --trace-ascii log/31/trace370 --trace-config all --trace-time http://127.0.0.1:47/370 --etag-save log/31/nowhere/etag370 > log/31/stdout370 2> log/31/stderr370 curl returned 1, when expecting 26 370: exit FAILED == Contents of files in the log/31/ dir after test 370 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind370 ../src/curl -q --output log/31/curl370.out --include --trace-ascii log/31/trace370 --trace-config all --trace-time http://127.0.0.1:47/370 --etag-save log/31/nowhere/etag370 > log/31/stdout370 2> log/31/stderr370 === End of file commands.log === Start of file server.cmd Testnum 370 === End of file server.cmd === Start of file valgrind370 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind370 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/34/server/tftp_server.pid" --portfile "log/34/server/tftp_server.port" --logfile "log/34/tftp_server.log" --logdir "log/34" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 89134 port 35651 * pid tftp => 89134 89134 test 0286...[TFTP send of boundary case 512 byte file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind286 ../src/curl -q --output log/34/curl286.out --include --trace-ascii log/34/trace286 --trace-config all --trace-time -T log/34/test286.txt tftp://127.0.0.1:35651// > log/34/stdout286 2> log/34/stderr286 286: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 286 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind286 ../src/curl -q --output log/34/curl286.out --include --trace-ascii log/34/trace286 --trace-config all --trace-time -T log/34/test286.txt tftp://127.0.0.1:35651// > log/34/stdout286 2> log/34/stderr286 === End of file commands.log === Start of file server.cmd Testnum 286 === End of file server.cmd === Start of file test286.txt A chunk of data which exactly fits into a 512 byte TFTP block, testing a boundary condition in the TFTP transmit code. 89ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF === End of file test286.txt === Start of file tftp_server.log 09:40:41.982112 Wrote pid 89134 to log/34/server/tftp_server.pid 09:40:41.982865 Wrote port 35651 to log/34/server/tftp_server.port 09:40:41.983093 Running IPv4 version on port UDP/35651 === End of file tftp_server.log === Start of file valgrind286 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind286 test 0342...[Check ifCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind346 ../src/curl -q --output log/8/curl346.out --include --trace-ascii log/8/trace346 --trace-config all --trace-time -x http://127.0.0.1:46129/346 -U puser: -u suser: http://remote.example/346 > log/8/stdout346 2> log/8/stderr346 --etag-compare set correct etag in header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind342 ../src/curl -q --output log/3/curl342.out --include --trace-ascii log/3/trace342 --trace-config all --trace-time http://127.0.0.1:42107/342 --etag-compare log/3/etag342 > log/3/stdout342 2> log/3/stderr342 342: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 342 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind342 ../src/curl -q --output log/3/curl342.out --include --trace-ascii log/3/trace342 --trace-config all --trace-time http://127.0.0.1:42107/342 --etag-compare log/3/etag342 > log/3/stdout342 2> log/3/stderr342 === End of file commands.log === Start of file etag342 "21025-dc7-39462498" === End of file etag342 === Start of file http_server.log 09:40:43.126047 ====> Client connect 09:40:43.126420 accept_connection 3 returned 4 09:40:43.126910 accept_connection 3 returned 0 09:40:43.127060 Read 93 bytes 09:40:43.127180 Process 93 bytes request 09:40:43.127284 Got request: GET /verifiedserver HTTP/1.1 09:40:43.127376 Are-we-friendly question received 09:40:43.127732 Wrote request (93 bytes) input to log/3/server.input 09:40:43.127940 Identifying ourselves as friends 09:40:43.128915 Response sent (56 bytes) and written to log/3/server.response 09:40:43.129065 special request received, no persistency 09:40:43.129131 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 342 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind342 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind342 test 0352...[FTP root dir list singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind352 ../src/curl -q --output log/13/curl352.out --include --trace-ascii log/13/trace352 --trace-config all --trace-time ftp://127.0.0.1:34087// --ftp-method singlecwd > log/13/stdout352 2> log/13/stderr352 352: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 352 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind352 ../src/curl -q --output log/13/curl352.out --include --trace-ascii log/13/trace352 --trace-config all --trace-time ftp://127.0.0.1:34087// --ftp-method singlecwd > log/13/stdout352 2> log/13/stderr352 === End of file commands.log === Start of file ftp_server.log 09:40:43.025069 ====> Client connect 09:40:43.026332 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:43.029030 < "USER anonymous" 09:40:43.029400 > "331 We are happy you popped in![CR][LF]" 09:40:43.034575 < "PASS ftp@example.com" 09:40:43.036481 > "230 Welcome you silly person[CR][LF]" 09:40:43.037299 < "PWD" 09:40:43.037686 > "257 "/" is current directory[CR][LF]" 09:40:43.043687 < "EPSV" 09:40:43.047230 ====> Passive DATA channel requested by client 09:40:43.047450 DATA sockfilt for passive data channel starting... 09:40:43.074166 DATA sockfilt for passive data channel started (pid 91382) 09:40:43.077218 DATA sockfilt for passive data channel listens on port 46485 09:40:43.077892 > "229 Entering Passive Mode (|||46485|)[LF]" 09:40:43.078204 Client has been notified that DATA conn will be accepted on port 46485 09:40:43.083930 Client connects to port 46485 09:40:43.084387 ====> Client established passive DATA connection on port 46485 09:40:43.085462 < "TYPE I" 09:40:43.085964 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:43.093368 < "SIZE verifiedserver" 09:40:43.097651 > "213 17[CR][LF]" 09:40:43.105576 < "RETR verifiedserver" 09:40:43.108476 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:43.109424 =====> Closing passive DATA connection... 09:40:43.109679 Server disconnects passive DATA connection 09:40:43.115249 Server disconnected passive DATA connection 09:40:43.115518 DATA sockfilt for passive data channel quits (pid 91382) 09:40:43.131581 DATA sockfilt for passive data channel quit (pid 91382) 09:40:43.131943 =====> Closed passive DATA connection 09:40:43.133097 > "226 File transfer complete[CR][LF]" 09:40:43.151390 < "QUIT" 09:40:43.152261 > "221 bye bye baby[CR][LF]" 09:40:43.158890 MAIN sockfilt said DISC 09:40:43.159238 ====> Client disconnected 09:40:43.159852 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.275692 ====> Client connect 09:40:42.280317 Received DATA (on stdin) 09:40:42.280575 > 160 bytes data, server => client 09:40:42.280699 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.280783 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.280848 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.281671 < 16 bytes data, client => server 09:40:42.281799 'USER anonymous\r\n' 09:40:42.286554 Received DATA (on stdin) 09:40:42.286703 > 33 bytes data, server => client 09:40:42.286783 '331 We are happy you popped in!\r\n' 09:40:42.287338 < 22 bytes data, client => server 09:40:42.287574 'PASS ftp@example.com\r\n' 09:40:42.288852 Received DATA (on stdin) 09:40:42.288983 > 30 bytes data, server => client 09:40:42.289154 '230 Welcome you silly person\r\n' 09:40:42.289831 < 5 bytes data, client => server 09:40:42.289974 'PWD\r\n' 09:40:42.294184 Received DATA (on stdin) 09:40:42.294342 > 30 bytes data, server => client 09:40:42.294499 '257 "/" is current directoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind335 ../src/curl -q --output log/38/curl335.out --include --trace-ascii log/38/trace335 --trace-config all --trace-time http://digest:alot@data.from.server.requiring.digest.hohoho.com/335 --proxy http://foo:bar@127.0.0.1:33511 --proxy-digest --digest > log/38/stdout335 2> log/38/stderr335 ry\r\n' 09:40:42.295289 < 6 bytes data, client => server 09:40:42.295585 'EPSV\r\n' 09:40:42.332261 Received DATA (on stdin) 09:40:42.332397 > 38 bytes data, server => client 09:40:42.332585 '229 Entering Passive Mode (|||46485|)\n' 09:40:42.334906 < 8 bytes data, client => server 09:40:42.335025 'TYPE I\r\n' 09:40:42.344575 Received DATA (on stdin) 09:40:42.344780 > 33 bytes data, server => client 09:40:42.344914 '200 I modify TYPE as you wanted\r\n' 09:40:42.345692 < 21 bytes data, client => server 09:40:42.345851 'SIZE verifiedserver\r\n' 09:40:42.347611 Received DATA (on stdin) 09:40:42.347766 > 8 bytes data, server => client 09:40:42.357548 '213 17\r\n' 09:40:42.358292 < 21 bytes data, client => server 09:40:42.358524 'RETR verifiedserver\r\n' 09:40:42.359818 Received DATA (on stdin) 09:40:42.359979 > 29 bytes data, server => client 09:40:42.361624 '150 Binary junk (17 bytes).\r\n' 09:40:42.386016 Received DATA (on stdin) 09:40:42.386175 > 28 bytes data, server => client 09:40:42.386364 '226 File transfer complete\r\n' 09:40:42.404099 < 6 bytes data, client => server 09:40:42.404284 'QUIT\r\n' 09:40:42.405534 Received DATA (on stdin) 09:40:42.405704 > 18 bytes data, server => client 09:40:42.406398 '221 bye bye baby\r\n' 09:40:42.409403 ====> Client disconnect 09:40:42.413894 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:43.324939 Running IPv4 version 09:40:43.325701 Listening on port 46485 09:40:43.326224 Wrote pid 91382 to log/13/server/ftp_sockdata.pid 09:40:43.326522 Received PING (on stdin) 09:40:43.328416 Received PORT (on stdin) 09:40:43.334592 ====> Client connect 09:40:43.367718 Received DATA (on stdin) 09:40:43.367887 > 17 bytes data, server => client 09:40:43.367991 'WE ROOLZ: 79551\r\n' 09:40:43.368355 Received DISC (on stdin) 09:40:43.368585 ====> Client forcibly disconnected 09:40:43.371022 Received QUIT (on stdin) 09:40:43.371161 quits 09:40:43.371622 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 352 === End of file server.cmd === Start of file valgrind352 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind352 test 0355...[load Alt-Svc from file and use] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind355 ../src/curl -q --output log/26/curl355.out --include --trace-ascii log/26/trace355 --trace-config all --trace-time http://127.0.0.1:46481/355 --alt-svc "" > log/26/stdout355 2> log/26/stderr355 355: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 355 === Start of file altsvc-355 h1 example.com 80 h1 127.0.0.1 46481 "20290222 22:19:28" 0 0 === End of file altsvc-355 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind355 ../src/curl -q --output log/26/curl355.out --include --trace-ascii log/26/trace355 --trace-config all --trace-time http://127.0.0.1:46481/355 --alt-svc "" > log/26/stdout355 2> log/26/stderr355 === End of file commands.log === Start of file http_server.log 09:40:43.276227 ====> Client connect 09:40:43.276713 accept_connection 3 returned 4 09:40:43.276890 accept_connection 3 returned 0 09:40:43.281316 Read 93 bytes 09:40:43.281549 Process 93 bytes request 09:40:43.281666 Got request: GET /verifiedserver HTTP/1.1 09:40:43.281760 Are-we-friendly question received 09:40:43.282006 Wrote request (93 bytes) input to log/26/server.input 09:40:43.282241 Identifying ourselves as friends 09:40:43.286954 Response sent (56 bytes) and written to log/26/server.response 09:40:43.287084 special request received, no persistency 09:40:43.287160 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 355 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind355 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind355 test 0354...[FTP without password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind354 ../src/curl -q --output log/28/curl354.out --include --trace-ascii log/28/trace354 --trace-config all --trace-time ftp://127.0.0.1:34373/354 > log/28/stdout354 2> log/28/stderr354 354: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 354 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind354 ../src/curl -q --output log/28/curl354.out --include --trace-ascii log/28/trace354 --trace-config all --trace-time ftp://127.0.0.1:34373/354 > log/28/stdout354 2> log/28/stderr354 === End of file commands.log === Start of file ftp_server.log 09:40:42.985476 ====> Client connect 09:40:42.987440 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.992528 < "USER anonymous" 09:40:42.993357 > "331 We are happy you popped in![CR][LF]" 09:40:42.997106 < "PASS ftp@example.com" 09:40:42.998324 > "230 Welcome you silly person[CR][LF]" 09:40:42.999445 < "PWD" 09:40:43.000517 > "257 "/" is current directory[CR][LF]" 09:40:43.001545 < "EPSV" 09:40:43.001868 ====> Passive DATA channel requested by client 09:40:43.002086 DATA sockfilt for passive data channel starting... 09:40:43.013569 DATA sockfilt for passive data channel started (pid 91332) 09:40:43.015135 DATA sockfilt for passive data channel listens on port 42897 09:40:43.015585 > "229 Entering Passive Mode (|||42897|)[LF]" 09:40:43.015907 Client has been notified that DATA conn will be accepted on port 42897 09:40:43.018594 Client connects to port 42897 09:40:43.019217 ====> Client established passive DATA connection on port 42897 09:40:43.023918 < "TYPE I" 09:40:43.025415 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:43.026628 < "SIZE verifiedserver" 09:40:43.027462 > "213 17[CR][LF]" 09:40:43.029417 < "RETR verifiedserver" 09:40:43.029940 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:43.030706 =====> Closing passive DATA connection... 09:40:43.031052 Server disconnects passive DATA connection 09:40:43.033159 Server disconnected passive DATA connection 09:40:43.033467 DATA sockfilt for passive data channel quits (pid 91332) 09:40:43.039110 DATA sockfilt for passive data channel quit (pid 91332) 09:40:43.039446 =====> Closed passive DATA connection 09:40:43.039933 > "226 File transfer complete[CR][LF]" 09:40:43.075374 < "QUIT" 09:40:43.075880 > "221 bye bye baby[CR][LF]" 09:40:43.078344 MAIN sockfilt said DISC 09:40:43.078643 ====> Client disconnected 09:40:43.079270 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.236807 ====> Client connect 09:40:42.240705 Received DATA (on stdin) 09:40:42.240877 > 160 bytes data, server => client 09:40:42.241607 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.241764 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.241845 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.244996 < 16 bytes data, client => server 09:40:42.245169 'USER anonymous\r\n' 09:40:42.246675 Received DATA (on stdin) 09:40:42.246829 > 33 bytes data, server => client 09:40:42.247387 '331 We are happy you popped in!\r\n' 09:40:42.249957 < 22 bytes data, client => server 09:40:42.250121 'PASS ftp@example.com\r\n' 09:40:42.251158 Received DATA (on stdin) 09:40:42.251310 > 30 bytes data, server => client 09:40:42.251571 '230 Welcome you silly person\r\n' 09:40:42.252251 < 5 bytes data, client => server 09:40:42.252391 'PWD\r\n' 09:40:42.253527 Received DATA (on stdin) 09:40:42.253666 > 30 bytes data, server => client 09:40:42.253827 '257 "/" is current directory\r\n' 09:40:42.254560 < 6 bytes data, client => server 09:40:42.254675 'EPSV\r\n' 09:40:42.269316 Received DATA (on stdin) 09:40:42.269545 > 38 bytes data, server => client 09:40:42.269651 '229 Entering Passive Mode (|||42897|)\n' 09:40:42.276632 < 8 bytes data, client => server 09:40:42.276810 'TYPE I\r\n' 09:40:42.278011 Received DATA (on stdin) 09:40:42.278165 > 33 bytes data, server => client 09:40:42.278361 '200 I modify TYPE as you wanted\r\n' 09:40:42.279630 < 21 bytes data, client => server 09:40:42.279768 'SIZE verifiedserver\r\n' 09:40:42.280825 Received DATA (on stdin) 09:40:42.280972 > 8 bytes data, server => client 09:40:42.281544 '213 17\r\n' 09:40:42.282409 < 21 bytes data, client => server 09:40:42.282638 'RETR verifiedserver\r\n' 09:40:42.285096 Received DATA (on stdin) 09:40:42.285247 > 29 bytes data, server => client 09:40:42.285362 '150 Binary junk (17 bytes).\r\n' 09:40:42.293630 Received DATA (on stdin) 09:40:42.293846 > 28 bytes data, server => client 09:40:42.293985 '226 File transfer complete\r\n' 09:40:42.328402 < 6 bytes data, client => server 09:40:42.328642 'QUIT\r\n' 09:40:42.329937 Received DATA (on stdin) 09:40:42.330096 > 18 bytes data, server => client 09:40:42.330205 '221 bye bye baby\r\n' 09:40:42.330937 ====> Client disconnect 09:40:42.335719 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:43.265644 Running IPv4 version 09:40:43.266237 Listening on port 42897 09:40:43.266720 Wrote pid 91332 to log/28/server/ftp_sockdata.pid 09:40:43.266875 Received PING (on stdin) 09:40:43.268077 Received PORT (on stdin) 09:40:43.271757 ====> Client connect 09:40:43.284057 Received DATA (on stdin) 09:40:43.284231 > 17 bytes data, server => client 09:40:43.284320 'WE ROOLZ: 77437\r\n' 09:40:43.285069 Received DISC (on stdin) 09:40:43.285242 ====> Client forcibly disconnected 09:40:43.287538 Received QUIT (on stdin) 09:40:43.287684 quits 09:40:43.288087 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY USER 200 fine, proceed without password Testnum 354 === End of file server.cmd === Start of file valgrind354 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind354 test 0353...[FTP home dir list singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind353 ../src/curl -q --output log/30/curl353.out --include --trace-ascii log/30/trace353 --trace-config all --trace-time ftp://127.0.0.1:42901/ --ftp-method singlecwd > log/30/stdout353 2> log/30/stderr353 353: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 353 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind353 ../src/curl -q --output log/30/curl353.out --include --trace-ascii log/30/trace353 --trace-config all --trace-time ftp://127.0.0.1:42901/ --ftp-method singlecwd > log/30/stdCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind285 ../src/curl -q --output log/51/curl285.out --include --trace-ascii log/51/trace285 --trace-config all --trace-time -T log/51/test285.txt tftp://127.0.0.1:56570// --connect-timeout 549 > log/51/stdout285 2> log/51/stderr285 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind297 ../src/curl -q --output log/19/curl297.out --include --trace-ascii log/19/trace297 --trace-config all --trace-time --ftp-method singlecwd ftp://127.0.0.1:32777/first/second/third/297 > log/19/stdout297 2> log/19/stderr297 out353 2> log/30/stderr353 === End of file commands.log === Start of file ftp_server.log 09:40:43.019955 ====> Client connect 09:40:43.022403 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:43.027416 < "USER anonymous" 09:40:43.027994 > "331 We are happy you popped in![CR][LF]" 09:40:43.029732 < "PASS ftp@example.com" 09:40:43.030274 > "230 Welcome you silly person[CR][LF]" 09:40:43.033598 < "PWD" 09:40:43.034099 > "257 "/" is current directory[CR][LF]" 09:40:43.036700 < "EPSV" 09:40:43.037174 ====> Passive DATA channel requested by client 09:40:43.037419 DATA sockfilt for passive data channel starting... 09:40:43.061625 DATA sockfilt for passive data channel started (pid 91374) 09:40:43.063190 DATA sockfilt for passive data channel listens on port 35715 09:40:43.063975 > "229 Entering Passive Mode (|||35715|)[LF]" 09:40:43.064267 Client has been notified that DATA conn will be accepted on port 35715 09:40:43.067928 Client connects to port 35715 09:40:43.068344 ====> Client established passive DATA connection on port 35715 09:40:43.070354 < "TYPE I" 09:40:43.071361 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:43.074064 < "SIZE verifiedserver" 09:40:43.074485 > "213 17[CR][LF]" 09:40:43.076500 < "RETR verifiedserver" 09:40:43.077378 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:43.080552 =====> Closing passive DATA connection... 09:40:43.080920 Server disconnects passive DATA connection 09:40:43.082959 Server disconnected passive DATA connection 09:40:43.083249 DATA sockfilt for passive data channel quits (pid 91374) 09:40:43.085506 DATA sockfilt for passive data channel quit (pid 91374) 09:40:43.085834 =====> Closed passive DATA connection 09:40:43.086227 > "226 File transfer complete[CR][LF]" 09:40:43.124443 < "QUIT" 09:40:43.129621 > "221 bye bye baby[CR][LF]" 09:40:43.135896 MAIN sockfilt said DISC 09:40:43.136402 ====> Client disconnected 09:40:43.137006 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.272204 ====> Client connect 09:40:42.276521 Received DATA (on stdin) 09:40:42.276657 > 160 bytes data, server => client 09:40:42.276748 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.276836 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.276912 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.277810 < 16 bytes data, client => server 09:40:42.278003 'USER anonymous\r\n' 09:40:42.281695 Received DATA (on stdin) 09:40:42.281861 > 33 bytes data, server => client 09:40:42.281951 '331 We are happy you popped in!\r\n' 09:40:42.282641 < 22 bytes data, client => server 09:40:42.282783 'PASS ftp@example.com\r\n' 09:40:42.285559 Received DATA (on stdin) 09:40:42.285717 > 30 bytes data, server => client 09:40:42.285806 '230 Welcome you silly person\r\n' 09:40:42.286537 < 5 bytes data, client => server 09:40:42.286687 'PWD\r\n' 09:40:42.288696 Received DATA (on stdin) 09:40:42.288851 > 30 bytes data, server => client 09:40:42.288942 '257 "/" is current directory\r\n' 09:40:42.289640 < 6 bytes data, client => server 09:40:42.289798 'EPSV\r\n' 09:40:42.319342 Received DATA (on stdin) 09:40:42.319577 > 38 bytes data, server => client 09:40:42.319701 '229 Entering Passive Mode (|||35715|)\n' 09:40:42.323073 < 8 bytes data, client => server 09:40:42.323230 'TYPE I\r\n' 09:40:42.324548 Received DATA (on stdin) 09:40:42.324770 > 33 bytes data, server => client 09:40:42.325378 '200 I modify TYPE as you wanted\r\n' 09:40:42.326214 < 21 bytes data, client => server 09:40:42.326380 'SIZE verifiedserver\r\n' 09:40:42.328583 Received DATA (on stdin) 09:40:42.328719 > 8 bytes data, server => client 09:40:42.328792 '213 17\r\n' 09:40:42.329318 < 21 bytes data, client => server 09:40:42.329536 'RETR verifiedserver\r\n' 09:40:42.330694 Received DATA (on stdin) 09:40:42.330862 > 29 bytes data, server => client 09:40:42.331549 '150 Binary junk (17 bytes).\r\n' 09:40:42.342639 Received DATA (on stdin) 09:40:42.342808 > 28 bytes data, server => client 09:40:42.342890 '226 File transfer complete\r\n' 09:40:42.377075 < 6 bytes data, client => server 09:40:42.377244 'QUIT\r\n' 09:40:42.378722 Received DATA (on stdin) 09:40:42.378904 > 18 bytes data, server => client 09:40:42.379592 '221 bye bye baby\r\n' 09:40:42.383894 ====> Client disconnect 09:40:42.392560 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:43.311044 Running IPv4 version 09:40:43.311695 Listening on port 35715 09:40:43.312067 Wrote pid 91374 to log/30/server/ftp_sockdata.pid 09:40:43.312220 Received PING (on stdin) 09:40:43.316106 Received PORT (on stdin) 09:40:43.321118 ====> Client connect 09:40:43.331930 Received DATA (on stdin) 09:40:43.332085 > 17 bytes data, server => client 09:40:43.334932 'WE ROOLZ: 77429\r\n' 09:40:43.335307 Received DISC (on stdin) 09:40:43.335648 ====> Client forcibly disconnected 09:40:43.337283 Received QUIT (on stdin) 09:40:43.337427 quits 09:40:43.337908 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 353 === End of file server.cmd === Start of file valgrind353 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind353 test 0346...[HTTP GET over proxy with credentials using blank passwords] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind346 ../src/curl -q --output log/8/curl346.out --include --trace-ascii log/8/trace346 --trace-config all --trace-time -x http://127.0.0.1:46129/346 -U puser: -u suser: http://remote.example/346 > log/8/stdout346 2> log/8/stderr346 346: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 346 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind346 ../src/curl -q --output log/8/curl346.out --include --trace-ascii log/8/trace346 --trace-config all --trace-time -x http://127.0.0.1:46129/346 -U puser: -u suser: http://remote.example/346 > log/8/stdout346 2> log/8/stderr346 === End of file commands.log === Start of file http_server.log 09:40:43.324995 ====> Client connect 09:40:43.325664 accept_connection 3 returned 4 09:40:43.326047 accept_connection 3 returned 0 09:40:43.326188 Read 93 bytes 09:40:43.326323 Process 93 bytes request 09:40:43.326735 Got request: GET /verifiedserver HTTP/1.1 09:40:43.326952 Are-we-friendly question received 09:40:43.327188 Wrote request (93 bytes) input to log/8/server.input 09:40:43.327667 Identifying ourselves as friends 09:40:43.329771 Response sent (56 bytes) and written to log/8/server.response 09:40:43.329899 special request received, no persistency 09:40:43.329983 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 346 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind346 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind346 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/19/server/ftp_server.pid" --logfile "log/19/ftp_server.log" --logdir "log/19" --portfile "log/19/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 32777 (log/19/server/ftp_server.port) RUN: FTP server is PID 89661 port 32777 * pid ftp => 89661 89661 test 0297...[FTP CWD with --ftp-method singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind297 ../src/curl -q --output log/19/curl297.out --include --trace-ascii log/19/trace297 --trace-config all --trace-time --ftp-method singlecwd ftp://127.0.0.1:32777/first/second/third/297 > log/19/stdout297 2> log/19/stderr297 297: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 297 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind297 ../src/curl -q --output log/19/curl297.out --include --trace-ascii log/19/trace297 --trace-config all --trace-time --ftp-method singlecwd ftp://127.0.0.1:32777/first/second/third/297 > log/19/stdout297 2> log/19/stderr297 === End of file commands.log === Start of file ftp_server.log 09:40:42.377869 FTP server listens on port IPv4/32777 09:40:42.379120 logged pid 89661 in log/19/server/ftp_server.pid 09:40:42.379403 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.629256 Running IPv4 version 09:40:42.629838 Listening on port 32777 09:40:42.630276 Wrote pid 90364 to log/19/server/ftp_sockctrl.pid 09:40:42.630686 Wrote port 32777 to log/19/server/ftp_server.port 09:40:42.630837 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 297 === End of file server.cmd === Start of file valgrind297 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind297 test 0331...[HTTP with cookie using host name 'moo'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind331 ../src/curl -q --output log/20/curl331.out --include --trace-ascii log/20/trace331 --trace-config all --trace-time -x http://127.0.0.1:45475 http://moo/we/want/331 -b none http://moo/we/want/3310002 > log/20/stdout331 2> log/20/stderr331 331: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 331 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind331 ../src/curl -q --output log/20/curl331.out --include --trace-ascii log/20/trace331 --trace-config all --trace-time -x http://127.0.0.1:45475 http://moo/we/want/331 -b none http://moo/we/want/3310002 > log/20/stdout331 2> log/20/stderr331 === End of file commands.log === Start of file http_server.log 09:40:42.867698 ====> Client connect 09:40:42.868012 accept_connection 3 returned 4 09:40:42.868176 accept_connection 3 returned 0 09:40:42.869697 Read 93 bytes 09:40:42.869854 Process 93 bytes request 09:40:42.869943 Got request: GET /verifiedserver HTTP/1.1 09:40:42.870063 Are-we-friendly question received 09:40:42.870606 Wrote request (93 bytes) input to log/20/server.input 09:40:42.870825 Identifying ourselves as friends 09:40:42.873168 Response sent (56 bytes) and written to log/20/server.response 09:40:42.873585 special request received, no persistency 09:40:42.873687 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind339 ../src/curl -q --output log/61/curl339.out --include --trace-ascii log/61/trace339 --trace-config all --trace-time http://127.0.0.1:44381/339 --etag-save log/61/etag339 > log/61/stdout339 2> log/61/stderr339 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind357 ../src/curl -q --output log/11/curl357.out --include --trace-ascii log/11/trace357 --trace-config all --trace-time http://127.0.0.1:41387/we/want/357 -T log/11/test357.txt --expect100-timeout 99 > log/11/stdout357 2> log/11/stderr357 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind368 ../src/curl -q --output log/45/curl368.out --include --trace-ascii log/45/trace368 --trace-config all --trace-time http://127.0.0.1:34239/368 -r 4 > log/45/stdout368 2> log/45/stderr368 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind337 ../src/curl -q --output log/41/curl337.out --include --trace-ascii log/41/trace337 --trace-config all --trace-time ftp://127.0.0.1:41781/337 --range 3-6 > log/41/stdout337 2> log/41/stderr337 0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 331 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind331 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind331 test 0335...[HTTP with proxy Digest and site Digest with creds in URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind335 ../src/curl -q --output log/38/curl335.out --include --trace-ascii log/38/trace335 --trace-config all --trace-time http://digest:alot@data.from.server.requiring.digest.hohoho.com/335 --proxy http://foo:bar@127.0.0.1:33511 --proxy-digest --digest > log/38/stdout335 2> log/38/stderr335 335: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 335 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind335 ../src/curl -q --output log/38/curl335.out --include --trace-ascii log/38/trace335 --trace-config all --trace-time http://digest:alot@data.from.server.requiring.digest.hohoho.com/335 --proxy http://foo:bar@127.0.0.1:33511 --proxy-digest --digest > log/38/stdout335 2> log/38/stderr335 === End of file commands.log === Start of file http_server.log 09:40:42.870810 ====> Client connect 09:40:42.871254 accept_connection 3 returned 4 09:40:42.871420 accept_connection 3 returned 0 09:40:42.872850 Read 93 bytes 09:40:42.873096 Process 93 bytes request 09:40:42.873256 Got request: GET /verifiedserver HTTP/1.1 09:40:42.873396 Are-we-friendly question received 09:40:42.873882 Wrote request (93 bytes) input to log/38/server.input 09:40:42.874345 Identifying ourselves as friends 09:40:42.878990 Response sent (56 bytes) and written to log/38/server.response 09:40:42.879187 special request received, no persistency 09:40:42.879310 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 335 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind335 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind335 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/51/server/tftp_server.pid" --portfile "log/51/server/tftp_server.port" --logfile "log/51/tftp_server.log" --logdir "log/51" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 89110 port 56570 * pid tftp => 89110 89110 test 0285...[TFTP send] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind285 ../src/curl -q --output log/51/curl285.out --include --trace-ascii log/51/trace285 --trace-config all --trace-time -T log/51/test285.txt tftp://127.0.0.1:56570// --connect-timeout 549 > log/51/stdout285 2> log/51/stderr285 285: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 285 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind285 ../src/curl -q --output log/51/curl285.out --include --trace-ascii log/51/trace285 --trace-config all --trace-time -T log/51/test285.txt tftp://127.0.0.1:56570// --connect-timeout 549 > log/51/stdout285 2> log/51/stderr285 === End of file commands.log === Start of file server.cmd Testnum 285 === End of file server.cmd === Start of file test285.txt a chunk of data sent to server === End of file test285.txt === Start of file tftp_server.log 09:40:41.950814 Wrote pid 89110 to log/51/server/tftp_server.pid 09:40:41.951631 Wrote port 56570 to log/51/server/tftp_server.port 09:40:41.951793 Running IPv4 version on port UDP/56570 === End of file tftp_server.log === Start of file valgrind285 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose nCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind345 ../src/curl -q --output log/10/curl345.out --include --trace-ascii log/10/trace345 --trace-config all --trace-time http://127.0.0.1:36913/345 --etag-compare log/10/etag345 --etag-save log/10/etag345 > log/10/stdout345 2> log/10/stderr345 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind369 ../src/curl -q --output log/23/curl369.out --include --trace-ascii log/23/trace369 --trace-config all --trace-time http://127.0.0.1:42467/369 --etag-save log/23/nowhere/etag369 --next http://127.0.0.1:42467/369 --include --output log/23/curl369.out > log/23/stdout369 2> log/23/stderr369 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind361 ../src/curl -q --output log/55/curl361.out --include --trace-ascii log/55/trace361 --trace-config all --trace-time http://127.0.0.1:33071/361 http://127.0.0.1:33071/361 --fail-with-body > log/55/stdout361 2> log/55/stderr361 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind374 ../src/curl -q --output log/24/curl374.out --include --trace-ascii log/24/trace374 --trace-config all --trace-time http://127.0.0.1:39259/gif/374 > log/24/stdout374 2> log/24/stderr374 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind372 ../src/curl -q --output log/1/curl372.out --include --trace-ascii log/1/trace372 --trace-config all --trace-time --raw http://127.0.0.1:40633/binary-zero-in-data-section/372 > log/1/stdout372 2> log/1/stderr372 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind378 ../src/curl -q --output log/7/curl378.out --include --trace-ascii log/7/trace378 --trace-config all --trace-time -T log/7/378 -d input http://never-accessed > log/7/stdout378 2> log/7/stderr378 ame matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind285 test 0345...[Both --etag-compare and -save store new Etag using one pre-existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind345 ../src/curl -q --output log/10/curl345.out --include --trace-ascii log/10/trace345 --trace-config all --trace-time http://127.0.0.1:36913/345 --etag-compare log/10/etag345 --etag-save log/10/etag345 > log/10/stdout345 2> log/10/stderr345 345: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 345 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind345 ../src/curl -q --output log/10/curl345.out --include --trace-ascii log/10/trace345 --trace-config all --trace-time http://127.0.0.1:36913/345 --etag-compare log/10/etag345 --etag-save log/10/etag345 > log/10/stdout345 2> log/10/stderr345 === End of file commands.log === Start of file etag345 "21025-dc7-39462498" === End of file etag345 === Start of file http_server.log 09:40:43.131066 ====> Client connect 09:40:43.131665 accept_connection 3 returned 4 09:40:43.131998 accept_connection 3 returned 0 09:40:43.133156 Read 93 bytes 09:40:43.133511 Process 93 bytes request 09:40:43.133655 Got request: GET /verifiedserver HTTP/1.1 09:40:43.133745 Are-we-friendly question received 09:40:43.134096 Wrote request (93 bytes) input to log/10/server.input 09:40:43.135240 Identifying ourselves as friends 09:40:43.137533 Response sent (56 bytes) and written to log/10/server.response 09:40:43.137673 special request received, no persistency 09:40:43.137760 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 345 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind345 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind345 test 0357...[HTTP PUT with Expect: 100-continue and 417 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind357 ../src/curl -q --output log/11/curl357.out --include --trace-ascii log/11/trace357 --trace-config all --trace-time http://127.0.0.1:41387/we/want/357 -T log/11/test357.txt --expect100-timeout 99 > log/11/stdout357 2> log/11/stderr357 357: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 357 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind357 ../src/curl -q --output log/11/curl357.out --include --trace-ascii log/11/trace357 --trace-config all --trace-time http://127.0.0.1:41387/we/want/357 -T log/11/test357.txt --expect100-timeout 99 > log/11/stdout357 2> log/11/stderr357 === End of file commands.log === Start of file http_server.log 09:40:43.257021 ====> Client connect 09:40:43.257311 accept_connection 3 returned 4 09:40:43.257617 accept_connection 3 returned 0 09:40:43.257777 Read 93 bytes 09:40:43.257859 Process 93 bytes request 09:40:43.257930 Got request: GET /verifiedserver HTTP/1.1 09:40:43.258005 Are-we-friendly question received 09:40:43.258242 Wrote request (93 bytes) input to log/11/server.input 09:40:43.258431 Identifying ourselves as friends 09:40:43.260560 Response sent (56 bytes) and written to log/11/server.response 09:40:43.260701 special request received, no persistency 09:40:43.260774 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41387... * Connected to 127.0.0.1 (127.0.0.1) port 41387 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41387 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73809 === End of file http_verify.out === Start of file server.cmd no-expect Testnum 357 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73809 === End of file server.response === Start of file test357.txt xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind365 ../src/curl -q --output log/59/curl365.out --include --trace-ascii log/59/trace365 --trace-config all --trace-time http://127.0.0.1:43695/365 > log/59/stdout365 2> log/59/stderr365 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind385 ../src/curl -q --output log/48/curl385.out --include --trace-ascii log/48/trace385 --trace-config all --trace-time --json '{ "drink": "coffe",' --json ' "crunch": "cookie" }' http://127.0.0.1:46339/385 -H "Content-Type: drinks/hot" > log/48/stdout385 2> log/48/stderr385 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind371 ../src/curl -q --output log/21/curl371.out --include --trace-ascii log/21/trace371 --trace-config all --trace-time http://127.0.0.1:34827/371 -o log/21/dump -o log/21/dump2 --no-progress-meter > log/21/stdout371 2> log/21/stderr371 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind366 ../src/curl -q --output log/18/curl366.out --include --trace-ascii log/18/trace366 --trace-config all --trace-time http://127.0.0.1:41285/366 --retry 2 --retry-max-time 10 > log/18/stdout366 2> log/18/stderr366 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind340 ../src/curl -q --output log/15/curl340.out --include --trace-ascii log/15/trace340 --trace-config all --trace-time --ftp-method singlecwd ftp://127.0.0.1:38699/%00first/second/third/340 > log/15/stdout340 2> log/15/stderr340 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind373 ../src/curl -q --output log/60/curl373.out --include --trace-ascii log/60/trace373 --trace-config all --trace-time http://127.0.0.1:38843/chunked-transfer-encoding/373 > log/60/stdout373 2> log/60/stderr373 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind332 ../src/curl -q --output log/17/curl332.out --include --trace-ascii log/17/trace332 --trace-config all --trace-time tftp://127.0.0.1:57688//332 --tftp-blksize 400 > log/17/stdout332 2> log/17/stderr332 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind362 ../src/curl -q --output log/58/curl362.out --include --trace-ascii log/58/trace362 --trace-config all --trace-time ftp://127.0.0.1:38901/362 -T log/58/test362.txt --continue-at - > log/58/stdout362 2> log/58/stderr362 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind380 ../src/curl -q --output log/5/curl380.out --include --trace-ascii log/5/trace380 --trace-config all --trace-time --netrc --netrc-file log/5/netrc380 ftp://mary@127.0.0.1:42831/ > log/5/stdout380 2> log/5/stderr380 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx === End of file test357.txt === Start of file valgrind357 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind357 test 0337...[FTP range download with SIZE returning extra crap] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind337 ../src/curl -q --output log/41/curl337.out --include --trace-ascii log/41/trace337 --trace-config all --trace-time ftp://127.0.0.1:41781/337 --range 3-6 > log/41/stdout337 2> log/41/stderr337 337: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 337 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind337 ../src/curl -q --output log/41/curl337.out --include --trace-ascii log/41/trace337 --trace-config all --trace-time ftp://127.0.0.1:41781/337 --range 3-6 > log/41/stdout337 2> log/41/stderr337 === End of file commands.log === Start of file ftp_server.log 09:40:42.847125 ====> Client connect 09:40:42.852666 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:42.855922 < "USER anonymous" 09:40:42.856331 > "331 We are happy you popped in![CR][LF]" 09:40:42.861057 < "PASS ftp@example.com" 09:40:42.861648 > "230 Welcome you silly person[CR][LF]" 09:40:42.866721 < "PWD" 09:40:42.871265 > "257 "/" is current directory[CR][LF]" 09:40:42.874140 < "EPSV" 09:40:42.874726 ====> Passive DATA channel requested by client 09:40:42.876188 DATA sockfilt for passive data channel starting... 09:40:42.895460 DATA sockfilt for passive data channel started (pid 91208) 09:40:42.896618 DATA sockfilt for passive data channel listens on port 36087 09:40:42.897192 > "229 Entering Passive Mode CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind376 ../src/curl -q --include --trace-ascii log/29/trace376 --trace-config all --trace-time http://127.0.0.1:36877/376 -o log/29/save-376 --remove-on-error > log/29/stdout376 2> log/29/stderr376 (|||36087|)[LF]" 09:40:42.897478 Client has been notified that DATA conn will be accepted on port 36087 09:40:42.899610 Client connects to port 36087 09:40:42.900009 ====> Client established passive DATA connection on port 36087 09:40:42.900917 < "TYPE I" 09:40:42.901365 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:42.905180 < "SIZE verifiedserver" 09:40:42.907159 > "213 17[CR][LF]" 09:40:42.908080 < "RETR verifiedserver" 09:40:42.908516 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:42.910629 =====> Closing passive DATA connection... 09:40:42.911059 Server disconnects passive DATA connection 09:40:42.913798 Server disconnected passive DATA connection 09:40:42.914102 DATA sockfilt for passive data channel quits (pid 91208) 09:40:42.916375 DATA sockfilt for passive data channel quit (pid 91208) 09:40:42.916632 =====> Closed passive DATA connection 09:40:42.918075 > "226 File transfer complete[CR][LF]" 09:40:42.952970 < "QUIT" 09:40:42.954215 > "221 bye bye baby[CR][LF]" 09:40:42.957302 MAIN sockfilt said DISC 09:40:42.958255 ====> Client disconnected 09:40:42.958848 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:42.100177 ====> Client connect 09:40:42.106915 Received DATA (on stdin) 09:40:42.107077 > 160 bytes data, server => client 09:40:42.107186 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:42.107300 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:42.107514 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:42.108324 < 16 bytes data, client => server 09:40:42.108552 'USER anonymous\r\n' 09:40:42.110606 Received DATA (on stdin) 09:40:42.110805 > 33 bytes data, server => client 09:40:42.110910 '331 We are happy you popped in!\r\n' 09:40:42.113635 < 22 bytes data, client => server 09:40:42.113844 'PASS ftp@example.com\r\n' 09:40:42.117576 Received DATA (on stdin) 09:40:42.117796 > 30 bytes data, server => client 09:40:42.117912 '230 Welcome you silly person\r\n' 09:40:42.119228 < 5 bytes data, client => server 09:40:42.119427 'PWD\r\n' 09:40:42.121481 Received DATA (on stdin) 09:40:42.121669 > 30 bytes data, server => client 09:40:42.125975 '257 "/" is current directory\r\n' 09:40:42.127023 < 6 bytes data, client => server 09:40:42.127159 'EPSV\r\n' 09:40:42.151553 Received DATA (on stdin) 09:40:42.151712 > 38 bytes data, server => client 09:40:42.151801 '229 Entering Passive Mode (|||36087|)\n' 09:40:42.153272 < 8 bytes data, client => server 09:40:42.153430 'TYPE I\r\n' 09:40:42.155373 Received DATA (on stdin) 09:40:42.155656 > 33 bytes data, server => client 09:40:42.155760 '200 I modify TYPE as you wanted\r\n' 09:40:42.158035 < 21 bytes data, client => server 09:40:42.158197 'SIZE verifiedserver\r\n' 09:40:42.159408 Received DATA (on stdin) 09:40:42.159624 > 8 bytes data, server => client 09:40:42.159798 '213 17\r\n' 09:40:42.160393 < 21 bytes data, client => server 09:40:42.160606 'RETR verifiedserver\r\n' 09:40:42.162896 Received DATA (on stdin) 09:40:42.163047 > 29 bytes data, server => client 09:40:42.163127 '150 Binary junk (17 bytes).\r\n' 09:40:42.170864 Received DATA (on stdin) 09:40:42.171077 > 28 bytes data, server => client 09:40:42.171316 '226 File transfer complete\r\n' 09:40:42.205755 < 6 bytes data, client => server 09:40:42.205921 'QUIT\r\n' 09:40:42.207062 Received DATA (on stdin) 09:40:42.207222 > 18 bytes data, server => client 09:40:42.207414 '221 bye bye baby\r\n' 09:40:42.210639 ====> Client disconnect 09:40:42.211341 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:42.147352 Running IPv4 version 09:40:42.148174 Listening on port 36087 09:40:42.148693 Wrote pid 91208 to log/41/server/ftp_sockdata.pid 09:40:42.148870 Received PING (on stdin) 09:40:42.149691 Received PORT (on stdin) 09:40:42.153034 ====> Client connect 09:40:42.164018 Received DATA (on stdin) 09:40:42.164174 > 17 bytes data, server => client 09:40:42.164258 'WE ROOLZ: 77417\r\n' 09:40:42.167083 Received DISC (on stdin) 09:40:42.167334 ====> Client forcibly disconnected 09:40:42.168273 Received QUIT (on stdin) 09:40:42.168426 quits 09:40:42.168958 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY SIZE 213 file: 213, Size =51 Testnum 337 === End of file server.cmd === Start of file valgrind337 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind337 test 0368...[Append dash if -r range specified without one] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind368 ../src/curl -q --output log/45/curl368.out --include --trace-ascii log/45/trace368 --trace-config all --trace-time http://127.0.0.1:34239/368 -r 4 > log/45/stdout368 2> log/45/stderr368 368: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 368 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind368 ../src/curl -q --output log/45/curl368.out --include --trace-ascii log/45/trace368 --trace-config all --trace-time http://127.0.0.1:34239/368 -r 4 > log/45/stdout368 2> log/45/stderr368 === End of file commands.log === Start of file http_server.log 09:40:42.736870 ====> Client connect 09:40:42.737164 accept_connection 3 returned 4 09:40:42.737324 accept_connection 3 returned 0 09:40:42.737531 Read 93 bytes 09:40:42.737650 Process 93 bytes request 09:40:42.737740 Got request: GET /verifiedserver HTTP/1.1 09:40:42.737815 Are-we-friendly question received 09:40:42.738087 Wrote request (93 bytes) input to log/45/server.input 09:40:42.738430 Identifying ourselves as friends 09:40:42.743708 Response sent (56 bytes) and written to log/45/server.response 09:40:42.743832 special request received, no persistency 09:40:42.743904 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 368 === End of file server.cmd ===CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind379 ../src/curl -q --include --trace-ascii log/2/trace379 --trace-config all --trace-time http://127.0.0.1:39659/379 -o log/2/save --remove-on-error --no-clobber > log/2/stdout379 2> log/2/stderr379 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind351 ../src/curl -q --output log/16/curl351.out --include --trace-ascii log/16/trace351 --trace-config all --trace-time ftp://127.0.0.1:44119// --ftp-method nocwd > log/16/stdout351 2> log/16/stderr351 Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind368 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind368 test 0339...[Check if --etag-save saved correct etag to a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind339 ../src/curl -q --output log/61/curl339.out --include --trace-ascii log/61/trace339 --trace-config all --trace-time http://127.0.0.1:44381/339 --etag-save log/61/etag339 > log/61/stdout339 2> log/61/stderr339 339: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 339 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind339 ../src/curl -q --output log/61/curl339.out --include --trace-ascii log/61/trace339 --trace-config all --trace-time http://127.0.0.1:44381/339 --etag-save log/61/etag339 > log/61/stdout339 2> log/61/stderr339 === End of file commands.log === Start of file http_server.log 09:40:43.027919 ====> Client connect 09:40:43.028301 accept_connection 3 returned 4 09:40:43.028588 accept_connection 3 returned 0 09:40:43.028773 Read 93 bytes 09:40:43.028890 Process 93 bytes request 09:40:43.028990 Got request: GET /verifiedserver HTTP/1.1 09:40:43.029109 Are-we-friendly question received 09:40:43.029358 Wrote request (93 bytes) input to log/61/server.input 09:40:43.029647 Identifying ourselves as friends 09:40:43.033965 Response sent (56 bytes) and written to log/61/server.response 09:40:43.034114 special request received, no persistency 09:40:43.034213 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 339 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind339 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind339 test 0372...[Binary zero in data element.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind372 ../src/curl -q --output log/1/curl372.out --include --trace-ascii log/1/trace372 --trace-config all --trace-time --raw http://127.0.0.1:40633/binary-zero-in-data-section/372 > log/1/stdout372 2> log/1/stderr372 372: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 372 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind372 ../src/curl -q --output log/1/curl372.out --include --trace-ascii log/1/trace372 --trace-config all --trace-time --raw http://127.0.0.1:40633/binary-zero-in-data-section/372 > log/1/stdout372 2> log/1/stderr372 === End of file commands.log === Start of file http_server.log 09:40:43.822356 ====> Client connect 09:40:43.822807 accept_connection 3 returned 4 09:40:43.822970 accept_connection 3 returned 0 09:40:43.823112 Read 93 bytes 09:40:43.823216 Process 93 bytes request 09:40:43.823307 Got request: GET /verifiedserver HTTP/1.1 09:40:43.823390 Are-we-friendly question received 09:40:43.823725 Wrote request (93 bytes) input to log/1/server.input 09:40:43.823912 Identifying ourselves as friends 09:40:43.824884 Response sent (56 bytes) and written to log/1/server.response 09:40:43.825002 special request received, no persistency 09:40:43.825081 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 372 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind372 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind372 test 0380...[pick netrc password based on user name in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind380 ../src/curl -q --output log/5/curl380.out --include --trace-ascii log/5/trace380 --trace-config all --trace-time --netrc --netrc-file log/5/netrc380 ftp://mary@127.0.0.1:42831/ > log/5/stdout380 2> log/5/stderr380 380: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 380 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind380 ../src/curl -q --output log/5/curl380.out --include --trace-ascii log/5/trace380 --trace-config all --trace-time --netrc --netrc-file log/5/netrc380 ftp://mary@127.0.0.1:42831/ > log/5/stdout380 2> log/5/stderr380 === End of file commands.log === Start of file ftp_server.log 09:40:43.790568 ====> Client connect 09:40:43.792535 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:43.795286 < "USER anonymous" 09:40:43.797118 > "331 We are happy you popped in![CR][LF]" 09:40:43.798336 < "PASS ftp@example.com" 09:40:43.800095 > "230 Welcome you silly person[CR][LF]" 09:40:43.801049 < "PWD" 09:40:43.801514 > "257 "/" is current directory[CR][LF]" 09:40:43.803696 < "EPSV" 09:40:43.804224 ====> Passive DATA channel requested by client 09:40:43.804431 DATA sockfilt for passive data channel starting... 09:40:43.825261 DATA sockfilt for passive data channel started (pid 93059) 09:40:43.831444 DATA sockfilt for passive data channel listens on port 42373 09:40:43.832275 > "229 Entering Passive Mode (|||42373|)[LF]" 09:40:43.832530 Client has been notified that DATA conn will be accepted on port 42373 09:40:43.835848 Client connects to port 42373 09:40:43.836185 ====> Client established passive DATA connection on port 42373 09:40:43.837503 < "TYPE I" 09:40:43.837991 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:43.840239 < "SIZE verifiedserver" 09:40:43.841855 > "213 17[CR][LF]" 09:40:43.843594 < "RETR verifiedserver" 09:40:43.844483 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:43.847530 =====> Closing passive DATA connection... 09:40:43.848638 Server disconnects passive DATA connection 09:40:43.849501 Fancy that; client wants to DISC, too 09:40:43.850309 Server disconnected passive DATA connection 09:40:43.850567 DATA sockfilt for passive data channel quits (pid 93059) 09:40:43.852906 DATA sockfilt for passive data channel quit (pid 93059) 09:40:43.853297 =====> Closed passive DATA connection 09:40:43.853738 > "226 File transfer complete[CR][LF]" 09:40:43.888117 < "QUIT" 09:40:43.889532 > "221 bye bye baby[CR][LF]" 09:40:43.893325 MAIN sockfilt said DISC 09:40:43.894258 ====> Client disconnected 09:40:43.895324 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:44.043613 ====> Client connect 09:40:44.045818 Received DATA (on stdin) 09:40:44.045983 > 160 bytes data, server => client 09:40:44.046567 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:44.046715 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:44.046796 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:44.047813 < 16 bytes data, client => server 09:40:44.047966 'USER anonymous\r\n' 09:40:44.049363 Received DATA (on stdin) 09:40:44.049863 > 33 bytes data, server => client 09:40:44.050067 '331 We are happy you popped in!\r\n' 09:40:44.051224 < 22 bytes data, client => server 09:40:44.051360 'PASS ftp@example.com\r\n' 09:40:44.052395 Received DATA (on stdin) 09:40:44.052613 > 30 bytes data, server => client 09:40:44.052798 '230 Welcome you silly person\r\n' 09:40:44.053366 < 5 bytes data, client => server 09:40:44.053577 'PWD\r\n' 09:40:44.055659 Received DATA (on stdin) 09:40:44.055830 > 30 bytes data, server => client 09:40:44.055946 '257 "/" is current directory\r\n' 09:40:44.056690 < 6 bytes data, client => server 09:40:44.056832 'EPSV\r\n' 09:40:44.086552 Received DATA (on stdin) 09:40:44.086682 > 38 bytes data, server => client 09:40:44.086775 '229 Entering Passive Mode (|||42373|)\n' 09:40:44.088590 < 8 bytes data, client => server 09:40:44.088978 'TYPE I\r\n' 09:40:44.092008 Received DATA (on stdin) 09:40:44.092146 > 33 bytes data, server => client 09:40:44.092238 '200 I modify TYPE as you wanted\r\n' 09:40:44.093104 < 21 bytes data, client => server 09:40:44.093257 'SIZE verifiedserver\r\n' 09:40:44.094566 Received DATA (on stdin) 09:40:44.094718 > 8 bytes data, server => client 09:40:44.095021 '213 17\r\n' 09:40:44.096412 < 21 bytes data, client => server 09:40:44.096654 'RETR verifiedserver\r\n' 09:40:44.097819 Received DATA (on stdin) 09:40:44.097977 > 29 bytes data, server => client 09:40:44.099041 '150 Binary junk (17 bytes).\r\n' 09:40:44.107931 Received DATA (on stdin) 09:40:44.108102 > 28 bytes data, server => client 09:40:44.108213 '226 File transfer complete\r\n' 09:40:44.140785 < 6 bytes data, client => server 09:40:44.140949 'QUIT\r\n' 09:40:44.142221 Received DATA (on stdin) 09:40:44.142370 > 18 bytes data, server => client 09:40:44.142623 '221 bye bye baby\r\n' 09:40:44.146619 ====> Client disconnect 09:40:44.147396 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:43.073164 Running IPv4 version 09:40:43.073928 Listening on port 42373 09:40:43.074429 Wrote pid 93059 to log/5/server/ftp_sockdata.pid 09:40:43.077789 Received PING (on stdin) 09:40:43.080564 Received PORT (on stdin) 09:40:43.089208 ====> Client connect 09:40:43.099420 Received DATA (on stdin) 09:40:43.099638 > 17 bytes data, server => client 09:40:43.100279 'WE ROOLZ: 77456\r\n' 09:40:43.102028 ====> Client disconnect 09:40:43.102898 Received DISC (on stdin) 09:40:43.103034 Crikey! Client also wants to disconnect 09:40:43.103530 Received ACKD (on stdin) 09:40:43.104637 Received QUIT (on stdin) 09:40:43.104776 quits 09:40:43.105209 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc380 # the following two lines were created while testing curl machine 127.0.0.1 login frankenstein password wrongone machine 127.0.0.1 login mary password yram === End of file netrc380 === Start of file server.cmd Testnum 380 === End of file server.cmd === Start of file valgrind380 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind380 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind386 ../src/curl -q --output log/63/curl386.out --include --trace-ascii log/63/trace386 --trace-config all --trace-time --json '{ "drink": "coffe" }' http://127.0.0.1:38797/386 --next http://127.0.0.1:38797/3860002 > log/63/stdout386 2> log/63/stderr386 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind367 ../src/curl -q --output log/62/curl367.out --include --trace-ascii log/62/trace367 --trace-config all --trace-time http://:example@127.0.0.1:38899/367 > log/62/stdout367 2> log/62/stderr367 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind383 ../src/curl -q --output log/4/curl383.out --include --trace-ascii log/4/trace383 --trace-config all --trace-time --json '{ "drink": "coffe" }' http://127.0.0.1:43013/383 > log/4/stdout383 2> log/4/stderr383 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind387 ../src/curl -q --output log/49/curl387.out --include --trace-ascii log/49/trace387 --trace-config all --trace-time http://127.0.0.1:42667/387 -sS --tr-encoding > log/49/stdout387 2> log/49/stderr387 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind381 ../src/curl -q --output log/50/curl381.out --include --trace-ascii log/50/trace381 --trace-config all --trace-time --netrc-optional --netrc-file log/50/netrc381 ftp://mary:drfrank@127.0.0.1:36567/ > log/50/stdout381 2> log/50/stderr381 * starts no server test 0378...[Reject using -T and -d at once] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind378 ../src/curl -q --output log/7/curl378.out --include --trace-ascii log/7/trace378 --trace-config all --trace-time -T log/7/378 -d input http://never-accessed > log/7/stdout378 2> log/7/stderr378 378: stderr FAILED: --- log/7/check-expected 2025-07-18 09:40:45.204700869 +0000 +++ log/7/check-generated 2025-07-18 09:40:45.203605910 +0000 @@ -1,2 +0,0 @@ -Warning: You can only select one HTTP request method! You asked for both PUT [CR][LF] -Warning: (-T, --upload-file) and POST (-d, --data).[CR][LF] == Contents of files in the log/7/ dir after test 378 === Start of file check-expected Warning: You can only select one HTTP request method! You asked for both PUT [CR][LF] Warning: (-T, --upload-file) and POST (-d, --data).[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind378 ../src/curl -q --output log/7/curl378.out --include --trace-ascii log/7/trace378 --trace-config all --trace-time -T log/7/378 -d input http://never-accessed > log/7/stdout378 2> log/7/stderr378 === End of file commands.log === Start of file server.cmd Testnum 378 === End of file server.cmd === Start of file valgrind378 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind378 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/15/server/ftp_server.pid" --logfile "log/15/ftp_server.log" --logdir "log/15" --portfile "log/15/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38699 (log/15/server/ftp_server.port) RUN: FTP server is PID 90579 port 38699 * pid ftp => 90579 90579 test 0340...[FTP using %00 in path with singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind340 ../src/curl -q --output log/15/curl340.out --include --trace-ascii log/15/trace340 --trace-config all --trace-time --ftp-method singlecwd ftp://127.0.0.1:38699/%00first/second/third/340 > log/15/stdout340 2> log/15/stderr340 340: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 340 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind340 ../src/curl -q --output log/15/curl340.out --include --trace-ascii log/15/trace340 --trace-config all --trace-time --ftp-method singlecwd ftp://127.0.0.1:38699/%00first/second/third/340 > log/15/stdout340 2> log/15/stderr340 === End of file commands.log === Start of file ftp_server.log 09:40:43.120613 FTP server listens on port IPv4/38699 09:40:43.121498 logged pid 90579 in log/15/server/ftp_server.pid 09:40:43.121723 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:43.372104 Running IPv4 version 09:40:43.372766 Listening on port 38699 09:40:43.373227 Wrote pid 91462 to log/15/server/ftp_sockctrl.pid 09:40:43.373635 Wrote port 38699 to log/15/server/ftp_server.port 09:40:43.373806 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 340 === End of file server.cmd === Start of file valgrind340 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind340 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/17/server/tftp_server.pid" --portfile "log/17/server/tftp_server.port" --logfile "log/17/tftp_server.log" --logdir "log/17" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 90308 port 57688 * pid tftp => 90308 90308 test 0332...[TFTP retrieve with blksize 400] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind332 ../src/curl -q --output log/17/curl332.out --include --trace-ascii log/17/trace332 --trace-config all --trace-time tftp://127.0.0.1:57688//332 --tftp-blksize 400 > log/17/stdout332 2> log/17/stderr332 332: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 332 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind332 ../src/curl -q --output log/17/curl332.out --include --trace-ascii log/17/trace332 --trace-config all --trace-time tftp://127.0.0.1:57688//332 --tftp-blksize 400 > log/17/stdout332 2> log/17/stderr332 === End of file commands.log === Start of file server.cmd Testnum 332 === End of file server.cmd === Start of file tftp_server.log 09:40:42.848589 Wrote pid 90308 to log/17/server/tftp_server.pid 09:40:42.849232 Wrote port 57688 to log/17/server/tftp_server.port 09:40:42.849336 Running IPv4 version on port UDP/57688 === End of file tftp_server.log === Start of file valgrind332 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind332 test 0366...[HTTP --retry-max-time with too long Retry-After] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind366 ../src/curl -q --output log/18/curl366.out --include --trace-ascii log/18/trace366 --trace-config all --trace-time http://127.0.0.1:41285/366 --retry 2 --retry-max-time 10 > log/18/stdout366 2> log/18/stderr366 366: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 366 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind366 ../src/curl -q --output log/18/curl366.out --include --trace-ascii log/18/trace366 --trace-config all --trace-time http://127.0.0.1:41285/366 --retry 2 --retry-max-time 10 > log/18/stdout366 2> log/18/stderr366 === End of file commands.log === Start of file http_server.log 09:40:43.853282 ====> Client connect 09:40:43.853769 accept_connection 3 returned 4 09:40:43.853963 accept_connection 3 returned 0 09:40:43.861581 Read 93 bytes 09:40:43.861743 Process 93 bytes request 09:40:43.861836 Got request: GET /verifiedserver HTTP/1.1 09:40:43.861920 Are-we-friendly question received 09:40:43.862193 Wrote request (93 bytes) input to log/18/server.input 09:40:43.862580 Identifying ourselves as friends 09:40:43.863388 Response sent (56 bytes) and written to log/18/server.response 09:40:43.863595 special request received, no persistency 09:40:43.863682 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 366 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind366 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind366 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind392 ../src/curl -q --output log/57/curl392.out --include --trace-ascii log/57/trace392 --trace-config all --trace-time -4 http://localhost:35945/392 -b none http://localhost:35945/392 > log/57/stdout392 2> log/57/stderr392 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind388 ../src/curl -q --include --trace-ascii log/46/trace388 --trace-config all --trace-time http://127.0.0.1:46523/3880001 -u testuser:testpass --digest http://127.0.0.1:46523/3880002 > log/46/stdout388 2> log/46/stderr388 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind384 ../src/curl -q --output log/9/curl384.out --include --trace-ascii log/9/trace384 --trace-config all --trace-time --json @- http://127.0.0.1:46607/384 -H "Accept: foobar/*" log/9/stdout384 2> log/9/stderr384 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind393 ../src/curl -q --output log/54/curl393.out --include --trace-ascii log/54/trace393 --trace-config all --trace-time http://127.0.0.1:44921/393 --max-filesize 2000000 > log/54/stdout393 2> log/54/stderr393 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind389 ../src/curl -q --output log/36/curl389.out --include --trace-ascii log/36/trace389 --trace-config all --trace-time -4 http://curlmachine.localhost:44255/389 > log/36/stdout389 2> log/36/stderr389 test 0371...[using more -o than URLs in the command line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind371 ../src/curl -q --output log/21/curl371.out --include --trace-ascii log/21/trace371 --trace-config all --trace-time http://127.0.0.1:34827/371 -o log/21/dump -o log/21/dump2 --no-progress-meter > log/21/stdout371 2> log/21/stderr371 371: stderr FAILED: --- log/21/check-expected 2025-07-18 09:40:45.310363116 +0000 +++ log/21/check-generated 2025-07-18 09:40:45.309605856 +0000 @@ -1 +0,0 @@ -Warning: Got more output options than URLs[CR][LF] == Contents of files in the log/21/ dir after test 371 === Start of file check-expected Warning: Got more output options than URLs[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind371 ../src/curl -q --output log/21/curl371.out --include --trace-ascii log/21/trace371 --trace-config all --trace-time http://127.0.0.1:34827/371 -o log/21/dump -o log/21/dump2 --no-progress-meter > log/21/stdout371 2> log/21/stderr371 === End of file commands.log === Start of file http_server.log 09:40:43.914929 ====> Client connect 09:40:43.915521 accept_connection 3 returned 4 09:40:43.915784 accept_connection 3 returned 0 09:40:43.925239 Read 93 bytes 09:40:43.925408 Process 93 bytes request 09:40:43.925615 Got request: GET /verifiedserver HTTP/1.1 09:40:43.925731 Are-we-friendly question received 09:40:43.926008 Wrote request (93 bytes) input to log/21/server.input 09:40:43.926361 Identifying ourselves as friends 09:40:43.927361 Response sent (56 bytes) and written to log/21/server.response 09:40:43.927624 special request received, no persistency 09:40:43.927734 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 371 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind371 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind371 test 0369...[--etag-save with bad path then working transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind369 ../src/curl -q --output log/23/curl369.out --include --trace-ascii log/23/trace369 --trace-config all --trace-time http://127.0.0.1:42467/369 --etag-save log/23/nowhere/etag369 --next http://127.0.0.1:42467/369 --include --output log/23/curl369.out > log/23/stdout369 2> log/23/stderr369 369: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 369 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind369 ../src/curl -q --output log/23/curl369.out --include --trace-ascii log/23/trace369 --trace-config all --trace-time http://127.0.0.1:42467/369 --etag-save log/23/nowhere/etag369 --next http://127.0.0.1:42467/369 --include --output log/23/curl369.out > log/23/stdout369 2> log/23/stderr369 === End of file commands.log === Start of file http_server.log 09:40:44.015865 ====> Client connect 09:40:44.016156 accept_connection 3 returned 4 09:40:44.016311 accept_connection 3 returned 0 09:40:44.016985 Read 93 bytes 09:40:44.017145 Process 93 bytes request 09:40:44.017240 Got request: GET /verifiedserver HTTP/1.1 09:40:44.017325 Are-we-friendly question received 09:40:44.017719 Wrote request (93 bytes) input to log/23/server.input 09:40:44.017919 Identifying ourselves as friends 09:40:44.021571 Response sent (56 bytes) and written to log/23/server.response 09:40:44.021724 special request received, no persistency 09:40:44.021793 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 369 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind369 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind369 test 0374...[Valid gif with two frames. No new line in data section.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind374 ../src/curl -q --output log/24/curl374.out --include --trace-ascii log/24/trace374 --trace-config all --trace-time http://127.0.0.1:39259/gif/374 > log/24/stdout374 2> log/24/stderr374 374: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 374 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind374 ../src/curl -q --output log/24/curl374.out --include --trace-ascii log/24/trace374 --trace-config all --trace-time http://127.0.0.1:39259/gif/374 > log/24/stdout374 2> log/24/stderr374 === End of file commands.log === Start of file http_server.log 09:40:43.828321 ====> Client connect 09:40:43.828732 accept_connection 3 returned 4 09:40:43.828881 accept_connection 3 returned 0 09:40:43.829001 Read 93 bytes 09:40:43.829090 Process 93 bytes request 09:40:43.829170 Got request: GET /verifiedserver HTTP/1.1 09:40:43.829243 Are-we-friendly question received 09:40:43.829528 Wrote request (93 bytes) input to log/24/server.input 09:40:43.829705 Identifying ourselves as friends 09:40:43.833694 Response sent (56 bytes) and written to log/24/server.response 09:40:43.833816 special request received, no persistency 09:40:43.833899 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 374 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind374 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind374 test 0376...[--remove-on-error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind376 ../src/curl -q --include --trace-ascii log/29/trace376 --trace-config all --trace-time http://127.0.0.1:36877/376 -o log/29/save-376 --remove-on-error > log/29/stdout376 2> log/29/stderr376 376: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 376 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind376 ../src/curl -q --include --trace-ascii log/29/trace376 --trace-config all --trace-time http://127.0.0.1:36877/376 -o log/29/save-376 --remove-on-error > log/29/stdout376 2> log/29/stderr376 === End of file commands.log === Start of file http_server.log 09:40:44.053578 ====> Client connect 09:40:44.053916 accept_connection 3 returned 4 09:40:44.054081 accept_connection 3 returned 0 09:40:44.054218 Read 93 bytes 09:40:44.054321 Process 93 bytes request 09:40:44.054410 Got request: GET /verifiedserver HTTP/1.1 09:40:44.054581 Are-we-friendly question received 09:40:44.054807 Wrote request (93 bytes) input to log/29/server.input 09:40:44.055010 Identifying ourselves as friends 09:40:44.058865 Response sent (56 bytes) and written to log/29/server.response 09:40:44.058996 special request received, no persistency 09:40:44.059072 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 376 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind376 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind376 test 0385...[HTTP with --json x 2] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind385 ../src/curl -q --output log/48/curl385.out --include --trace-ascii log/48/trace385 --trace-config all --trace-time --json '{ "drink": "coffe",' --json ' "crunch": "cookie" }' http://127.0.0.1:46339/385 -H "Content-Type: drinks/hot" > log/48/stdout385 2> log/48/stderr385 385: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 385 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind385 ../src/curl -q --output log/48/curl385.out --include --trace-ascii log/48/trace385 --trace-config all --trace-time --json '{ "drink": "coffe",' --json ' "crunch": "cookie" }' http://127.0.0.1:46339/385 -H "Content-Type: drinks/hot" > log/48/stdout385 2> log/48/stderr385 === End of file commands.log === Start of file http_server.log 09:40:44.156137 ====> Client connect 09:40:44.156682 accept_connection 3 returned 4 09:40:44.156880 accept_connection 3 returned 0 09:40:44.160216 Read 93 bytes 09:40:44.160378 Process 93 bytes request 09:40:44.160562 Got request: GET /verifiedserver HTTP/1.1 09:40:44.160696 Are-we-friendly question received 09:40:44.160982 Wrote request (93 bytes) input to log/48/server.input 09:40:44.161210 Identifying ourselves as friends 09:40:44.161937 Response sent (56 bytes) and written to log/48/server.response 09:40:44.162055 special request received, no persistency 09:40:44.162125 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 385 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind385 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind385 test 0361...[HTTP GET --fail-with-body on HTTP error return - twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind361 ../src/curl -q --output log/55/curl361.out --include --trace-ascii log/55/trace361 --trace-config all --trace-time http://127.0.0.1:33071/361 http://127.0.0.1:33071/361 --fail-with-body > log/55/stdout361 2> log/55/stderr361 361: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 361 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind361 ../src/curl -q --output log/55/curl361.out --include --trace-ascii log/55/trace361 --trace-config all --trace-time http://127.0.0.1:33071/361 http://127.0.0.1:33071/361 --fail-with-body > log/55/stdout361 2> log/55/stderr361 === End of file commands.log === Start of file http_server.log 09:40:43.512630 ====> Client connect 09:40:43.513007 accept_connection 3 returned 4 09:40:43.513232 accept_connection 3 returned 0 09:40:43.513427 Read 93 bytes 09:40:43.513644 Process 93 bytes request 09:40:43.513764 Got request: GET /verifiedserver HTTP/1.1 09:40:43.513892 Are-we-friendly question received 09:40:43.514201 Wrote request (93 bytes) input to log/55/server.input 09:40:43.514696 Identifying ourselves as friends 09:40:43.518311 Response sent (56 bytes) and written to log/55/server.response 09:40:43.518533 special request received, no persistency 09:40:43.518635 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 361 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind361 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind361 test 0362...[FTP resume upload file with nothing to start from] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind362 ../src/curl -q --output log/58/curl362.out --include --trace-ascii log/58/trace362 --trace-config all --trace-time ftp://127.0.0.1:38901/362 -T log/58/test362.txt --continue-at - > log/58/stdout362 2> log/58/stderr362 362: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 362 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind362 ../src/curl -q --output log/58/curl362.out --include --trace-ascii log/58/trace362 --trace-config all --trace-time ftp://127.0.0.1:38901/362 -T log/58/test362.txt --continue-at - > log/58/stdout362 2> log/58/stderr362 === End of file commands.log === Start of file ftp_server.log 09:40:43.537927 ====> Client connect 09:40:43.540375 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:43.543479 < "USER anonymous" 09:40:43.544337 > "331 We are happy you popped in![CR][LF]" 09:40:43.546207 < "PASS ftp@example.com" 09:40:43.547371 > "230 Welcome you silly person[CR][LF]" 09:40:43.549080 < "PWD" 09:40:43.550846 > "257 "/" is current directory[CR][LF]" 09:40:43.552042 < "EPSV" 09:40:43.552352 ====> Passive DATA channel requested by client 09:40:43.552613 DATA sockfilt for passive data channel starting... 09:40:43.565576 DATA sockfilt for passive data channel started (pid 92461) 09:40:43.566671 DATA sockfilt for passive data channel listens on port 34879 09:40:43.567194 > "229 Entering Passive Mode (|||34879|)[LF]" 09:40:43.567448 Client has been notified that DATA conn will be accepted on port 34879 09:40:43.569431 Client connects to port 34879 09:40:43.569688 ====> Client established passive DATA connection on port 34879 09:40:43.570723 < "TYPE I" 09:40:43.571244 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:43.573204 < "SIZE verifiedserver" 09:40:43.574446 > "213 17[CR][LF]" 09:40:43.575539 < "RETR verifiedserver" 09:40:43.576029 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:43.576707 =====> Closing passive DATA connection... 09:40:43.578944 Server disconnects passive DATA connection 09:40:43.579217 Fancy that; client wants to DISC, too 09:40:43.580605 Server disconnected passive DATA connection 09:40:43.581005 DATA sockfilt for passive data channel quits (pid 92461) 09:40:43.583085 DATA sockfilt for passive data channel quit (pid 92461) 09:40:43.583320 =====> Closed passive DATA connection 09:40:43.583603 > "226 File transfer complete[CR][LF]" 09:40:43.620399 < "QUIT" 09:40:43.621540 > "221 bye bye baby[CR][LF]" 09:40:43.623135 MAIN sockfilt said DISC 09:40:43.623444 ====> Client disconnected 09:40:43.624004 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:43.789682 ====> Client connect 09:40:43.792888 Received DATA (on stdin) 09:40:43.793053 > 160 bytes data, server => client 09:40:43.793230 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:43.793357 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:43.793579 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:43.796066 < 16 bytes data, client => server 09:40:43.796233 'USER anonymous\r\n' 09:40:43.797634 Received DATA (on stdin) 09:40:43.797798 > 33 bytes data, server => client 09:40:43.798403 '331 We are happy you popped in!\r\n' 09:40:43.799144 < 22 bytes data, client => server 09:40:43.799282 'PASS ftp@example.com\r\n' 09:40:43.800231 Received DATA (on stdin) 09:40:43.800374 > 30 bytes data, server => client 09:40:43.800614 '230 Welcome you silly person\r\n' 09:40:43.802097 < 5 bytes data, client => server 09:40:43.802250 'PWD\r\n' 09:40:43.803346 Received DATA (on stdin) 09:40:43.803591 > 30 bytes data, server => client 09:40:43.803779 '257 "/" is current directory\r\n' 09:40:43.804931 < 6 bytes data, client => server 09:40:43.805067 'EPSV\r\n' 09:40:43.821523 Received DATA (on stdin) 09:40:43.821670 > 38 bytes data, server => client 09:40:43.821762 '229 Entering Passive Mode (|||34879|)\n' 09:40:43.823104 < 8 bytes data, client => server 09:40:43.823250 'TYPE I\r\n' 09:40:43.825267 Received DATA (on stdin) 09:40:43.825421 > 33 bytes data, server => client 09:40:43.825634 '200 I modify TYPE as you wanted\r\n' 09:40:43.826351 < 21 bytes data, client => server 09:40:43.826574 'SIZE verifiedserver\r\n' 09:40:43.827331 Received DATA (on stdin) 09:40:43.827545 > 8 bytes data, server => client 09:40:43.827720 '213 17\r\n' 09:40:43.828570 < 21 bytes data, client => server 09:40:43.828698 'RETR verifiedserver\r\n' 09:40:43.830550 Received DATA (on stdin) 09:40:43.830690 > 29 bytes data, server => client 09:40:43.830780 '150 Binary junk (17 bytes).\r\n' 09:40:43.837715 Received DATA (on stdin) 09:40:43.837850 > 28 bytes data, server => client 09:40:43.837928 '226 File transfer complete\r\n' 09:40:43.873258 < 6 bytes data, client => server 09:40:43.873413 'QUIT\r\n' 09:40:43.874518 Received DATA (on stdin) 09:40:43.874662 > 18 bytes data, server => client 09:40:43.874835 '221 bye bye baby\r\n' 09:40:43.876565 ====> Client disconnect 09:40:43.879317 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:43.817692 Running IPv4 version 09:40:43.818269 Listening on port 34879 09:40:43.818832 Wrote pid 92461 to log/58/server/ftp_sockdata.pid 09:40:43.818995 Received PING (on stdin) 09:40:43.819769 Received PORT (on stdin) 09:40:43.822845 ====> Client connect 09:40:43.831115 Received DATA (on stdin) 09:40:43.831252 > 17 bytes data, server => client 09:40:43.831333 'WE ROOLZ: 77973\r\n' 09:40:43.832081 ====> Client disconnect 09:40:43.833309 Received DISC (on stdin) 09:40:43.833757 Crikey! Client also wants to disconnect 09:40:43.833907 Received ACKD (on stdin) 09:40:43.835001 Received QUIT (on stdin) 09:40:43.835126 quits 09:40:43.835591 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 362 === End of file server.cmd === Start of file test362.txt data to see that FTP works so does it? === End of file test362.txt === Start of file valgrind362 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind362 test 0365...[HTTP/1.1 with chunked AND Content-Length headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind365 ../src/curl -q --output log/59/curl365.out --include --trace-ascii log/59/trace365 --trace-config all --trace-time http://127.0.0.1:43695/365 > log/59/stdout365 2> log/59/stderr365 365: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 365 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind365 ../src/curl -q --output log/59/curl365.out --include --trace-ascii log/59/trace365 --trace-config all --trace-time http://127.0.0.1:43695/365 > log/59/stdout365 2> log/59/stderr365 === End of file commands.log === Start of file http_server.log 09:40:43.783806 ====> Client connect 09:40:43.784117 accept_connection 3 returned 4 09:40:43.784311 accept_connection 3 returned 0 09:40:43.786052 Read 93 bytes 09:40:43.786198 Process 93 bytes request 09:40:43.786295 Got request: GET /verifiedserver HTTP/1.1 09:40:43.786386 Are-we-friendly question received 09:40:43.786711 Wrote request (93 bytes) input to log/59/server.input 09:40:43.786894 Identifying ourselves as friends 09:40:43.787394 Response sent (56 bytes) and written to log/59/server.response 09:40:43.787568 special request received, no persistency 09:40:43.787642 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd Testnum 365 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind365 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind365 test 0373...[Chunked transfer encoding - Multiple valid chunks with binary zeros.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind373 ../src/curl -q --output log/60/curl373.out --include --trace-ascii log/60/trace373 --trace-config all --trace-time http://127.0.0.1:38843/chunked-transfer-encoding/373 > log/60/stdout373 2> log/60/stderr373 373: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 373 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind373 ../src/curl -q --output log/60/curl373.out --include --trace-ascii log/60/trace373 --trace-config all --trace-time http://127.0.0.1:38843/chunked-transfer-encoding/373 > log/60/stdout373 2> log/60/stderr373 === End of file commands.log === Start of file http_server.log 09:40:43.891761 ====> Client connect 09:40:43.892078 accept_connection 3 returned 4 09:40:43.892239 accept_connection 3 returned 0 09:40:43.893174 Read 93 bytes 09:40:43.893327 Process 93 bytes request 09:40:43.893528 Got request: GET /verifiedserver HTTP/1.1 09:40:43.893659 Are-we-friendly question received 09:40:43.893897 Wrote request (93 bytes) input to log/60/server.input 09:40:43.894099 Identifying ourselves as friends 09:40:43.895987 Response sent (56 bytes) and written to log/60/server.response 09:40:43.896113 special request received, no persistency 09:40:43.896181 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 373 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind373 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind373 test 0379...[--remove-on-error with --no-clobber and an added number] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind379 ../src/curl -q --include --trace-ascii log/2/trace379 --trace-config all --trace-time http://127.0.0.1:39659/379 -o log/2/save --remove-on-error --no-clobber > log/2/stdout379 2> log/2/stderr379 379: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 379 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind379 ../src/curl -q --include --trace-ascii log/2/trace379 --trace-config all --trace-time http://127.0.0.1:39659/379 -o log/2/save --remove-on-error --no-clobber > log/2/stdout379 2> log/2/stderr379 === End of file commands.log === Start of file http_server.log 09:40:44.041019 ====> Client connect 09:40:44.041421 accept_connection 3 returned 4 09:40:44.0CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind391 ../src/curl -q --output log/39/curl391.out --include --trace-ascii log/39/trace391 --trace-config all --trace-time http://127.0.0.1:42899/../../391 --path-as-is -L > log/39/stdout391 2> log/39/stderr391 41824 accept_connection 3 returned 0 09:40:44.042019 Read 93 bytes 09:40:44.042204 Process 93 bytes request 09:40:44.042354 Got request: GET /verifiedserver HTTP/1.1 09:40:44.042562 Are-we-friendly question received 09:40:44.042843 Wrote request (93 bytes) input to log/2/server.input 09:40:44.043107 Identifying ourselves as friends 09:40:44.049419 Response sent (56 bytes) and written to log/2/server.response 09:40:44.049660 special request received, no persistency 09:40:44.049767 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file save exists before command runs === End of file save === Start of file server.cmd Testnum 379 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind379 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind379 test 0383...[HTTP with --json] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind383 ../src/curl -q --output log/4/curl383.out --include --trace-ascii log/4/trace383 --trace-config all --trace-time --json '{ "drink": "coffe" }' http://127.0.0.1:43013/383 > log/4/stdout383 2> log/4/stderr383 383: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 383 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind383 ../src/curl -q --output log/4/curl383.out --include --trace-ascii log/4/trace383 --trace-config all --trace-time --json '{ "drink": "coffe" }' http://127.0.0.1:43013/383 > log/4/stdout383 2> log/4/stderr383 === End of file commands.log === Start of file http_server.log 09:40:44.214875 ====> Client connect 09:40:44.215288 accept_connection 3 returned 4 09:40:44.215566 accept_connection 3 returned 0 09:40:44.216767 Read 93 bytes 09:40:44.216909 Process 93 bytes request 09:40:44.217000 Got request: GET /verifiedserver HTTP/1.1 09:40:44.217086 Are-we-friendly question received 09:40:44.217323 Wrote request (93 bytes) input to log/4/server.input 09:40:44.217632 Identifying ourselves as friends 09:40:44.222024 Response sent (56 bytes) and written to log/4/server.response 09:40:44.222154 special request received, no persistency 09:40:44.222230 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 383 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind383 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind383 test 0384...[HTTP with --json from stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind384 ../src/curl -q --output log/9/curl384.out --include --trace-ascii log/9/trace384 --trace-config all --trace-time --json @- http://127.0.0.1:46607/384 -H "Accept: foobar/*" log/9/stdout384 2> log/9/stderr384 384: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 384 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind384 ../src/curl -q --output log/9/curl384.out --include --trace-ascii log/9/trace384 --trace-config all --trace-time --json @- http://127.0.0.1:46607/384 -H "Accept: foobar/*" log/9/stdout384 2> log/9/stderr384 === End of file commands.log === Start of file http_server.log 09:40:44.290087 ====> Client connect 09:40:44.290408 accept_connection 3 returned 4 09:40:44.290758 accept_connection 3 returned 0 09:40:44.291573 Read 93 bytes 09:40:44.291763 Process 93 bytes request 09:40:44.291871 Got request: GET /verifiedserver HTTP/1.1 09:40:44.292006 Are-we-friendly question received 09:40:44.292298 Wrote request (93 bytes) input to log/9/server.input 09:40:44.292678 Identifying ourselves as friends 09:40:44.293359 Response sent (56 bytes) and written to log/9/server.response 09:40:44.293552 special request received, no persistency 09:40:44.293657 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 384 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file stdin-for-384 { "drink": "coffe" } === End of file stdin-for-384 === Start of file valgrind384 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind384 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/16/server/ftp_server.pid" --logfile "log/16/ftp_server.log" --logdir "log/16" --portfile "log/16/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44119 (log/16/server/ftp_server.port) RUN: FTP server is PID 90762 port 44119 * pid ftp => 90762 90762 test 0351...[FTP root dir list nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind351 ../src/curl -q --output log/16/curl351.out --include --trace-ascii log/16/trace351 --trace-config all --trace-time ftp://127.0.0.1:44119// --ftp-method nocwd > log/16/stdout351 2> log/16/stderr351 351: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 351 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind351 ../src/curl -q --output log/16/curl351.out --include --trace-ascii log/16/trace351 --trace-config all --trace-time ftp://127.0.0.1:44119// --ftp-method nocwd > log/16/stdout351 2> log/16/stderr351 === End of file commands.log === Start of file ftp_server.log 09:40:43.116469 FTP server listens on port IPv4/44119 09:40:43.117470 logged pid 90762 in log/16/server/ftp_server.pid 09:40:43.117821 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:43.367552 Running IPv4 version 09:40:43.368205 Listening on port 44119 09:40:43.368829 Wrote pid 91410 to log/16/server/ftp_sockctrl.pid 09:40:43.369191 Wrote port 44119 to log/16/server/ftp_server.port 09:40:43.369368 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 351 === End of file server.cmd === Start of file valgrind351 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind351 test 0389...[*.localhost is a local host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind389 ../src/curl -q --output log/36/curl389.out --include --trace-ascii log/36/trace389 --trace-config all --trace-time -4 http://curlmachine.localhost:44255/389 > log/36/stdout389 2> log/36/stderr389 389: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 389 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind389 ../src/curl -q --output log/36/curl389.out --include --trace-ascii log/36/trace389 --trace-config all --trace-time -4 http://curlmachine.localhost:44255/389 > log/36/stdout389 2> log/36/stderr389 === End of file commands.log === Start of file http_server.log 09:40:44.539621 ====> Client connect 09:40:44.539981 accept_connection 3 returned 4 09:40:44.540167 accept_connection 3 returned 0 09:40:44.541143 Read 93 bytes 09:40:44.541331 Process 93 bytes request 09:40:44.541547 Got request: GET /verifiedserver HTTP/1.1 09:40:44.541704 Are-we-friendly question received 09:40:44.541981 Wrote request (93 bytes) input to log/36/server.input 09:40:44.542173 Identifying ourselves as friends 09:40:44.544839 Response sent (56 bytes) and written to log/36/server.response 09:40:44.544980 special request received, no persistency 09:40:44.545062 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 389 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind389 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind389 test 0388...[HTTP with Digest and multiple qop values with leading space] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind388 ../src/curl -q --include --trace-ascii log/46/trace388 --trace-config all --trace-time http://127.0.0.1:46523/3880001 -u testuser:testpass --digest http://127.0.0.1:46523/3880002 > log/46/stdout388 2> log/46/stderr388 388: stdout FAILED: --- log/46/check-expected 2025-07-18 09:40:45.593695152 +0000 +++ log/46/check-generated 2025-07-18 09:40:45.592605713 +0000 @@ -1,30 +0,0 @@ -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 23[CR][LF] -[CR][LF] -This IS the real page![LF] -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="crazy, auth"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 30[CR][LF] -[CR][LF] -This IS the second real page![LF] == Contents of files in the log/46/ dir after test 388 === Start of file check-expected HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 23[CR][LF] [CR][LF] This IS the real page![LF] HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="crazy, auth"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 30[CR][LF] [CR][LF] This IS the second real page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind388 ../src/curl -q --include --trace-ascii log/46/trace388 --trace-config all --trace-time http://127.0.0.1:46523/3880001 -u testuser:testpass --digest http://127.0.0.1:46523/3880002 > log/46/stdout388 2> log/46/stderr388 === End of file commands.log === Start of file http_server.log 09:40:44.222099 ====> Client connect 09:40:44.222575 accept_connection 3 returned 4 09:40:44.222778 accept_connection 3 returned 0 09:40:44.223349 Read 93 bytes 09:40:44.223570 Process 93 bytes request 09:40:44.223753 Got request: GET /verifiedserver HTTP/1.1 09:40:44.223875 Are-we-friendly question received 09:40:44.224172 Wrote request (93 bytes) input to log/46/server.input 09:40:44.224531 Identifying ourselves as friends 09:40:44.225189 Response sent (56 bytes) and written to log/46/server.response 09:40:44.225376 special request received, no persistency 09:40:44.225569 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 388 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind388 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind388 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind395 ../src/curl -q --output log/56/curl395.out --include --trace-ascii log/56/trace395 --trace-config all --trace-time http://127.0.0.1:43265/395 > log/56/stdout395 2> log/56/stderr395 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind399 ../src/curl -q --output log/32/curl399.out --include --trace-ascii log/32/trace399 --trace-config all --trace-time -K log/32/input%TESTNUM > log/32/stdout399 2> log/32/stderr399 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind398 ../src/curl -q --output log/6/curl398.out --include --trace-ascii log/6/trace398 --trace-config all --trace-time http://127.0.0.1:37181/398 > log/6/stdout398 2> log/6/stderr398 test 0387...[Response with overly long compression chain] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind387 ../src/curl -q --output log/49/curl387.out --include --trace-ascii log/49/trace387 --trace-config all --trace-time http://127.0.0.1:42667/387 -sS --tr-encoding > log/49/stdout387 2> log/49/stderr387 387: stderr FAILED: --- log/49/check-expected 2025-07-18 09:40:45.676296910 +0000 +++ log/49/check-generated 2025-07-18 09:40:45.674605671 +0000 @@ -1 +0,0 @@ -curl: (61) Reject response due to more than 5 content encodings[CR][LF] == Contents of files in the log/49/ dir after test 387 === Start of file check-expected curl: (61) Reject response due to more than 5 content encodings[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind387 ../src/curl -q --output log/49/curl387.out --include --trace-ascii log/49/trace387 --trace-config all --trace-time http://127.0.0.1:42667/387 -sS --tr-encoding > log/49/stdout387 2> log/49/stderr387 === End of file commands.log === Start of file http_server.log 09:40:44.336045 ====> Client connect 09:40:44.336348 accept_connection 3 returned 4 09:40:44.336634 accept_connection 3 returned 0 09:40:44.337351 Read 93 bytes 09:40:44.337593 Process 93 bytes request 09:40:44.337717 Got request: GET /verifiedserver HTTP/1.1 09:40:44.337810 Are-we-friendly question received 09:40:44.338027 Wrote request (93 bytes) input to log/49/server.input 09:40:44.338231 Identifying ourselves as friends 09:40:44.338830 Response sent (56 bytes) and written to log/49/server.response 09:40:44.338930 special request received, no persistency 09:40:44.338994 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 387 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind387 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind387 test 0381...[netrc-optional lets URL creds override netrc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind381 ../src/curl -q --output log/50/curl381.out --include --trace-ascii log/50/trace381 --trace-config all --trace-time --netrc-optional --netrc-file log/50/netrc381 ftp://mary:drfrank@127.0.0.1:36567/ > log/50/stdout381 2> log/50/stderr381 381: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 381 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind381 ../src/curl -q --output log/50/curl381.out --include --trace-ascii log/50/trace381 --trace-config all --trace-time --netrc-optional --netrc-file log/50/netrc381 ftp://mary:drfrank@127.0.0.1:36567/ > log/50/stdout381 2> log/50/stderr381 === End of file commands.log === Start of file ftp_server.log 09:40:43.850383 ====> Client connect 09:40:43.855998 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:43.859278 < "USER anonymous" 09:40:43.860247 > "331 We are happy you popped in![CR][LF]" 09:40:43.865978 < "PASS ftp@example.com" 09:40:43.869246 > "230 Welcome you silly person[CR][LF]" 09:40:43.870101 < "PWD" 09:40:43.872903 > "257 "/" is current directory[CR][LF]" 09:40:43.875676 < "EPSV" 09:40:43.876068 ====> Passive DATA channel requested by client 09:40:43.876256 DATA sockfilt for passive data channel starting... 09:40:43.903665 DATA sockfilt for passive data channel started (pid 93256) 09:40:43.904873 DATA sockfilt for passive data channel listens on port 38125 09:40:43.905719 > "229 Entering Passive Mode (|||38125|)[LF]" 09:40:43.906134 Client has been notified that DATA conn will be accepted on port 38125 09:40:43.908717 Client connects to port 38125 09:40:43.909105 ====> Client established passive DATA connection on port 38125 09:40:43.910027 < "TYPE I" 09:40:43.910457 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:43.912934 < "SIZE verifiedserver" 09:40:43.914830 > "213 17[CR][LF]" 09:40:43.916138 < "RETR verifiedserver" 09:40:43.916663 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:43.917498 =====> Closing passive DATA connection... 09:40:43.917722 Server disconnects passive DATA connection 09:40:43.922205 Server disconnected passive DATA connection 09:40:43.922616 DATA sockfilt for passive data channel quits (pid 93256) 09:40:43.925118 DATA sockfilt for passive data channel quit (pid 93256) 09:40:43.925609 =====> Closed passive DATA connection 09:40:43.926561 > "226 File transfer complete[CR][LF]" 09:40:43.964058 < "QUIT" 09:40:43.968295 > "221 bye bye baby[CR][LF]" 09:40:43.969280 MAIN sockfilt said DISC 09:40:43.969551 ====> Client disconnected 09:40:43.970354 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:44.103214 ====> Client connect 09:40:44.105701 Received DATA (on stdin) 09:40:44.105884 > 160 bytes data, server => client 09:40:44.110062 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:44.110218 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:44.110310 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:44.111707 < 16 bytes data, client => server 09:40:44.111863 'USER anonymous\r\n' 09:40:44.113400 Received DATA (on stdin) 09:40:44.113686 > 33 bytes data, server => client 09:40:44.114310 '331 We are happy you popped in!\r\n' 09:40:44.118292 < 22 bytes data, client => server 09:40:44.118517 'PASS ftp@example.com\r\n' 09:40:44.120398 Received DATA (on stdin) 09:40:44.120773 > 30 bytes data, server => client 09:40:44.121608 '230 Welcome you silly person\r\n' 09:40:44.122290 < 5 bytes data, client => server 09:40:44.122593 'PWD\r\n' 09:40:44.125653 Received DATA (on stdin) 09:40:44.125848 > 30 bytes data, server => client 09:40:44.126048 '257 "/" is current directory\r\n' 09:40:44.126994 < 6 bytes data, client => server 09:40:44.127221 'EPSV\r\n' 09:40:44.159019 Received DATA (on stdin) 09:40:44.159170 > 38 bytes data, server => client 09:40:44.160272 '229 Entering Passive Mode (|||38125|)\n' 09:40:44.161795 < 8 bytes data, client => server 09:40:44.161947 'TYPE I\r\n' 09:40:44.164567 Received DATA (on stdin) 09:40:44.164718 > 33 bytes data, server => client 09:40:44.164803 '200 I modify TYPE as you wanted\r\n' 09:40:44.165380 < 21 bytes data, client => server 09:40:44.165592 'SIZE verifiedserver\r\n' 09:40:44.167121 Received DATA (on stdin) 09:40:44.167280 > 8 bytes data, server => client 09:40:44.167554 '213 17\r\n' 09:40:44.168960 < 21 bytes data, client => server 09:40:44.169102 'RETR verifiedserver\r\n' 09:40:44.171947 Received DATA (on stdin) 09:40:44.172192 > 29 bytes data, server => client 09:40:44.172409 '150 Binary junk (17 bytes).\r\n' 09:40:44.179839 Received DATA (on stdin) 09:40:44.180013 > 28 bytes data, server => client 09:40:44.180697 '226 File transfer complete\r\n' 09:40:44.216692 < 6 bytes data, client => server 09:40:44.216856 'QUIT\r\n' 09:40:44.220606 Received DATA (on stdin) 09:40:44.220936 > 18 bytes data, server => client 09:40:44.221366 '221 bye bye baby\r\n' 09:40:44.222736 ====> Client disconnect 09:40:44.227640 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:43.154650 Running IPv4 version 09:40:43.156294 Listening on port 38125 09:40:43.156847 Wrote pid 93256 to log/50/server/ftp_sockdata.pid 09:40:43.157037 Received PING (on stdin) 09:40:43.157912 Received PORT (on stdin) 09:40:43.162147 ====> Client connect 09:40:43.172898 Received DATA (on stdin) 09:40:43.173055 > 17 bytes data, server => client 09:40:43.173137 'WE ROOLZ: 77995\r\n' 09:40:43.173422 Received DISC (on stdin) 09:40:43.173702 ====> Client forcibly disconnected 09:40:43.176809 Received QUIT (on stdin) 09:40:43.176971 quits 09:40:43.177403 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc381 # the following two lines were created while testing curl machine 127.0.0.1 login frankenstein password wrongone machine 127.0.0.1 login mary password yram === End of file netrc381 === Start of file server.cmd Testnum 381 === End of file server.cmd === Start of file valgrind381 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind381 test 0393...[HTTP max-filesize and out-of-range Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind393 ../src/curl -q --output log/54/curl393.out --include --trace-ascii log/54/trace393 --trace-config all --trace-time http://127.0.0.1:44921/393 --max-filesize 2000000 > log/54/stdout393 2> log/54/stderr393 393: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 393 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind393 ../src/curl -q --output log/54/curl393.out --include --trace-ascii log/54/trace393 --trace-config all --trace-time http://127.0.0.1:44921/393 --max-filesize 2000000 > log/54/stdout393 2> log/54/stderr393 === End of file commands.log === Start of file http_server.log 09:40:44.695189 ====> Client connect 09:40:44.695753 accept_connection 3 returned 4 09:40:44.695992 accept_connection 3 returned 0 09:40:44.696182 Read 93 bytes 09:40:44.696319 Process 93 bytes request 09:40:44.696513 Got request: GET /verifiedserver HTTP/1.1 09:40:44.696658 Are-we-friendly question received 09:40:44.696967 Wrote request (93 bytes) input to log/54/server.input 09:40:44.697224 Identifying ourselves as friends 09:40:44.700396 Response sent (56 bytes) and written to log/54/server.response 09:40:44.700655 special request received, no persistency 09:40:44.700787 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 393 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind393 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind393 setenv TZ = GMT test 0392...[HTTP secure cookies over localhost] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind392 ../src/curl -q --output log/57/curl392.out --include --trace-ascii log/57/trace392 --trace-config all --trace-time -4 http://localhost:35945/392 -b none http://localhost:35945/392 > log/57/stdout392 2> log/57/stderr392 392: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 392 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind392 ../src/curl -q --output log/57/curl392.out --include --trace-ascii log/57/trace392 --trace-config all --trace-time -4 http://localhost:35945/392 -b none http://localhost:35945/392 > log/57/stdout392 2> log/57/stderr392 === End of file commands.log === Start of file http_server.log 09:40:44.522842 ====> Client connect 09:40:44.523157 accept_connection 3 returned 4 09:40:44.523335 accept_connection 3 returned 0 09:40:44.527575 Read 93 bytes 09:40:44.527752 Process 93 bytes request 09:40:44.527855 Got request: GET /verifiedserver HTTP/1.1 09:40:44.527941 Are-we-friendly question received 09:40:44.528218 Wrote request (93 bytes) input to log/57/server.input 09:40:44.528514 Identifying ourselves as friends 09:40:44.533384 Response sent (56 bytes) and written to log/57/server.response 09:40:44.533598 special request received, no persistency 09:40:44.533773 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 392 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind392 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind392 test 0367...[Empty user name provided in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind367 ../src/curl -q --output log/62/curl367.out --include --trace-ascii log/62/trace367 --trace-config all --trace-time http://:example@127.0.0.1:38899/367 > log/62/stdout367 2> log/62/stderr367 367: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 367 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind367 ../src/curl -q --output log/62/curl367.out --include --trace-ascii log/62/trace367 --trace-config all --trace-time http://:example@127.0.0.1:38899/367 > log/62/stdout367 2> log/62/stderr367 === End of file commands.log === Start of file http_server.log 09:40:43.922236 ====> Client connect 09:40:43.922895 accept_connection 3 returned 4 09:40:43.923063 accept_connection 3 returned 0 09:40:43.923202 Read 93 bytes 09:40:43.923335 Process 93 bytes request 09:40:43.923527 Got request: GET /verifiedserver HTTP/1.1 09:40:43.923672 Are-we-friendly question received 09:40:43.924020 Wrote request (93 bytes) input to log/62/server.input 09:40:43.924216 Identifying ourselves as friends 09:40:43.929055 Response sent (56 bytes) and written to log/62/server.response 09:40:43.929205 special request received, no persistency 09:40:43.929309 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 367 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind367 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind367 test 0386...[HTTP with --json + --next] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind386 ../src/curl -q --output log/63/curl386.out --include --trace-ascii log/63/trace386 --trace-config all --trace-time --json '{ "drink": "coffe" }' http://127.0.0.1:38797/386 --next http://127.0.0.1:38797/3860002 > log/63/stdout386 2> log/63/stderr386 386: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after teCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind394 ../src/curl -q --output log/14/curl394.out --include --trace-ascii log/14/trace394 --trace-config all --trace-time http://127.0.0.1:43309/394 > log/14/stdout394 2> log/14/stderr394 st 386 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind386 ../src/curl -q --output log/63/curl386.out --include --trace-ascii log/63/trace386 --trace-config all --trace-time --json '{ "drink": "coffe" }' http://127.0.0.1:38797/386 --next http://127.0.0.1:38797/3860002 > log/63/stdout386 2> log/63/stderr386 === End of file commands.log === Start of file http_server.log 09:40:44.195912 ====> Client connect 09:40:44.196223 accept_connection 3 returned 4 09:40:44.196404 accept_connection 3 returned 0 09:40:44.197406 Read 93 bytes 09:40:44.197620 Process 93 bytes request 09:40:44.197726 Got request: GET /verifiedserver HTTP/1.1 09:40:44.197824 Are-we-friendly question received 09:40:44.198090 Wrote request (93 bytes) input to log/63/server.input 09:40:44.198350 Identifying ourselves as friends 09:40:44.201995 Response sent (56 bytes) and written to log/63/server.response 09:40:44.202138 special request received, no persistency 09:40:44.202227 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 386 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind386 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind386 test 0398...[Reject HTTP/1.1 response with colon-less header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind398 ../src/curl -q --output log/6/curl398.out --include --trace-ascii log/6/trace398 --trace-config all --trace-time http://127.0.0.1:37181/398 > log/6/stdout398 2> log/6/stderr398 398: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 398 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind398 ../src/curl -q --output log/6/curl398.out --include --trace-ascii log/6/trace398 --trace-config all --trace-time http://127.0.0.1:37181/398 > log/6/stdout398 2> log/6/stderr398 === End of file commands.log === Start of file http_server.log 09:40:45.024145 ====> Client connect 09:40:45.024566 accept_connection 3 returned 4 09:40:45.024770 accept_connection 3 returned 0 09:40:45.025600 Read 93 bytes 09:40:45.025746 Process 93 bytes request 09:40:45.025832 Got request: GET /verifiedserver HTTP/1.1 09:40:45.025917 Are-we-friendly question received 09:40:45.026156 Wrote request (93 bytes) input to log/6/server.input 09:40:45.026341 Identifying ourselves as friends 09:40:45.027321 Response sent (56 bytes) and written to log/6/server.response 09:40:45.027510 special request received, no persistency 09:40:45.027604 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 398 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind398 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind398 test 0399...[65536 bytes long host name in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind399 ../src/curl -q --output log/32/curl399.out --include --trace-ascii log/32/trace399 --trace-config all --trace-time -K log/32/input%TESTNUM > log/32/stdout399 2> log/32/stderr399 curl returned 1, when expecting 3 399: exit FAILED == Contents of files in the log/32/ dir after test 399 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind399 ../src/curl -q --output log/32/curl399.out --include --trace-ascii log/32/trace399 --trace-config all --trace-time -K log/32/input%TESTNUM > log/32/stdout399 2> log/32/stderr399 === End of file commands.log === Start of file http_server.log 09:40:44.932714 ====> Client connect 09:40:44.933055 accept_connection 3 returned 4 09:40:44.933218 accept_connection 3 returned 0 09:40:44.934205 Read 93 bytes 09:40:44.934379 Process 93 bytes request 09:40:44.934612 Got request: GET /verifiedserver HTTP/1.1 09:40:44.934906 Are-we-friendly question received 09:40:44.935199 Wrote request (93 bytes) input to log/32/server.input 09:40:44.935383 Identifying ourselves as friends 09:40:44.940706 Response sent (56 bytes) and written to log/32/server.response 09:40:44.940825 special request received, no persistency 09:40:44.940891 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file input%TESTNUM url = http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/399 === End of file input%TESTNUM === Start of file server.cmd Testnum 399 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind399 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind399 test 0391...[--path-as-is with redirect, keeping dotdots] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind391 ../src/curl -q --output log/39/curl391.out --include --trace-ascii log/39/trace391 --trace-config all --trace-time http://127.0.0.1:42899/../../391 --path-as-is -L > log/39/stdout391 2> log/39/stderr391 391: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 391 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind391 ../src/curl -q --output log/39/curl391.out --include --trace-ascii log/39/trace391 --trace-config all --trace-time http://127.0.0.1:42899/../../391 --path-as-is -L > log/39/stdout391 2> log/39/stderr391 === End of file commands.log === Start of file http_server.log 09:40:44.672204 ====> Client connect 09:40:44.672676 accept_connection 3 returned 4 09:40:44.672876 accept_connection 3 returned 0 09:40:44.673028 Read 93 bytes 09:40:44.673366 Process 93 bytes request 09:40:44.673558 Got request: GET /verifiedserver HTTP/1.1 09:40:44.678635 Are-we-friendly question received 09:40:44.678944 Wrote request (93 bytes) input to log/39/server.input 09:40:44.679191 Identifying ourselves as friends 09:40:44.680284 Response sent (56 bytes) and written to log/39/server.response 09:40:44.682594 special request received, no persistency 09:40:44.682721 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 391 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind391 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind391 test 0395...[HTTP and out-of-range Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind395 ../src/curl -q --output log/56/curl395.out --include --trace-ascii log/56/trace395 --trace-config all --trace-time http://127.0.0.1:43265/395 > log/56/stdout395 2> log/56/stderr395 395: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 395 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind395 ../src/curl -q --output log/56/curl395.out --include --trace-ascii log/56/trace395 --trace-config all --trace-time http://127.0.0.1:43265/395 > log/56/stdout395 2> log/56/stderr395 === End of file commands.log === Start of file http_server.log 09:40:44.838274 ====> Client connect 09:40:44.838733 accept_connection 3 returned 4 09:40:44.838896 accept_connection 3 returned 0 09:40:44.839610 Read 93 bytes 09:40:44.839792 Process 93 bytes request 09:40:44.839896 Got request: GET /verifiedserver HTTP/1.1 09:40:44.839990 Are-we-friendly question received 09:40:44.840224 Wrote request (93 bytes) input to log/56/server.input 09:40:44.840562 Identifying ourselves as friendsCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind402 ../src/curl -q --output log/53/curl402.out --include --trace-ascii log/53/trace402 --trace-config all --trace-time --insecure --ftp-ssl-reqd ftp://127.0.0.1:42281/402 > log/53/stdout402 2> log/53/stderr402 09:40:44.841247 Response sent (56 bytes) and written to log/56/server.response 09:40:44.841393 special request received, no persistency 09:40:44.841588 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 395 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind395 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind395 test 0394...[HTTP with rubbish in Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind394 ../src/curl -q --output log/14/curl394.out --include --trace-ascii log/14/trace394 --trace-config all --trace-time http://127.0.0.1:43309/394 > log/14/stdout394 2> log/14/stderr394 394: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 394 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind394 ../src/curl -q --output log/14/curl394.out --include --trace-ascii log/14/trace394 --trace-config all --trace-time http://127.0.0.1:43309/394 > log/14/stdout394 2> log/14/stderr394 === End of file commands.log === Start of file http_server.log 09:40:44.883307 ====> Client connect 09:40:44.883957 accept_connection 3 returned 4 09:40:44.884233 accept_connection 3 returned 0 09:40:44.884544 Read 93 bytes 09:40:44.884731 Process 93 bytes request 09:40:44.884835 Got request: GET /verifiedserver HTTP/1.1 09:40:44.884978 Are-we-friendly question received 09:40:44.885584 Wrote request (93 bytes) input to log/14/server.input 09:40:44.885807 Identifying ourselves as friends 09:40:44.893988 Response sent (56 bytes) and written to log/14/server.response 09:40:44.894134 special request received, no persistency 09:40:44.894220 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 394 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind394 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind394 test 0402...[FTP SSL required on non-SSL server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind402 ../src/curl -q --output log/53/curl402.out --include --trace-ascii log/53/trace402 --trace-config all --trace-time --insecure --ftp-ssl-reqd ftp://127.0.0.1:42281/402 > log/53/stdout402 2> log/53/stderr402 402: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 402 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind402 ../src/curl -q --output log/53/curl402.out --include --trace-ascii log/53/trace402 --trace-config all --trace-time --insecure --ftp-ssl-reqd ftp://127.0.0.1:42281/402 > log/53/stdout402 2> log/53/stderr402 === End of file commands.log === Start of file ftp_server.log 09:40:44.774493 ====> Client connect 09:40:44.779215 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:44.780319 < "USER anonymous" 09:40:44.781072 > "331 We are happy you popped in![CR][LF]" 09:40:44.795420 < "PASS ftp@example.com" 09:40:44.796434 > "230 Welcome you silly person[CR][LF]" 09:40:44.798368 < "PWD" 09:40:44.799734 > "257 "/" is current directory[CR][LF]" 09:40:44.801534 < "EPSV" 09:40:44.801915 ====> Passive DATA channel requested by client 09:40:44.802175 DATA sockfilt for passive data channel starting... 09:40:44.830254 DATA sockfilt for passive data channel started (pid 94846) 09:40:44.833157 DATA sockfilt for passive data channel listens on port 42717 09:40:44.836876 > "229 Entering Passive Mode (|||42717|)[LF]" 09:40:44CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind405 ../src/curl -q --output log/44/curl405.out --include --trace-ascii log/44/trace405 --trace-config all --trace-time -m 5 --insecure ftps://127.0.0.1:41125/path/to/file/405 > log/44/stdout405 2> log/44/stderr405 .837954 Client has been notified that DATA conn will be accepted on port 42717 09:40:44.840860 Client connects to port 42717 09:40:44.841184 ====> Client established passive DATA connection on port 42717 09:40:44.842062 < "TYPE I" 09:40:44.843109 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:44.846158 < "SIZE verifiedserver" 09:40:44.848109 > "213 17[CR][LF]" 09:40:44.849839 < "RETR verifiedserver" 09:40:44.851009 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:44.851984 =====> Closing passive DATA connection... 09:40:44.852233 Server disconnects passive DATA connection 09:40:44.854584 Server disconnected passive DATA connection 09:40:44.854968 DATA sockfilt for passive data channel quits (pid 94846) 09:40:44.857112 DATA sockfilt for passive data channel quit (pid 94846) 09:40:44.857359 =====> Closed passive DATA connection 09:40:44.857696 > "226 File transfer complete[CR][LF]" 09:40:44.895102 < "QUIT" 09:40:44.895516 > "221 bye bye baby[CR][LF]" 09:40:44.898970 MAIN sockfilt said DISC 09:40:44.899306 ====> Client disconnected 09:40:44.899917 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:45.027591 ====> Client connect 09:40:45.029858 Received DATA (on stdin) 09:40:45.030031 > 160 bytes data, server => client 09:40:45.030677 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:45.030879 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:45.030989 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:45.032066 < 16 bytes data, client => server 09:40:45.032210 'USER anonymous\r\n' 09:40:45.041160 Received DATA (on stdin) 09:40:45.041805 > 33 bytes data, server => client 09:40:45.042026 '331 We are happy you popped in!\r\n' 09:40:45.047776 < 22 bytes data, client => server 09:40:45.048072 'PASS ftp@example.com\r\n' 09:40:45.049677 Received DATA (on stdin) 09:40:45.049926 > 30 bytes data, server => client 09:40:45.050630 '230 Welcome you silly person\r\n' 09:40:45.051274 < 5 bytes data, client => server 09:40:45.051412 'PWD\r\n' 09:40:45.052427 Received DATA (on stdin) 09:40:45.052712 > 30 bytes data, server => client 09:40:45.052900 '257 "/" is current directory\r\n' 09:40:45.054365 < 6 bytes data, client => server 09:40:45.054606 'EPSV\r\n' 09:40:45.088749 Received DATA (on stdin) 09:40:45.089061 > 38 bytes data, server => client 09:40:45.089365 '229 Entering Passive Mode (|||42717|)\n' 09:40:45.094089 < 8 bytes data, client => server 09:40:45.094212 'TYPE I\r\n' 09:40:45.096218 Received DATA (on stdin) 09:40:45.096527 > 33 bytes data, server => client 09:40:45.097337 '200 I modify TYPE as you wanted\r\n' 09:40:45.098721 < 21 bytes data, client => server 09:40:45.098966 'SIZE verifiedserver\r\n' 09:40:45.100579 Received DATA (on stdin) 09:40:45.100827 > 8 bytes data, server => client 09:40:45.100913 '213 17\r\n' 09:40:45.102770 < 21 bytes data, client => server 09:40:45.102925 'RETR verifiedserver\r\n' 09:40:45.103957 Received DATA (on stdin) 09:40:45.104093 > 29 bytes data, server => client 09:40:45.104256 '150 Binary junk (17 bytes).\r\n' 09:40:45.111887 Received DATA (on stdin) 09:40:45.112074 > 28 bytes data, server => client 09:40:45.112165 '226 File transfer complete\r\n' 09:40:45.147824 < 6 bytes data, client => server 09:40:45.147994 'QUIT\r\n' 09:40:45.149611 Received DATA (on stdin) 09:40:45.149747 > 18 bytes data, server => client 09:40:45.149823 '221 bye bye baby\r\n' 09:40:45.150327 ====> Client disconnect 09:40:45.153916 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:44.079218 Running IPv4 version 09:40:44.080173 Listening on port 42717 09:40:44.083104 Wrote pid 94846 to log/53/server/ftp_sockdata.pid 09:40:44.083414 Received PING (on stdin) 09:40:44.084937 Received PORT (on stdin) 09:40:44.093815 ====> Client connect 09:40:44.106562 Received DATA (on stdin) 09:40:44.106769 > 17 bytes data, server => client 09:40:44.106895 'WE ROOLZ: 77508\r\n' 09:40:44.107204 Received DISC (on stdin) 09:40:44.107358 ====> Client forcibly disconnected 09:40:44.109030 Received QUIT (on stdin) 09:40:44.109168 quits 09:40:44.109657 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 402 === End of file server.cmd === Start of file valgrind402 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind402 test 0405...[FTPS operation to FTP port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind405 ../src/curl -q --output log/44/curl405.out --include --trace-ascii log/44/trace405 --trace-config all --trace-time -m 5 --insecure ftps://127.0.0.1:41125/path/to/file/405 > log/44/stdout405 2> log/44/stderr405 curl returned 1, when expecting 35,28 405: exit FAILED == Contents of files in the log/44/ dir after test 405 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind405 ../src/curl -q --output log/44/curl405.out --include --trace-ascii log/44/trace405 --trace-config all --trace-time -m 5 --insecure ftps://127.0.0.1:41125/path/to/file/405 > log/44/stdout405 2> log/44/stderr405 === End of file commands.log === Start of file ftp_server.log 09:40:44.824887 ====> Client connect 09:40:44.826265 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:44.835688 < "USER anonymous" 09:40:44.840018 > "331 We are happy you popped in![CR][LF]" 09:40:44.842027 < "PASS ftp@example.com" 09:40:44.842695 > "230 Welcome you silly person[CR][LF]" 09:40:44.849209 < "PWD" 09:40:44.851224 > "257 "/" is current directory[CR][LF]" 09:40:44.855301 < "EPSV" 09:40:44.855550 ====> Passive DATA channel requested by client 09:40:44.855709 DATA sockfilt for passive data channel starting... 09:40:44.885041 DATA sockfilt for passive data channel started (pid 94909) 09:40:44.886233 DATA sockfilt for passive data channel listens on port 44821 09:40:44.886707 > "229 Entering Passive Mode (|||44821|)[LF]" 09:40:44.887071 Client has been notified that DATA conn will be accepted on port 44821 09:40:44.892811 Client connects to port 44821 09:40:44.893217 ====> Client established passive DATA connection on port 44821 09:40:44.894654 < "TYPE I" 09:40:44.898522 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:44.900408 < "SIZE verifiedserver" 09:40:44.900867 > "213 17[CR][LF]" 09:40:44.908636 < "RETR verifiedserver" 09:40:44.910564 > "150 BinaryCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind397 ../src/curl -q --output log/64/curl397.out --include --trace-ascii log/64/trace397 --trace-config all --trace-time http://127.0.0.1:33073/397 --compressed > log/64/stdout397 2> log/64/stderr397 junk (17 bytes).[CR][LF]" 09:40:44.913452 =====> Closing passive DATA connection... 09:40:44.913846 Server disconnects passive DATA connection 09:40:44.914463 Fancy that; client wants to DISC, too 09:40:44.915279 Server disconnected passive DATA connection 09:40:44.915549 DATA sockfilt for passive data channel quits (pid 94909) 09:40:44.917348 DATA sockfilt for passive data channel quit (pid 94909) 09:40:44.917603 =====> Closed passive DATA connection 09:40:44.918109 > "226 File transfer complete[CR][LF]" 09:40:44.954455 < "QUIT" 09:40:44.955619 > "221 bye bye baby[CR][LF]" 09:40:44.969917 MAIN sockfilt said DISC 09:40:44.971316 ====> Client disconnected 09:40:44.973268 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:45.077909 ====> Client connect 09:40:45.080715 Received DATA (on stdin) 09:40:45.081064 > 160 bytes data, server => client 09:40:45.081256 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:45.081614 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:45.081804 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:45.087192 < 16 bytes data, client => server 09:40:45.087701 'USER anonymous\r\n' 09:40:45.094183 Received DATA (on stdin) 09:40:45.094324 > 33 bytes data, server => client 09:40:45.094422 '331 We are happy you popped in!\r\n' 09:40:45.096539 < 22 bytes data, client => server 09:40:45.096687 'PASS ftp@example.com\r\n' 09:40:45.096844 Received DATA (on stdin) 09:40:45.097006 > 30 bytes data, server => client 09:40:45.097142 '230 Welcome you silly person\r\n' 09:40:45.100828 < 5 bytes data, client => server 09:40:45.100979 'PWD\r\n' 09:40:45.104557 Received DATA (on stdin) 09:40:45.104710 > 30 bytes data, server => client 09:40:45.105518 '257 "/" is current directory\r\n' 09:40:45.106248 < 6 bytes data, client => server 09:40:45.106559 'EPSV\r\n' 09:40:45.141182 Received DATA (on stdin) 09:40:45.141336 > 38 bytes data, server => client 09:40:45.141512 '229 Entering Passive Mode (|||44821|)\n' 09:40:45.145585 < 8 bytes data, client => server 09:40:45.145724 'TYPE I\r\n' 09:40:45.149553 Received DATA (on stdin) 09:40:45.149700 > 33 bytes data, server => client 09:40:45.152614 '200 I modify TYPE as you wanted\r\n' 09:40:45.153293 < 21 bytes data, client => server 09:40:45.153504 'SIZE verifiedserver\r\n' 09:40:45.155126 Received DATA (on stdin) 09:40:45.155278 > 8 bytes data, server => client 09:40:45.155366 '213 17\r\n' 09:40:45.161518 < 21 bytes data, client => server 09:40:45.161690 'RETR verifiedserver\r\n' 09:40:45.162855 Received DATA (on stdin) 09:40:45.163034 > 29 bytes data, server => client 09:40:45.163575 '150 Binary junk (17 bytes).\r\n' 09:40:45.172632 Received DATA (on stdin) 09:40:45.172949 > 28 bytes data, server => client 09:40:45.173223 '226 File transfer complete\r\n' 09:40:45.206233 < 6 bytes data, client => server 09:40:45.207011 'QUIT\r\n' 09:40:45.208877 Received DATA (on stdin) 09:40:45.209055 > 18 bytes data, server => client 09:40:45.209546 '221 bye bye baby\r\n' 09:40:45.220731 ====> Client disconnect 09:40:45.223983 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:44.133835 Running IPv4 version 09:40:44.134347 Listening on port 44821 09:40:44.134820 Wrote pid 94909 to log/44/server/ftp_sockdata.pid 09:40:44.134975 Received PING (on stdin) 09:40:44.139262 Received PORT (on stdin) 09:40:44.145929 ====> Client connect 09:40:44.164818 Received DATA (on stdin) 09:40:44.164978 > 17 bytes data, server => client 09:40:44.165275 'WE ROOLZ: 77468\r\n' 09:40:44.166245 ====> Client disconnect 09:40:44.167822 Received DISC (on stdin) 09:40:44.167976 Crikey! Client also wants to disconnect 09:40:44.168429 Received ACKD (on stdin) 09:40:44.169501 Received QUIT (on stdin) 09:40:44.169633 quits 09:40:44.169999 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 405 === End of file server.cmd === Start of file valgrind405 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind405 test 0397...[HTTP GET zstd compressed content of size more than CURL_MAX_WRITE_SIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind397 ../src/curl -q --output log/64/curl397.out --include --trace-ascii log/64/trace397 --trace-config all --trace-time http://127.0.0.1:33073/397 --compressed > log/64/stdout397 2> log/64/stderr397 397: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 397 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind397 ../src/curl -q --output log/64/curl397.out --include --trace-ascii log/64/trace397 --trace-config all --trace-time http://127.0.0.1:33073/397 --compressed > log/64/stdout397 2> log/64/stderr397 === End of file commands.log === Start of file http_server.log 09:40:44.914900 ====> Client connect 09:40:44.915258 accept_connection 3 returned 4 09:40:44.915594 accept_connection 3 returned 0 09:40:44.915789 Read 93 bytes 09:40:44.915897 Process 93 bytes request 09:40:44.916007 Got request: GET /verifiedserver HTTP/1.1 09:40:44.916108 Are-we-friendly question received 09:40:44.916377 Wrote request (93 bytes) input to log/64/server.input 09:40:44.916695 Identifying ourselves as friends 09:40:44.917693 Response sent (56 bytes) and written to log/64/server.response 09:40:44.917918 special request received, no persistency 09:40:44.918011 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 397 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind397 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind411 ../src/curl -q --output log/51/curl411.out --include --trace-ascii log/51/trace411 --trace-config all --trace-time -K log/51/missing http://localhost > log/51/stdout411 2> log/51/stderr411 grind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind397 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind390 ../src/curl -q --include --trace-ascii log/43/trace390 --trace-config all --trace-time http://127.0.0.1:41267/390 file://localhost/build/curl/src/build-curl/tests/log/43/test390.txt ftp://127.0.0.1:33177/3900002 --parallel -o log/43/390.a -o log/43/390.b -o log/43/390.c > log/43/stdout390 2> log/43/stderr390 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind396 ../src/curl -q --output log/52/curl396.out --include --trace-ascii log/52/trace396 --trace-config all --trace-time http://127.0.0.1:40089/396 --compressed > log/52/stdout396 2> log/52/stderr396 * starts no server test 0411...[-K with missing file causes error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind411 ../src/curl -q --output log/51/curl411.out --include --trace-ascii log/51/trace411 --trace-config all --trace-time -K log/51/missing http://localhost > log/51/stdout411 2> log/51/stderr411 411: stderr FAILED: --- log/51/check-expected 2025-07-18 09:40:46.177384317 +0000 +++ log/51/check-generated 2025-07-18 09:40:46.176605417 +0000 @@ -1,3 +0,0 @@ -curl: cannot read config from 'log/51/missing'[CR][LF] -curl: option -K: error encountered when reading a file[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/51/ dir after test 411 === Start of file check-expected curl: cannot read config from 'log/51/missing'[CR][LF] curl: option -K: error encountered when reading a file[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind411 ../src/curl -q --output log/51/curl411.out --include --trace-ascii log/51/trace411 --trace-config all --trace-time -K log/51/missing http://localhost > log/51/stdout411 2> log/51/stderr411 === End of file commands.log === Start of file server.cmd Testnum 411 === End of file server.cmd === Start of file valgrind411 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind411 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/43/server/ftp_server.pid" --logfile "log/43/ftp_server.log" --logdir "log/43" --portfile "log/43/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33177 (log/43/server/ftp_server.port) RUN: FTP server is PID 94256 port 33177 * pid ftp => 94256 94256 test 0390...[curl HTTP, FILE and FTP in parallel] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind390 ../src/curl -q --include --trace-ascii log/43/trace390 --trace-config all --trace-time http://127.0.0.1:41267/390 file://localhost/build/curl/src/build-curl/tests/log/43/test390.txt ftp://127.0.0.1:33177/3900002 --parallel -o log/43/390.a -o log/43/390.b -o log/43/390.c > log/43/stdout390 2> log/43/stderr390 curl returned 1, when expecting 0 390: exit FAILED == Contents of files in the log/43/ dir after test 390 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind390 ../src/curl -q --include --trace-ascii log/43/trace390 --trace-config all --trace-time http://127.0.0.1:41267/390 file://localhost/build/curl/src/build-curl/tests/log/43/test390.txt ftp://127.0.0.1:33177/3900002 --parallel -o log/43/390.a -o log/43/390.b -o log/43/390.c > log/43/stdout390 2> log/43/stderr390 === End of file commands.log === Start of file ftp_server.log 09:40:45.264982 FTP server listens on port IPv4/33177 09:40:45.268576 logged pid 94256 in log/43/server/ftp_server.pid 09:40:45.268977 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:45.515026 Running IPv4 version 09:40:45.515923 Listening on port 33177 09:40:45.516428 Wrote pid 95222 to log/43/server/ftp_sockctrl.pid 09:40:45.517084 Wrote port 33177 to log/43/server/ftp_server.port 09:40:45.517371 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file http_server.log 09:40:44.652928 ====> Client connect 09:40:44.653317 accept_connection 3 returned 4 09:40:44.653672 accept_connection 3 returned 0 09:40:44.654698 Read 93 bytes 09:40:44.654850 Process 93 bytes request 09:40:44.654931 Got request: GET /verifiedserver HTTP/1.1 09:40:44.655004 Are-we-friendly question received 09:40:44.655228 Wrote request (93 bytes) input to log/43/server.input 09:40:44.655420 Identifying ourselves as friends 09:40:44.658715 Response sent (56 bytes) and written to log/43/server.response 09:40:44.658852 special request received, no persistency 09:40:44.658930 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 390 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file test390.txt hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind415 ../src/curl -q --output log/60/curl415.out --include --trace-ascii log/60/trace415 --trace-config all --trace-time http://127.0.0.1:38843/415 > log/60/stdout415 2> log/60/stderr415 ofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile === End of file test390.txt === Start of file valgrind390 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind390 test 0396...[HTTP GET zstd compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind396 ../src/curl -q --output log/52/curl396.out --include --trace-ascii log/52/trace396 --trace-config all --trace-time http://127.0.0.1:40089/396 --compressed > log/52/stdout396 2> log/52/stderr396 396: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 396 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind396 ../src/curl -q --output log/52/curl396.out --include --trace-ascii log/52/trace396 --trace-config all --trace-time http://127.0.0.1:40089/396 --compressed > log/52/stdout396 2> log/52/stderr396 === End of file commands.log === Start of file http_server.log 09:40:45.024848 ====> Client connect 09:40:45.025428 accept_connection 3 returned 4 09:40:45.025686 accept_connection 3 returned 0 09:40:45.026259 Read 93 bytes 09:40:45.026399 Process 93 bytes request 09:40:45.026637 Got request: GET /verifiedserver HTTP/1.1 09:40:45.026898 Are-we-friendly question received 09:40:45.027253 Wrote request (93 bytes) input to log/52/server.input 09:40:45.027694 Identifying ourselves as friends 09:40:45.028560 Response sent (56 bytes) and written to log/52/server.response 09:40:45.028697 special request received, no persistency 09:40:45.028790 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 396 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind396 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind396 test 0415...[HTTP response with control code then negative Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind415 ../src/curl -q --output log/60/curl415.out --include --trace-ascii log/60/trace415 --trace-config all --trace-time http://127.0.0.1:38843/415 > log/60/stdout415 2> log/60/stderr415 415: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 415 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind415 ../src/curl -q --output log/60/curl415.out --include --trace-ascii log/60/trace415 --trace-config all --trace-time http://127.0.0.1:38843/415 > log/60/stdout415 2> log/60/stderr415 === End of file commands.log === Start of file http_server.log 09:40:45.945852 ====> Client connect 09:40:45.946175 accept_connection 3 returned 4 09:40:45.946343 accept_connection 3 returned 0 09:40:45.946599 Read 93 bytes 09:40:45.946803 Process 93 bytes request 09:40:45.947001 Got request: GET /verifiedserver HTTP/1.1 09:40:45.947068 Are-we-friendly question received 09:40:45.947306 Wrote request (93 bytes) input to log/60/server.input 09:40:45.947602 Identifying ourselves as friends 09:40:45.948645 Response sent (56 bytes) and written to log/60/server.response 09:40:45.948758 special request received, no persistency 09:40:45.948823 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 415 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind415 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind422 ../src/curl -q --output log/6/curl422.out --include --trace-ascii log/6/trace422 --trace-config all --trace-time -O -I --next http://127.0.0.1:37181/422 > log/6/stdout422 2> log/6/stderr422 are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind415 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind418 ../src/curl -q --output log/14/curl418.out --include --trace-ascii log/14/trace418 --trace-config all --trace-time http://127.0.0.1:43309/418 -sS --tr-encoding > log/14/stdout418 2> log/14/stderr418 * starts no server test 0422...[use --next with missing URL before it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind422 ../src/curl -q --output log/6/curl422.out --include --trace-ascii log/6/trace422 --trace-config all --trace-time -O -I --next http://127.0.0.1:37181/422 > log/6/stdout422 2> log/6/stderr422 422: stderr FAILED: --- log/6/check-expected 2025-07-18 09:40:47.183128947 +0000 +++ log/6/check-generated 2025-07-18 09:40:47.182559508 +0000 @@ -1,3 +0,0 @@ -curl: missing URL before --next[CR][LF] -curl: option --next: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/6/ dir after test 422 === Start of file check-expected curl: missing URL before --next[CR][LF] curl: option --next: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind422 ../src/curl -q --output log/6/curl422.out --include --trace-ascii log/6/trace422 --trace-config all --trace-time -O -I --next http://127.0.0.1:37181/422 > log/6/stdout422 2> log/6/stderr422 === End of file commands.log === Start of file server.cmd Testnum 422 === End of file server.cmd === Start of file valgrind422 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind422 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind419 ../src/curl -q --output log/39/curl419.out --include --trace-ascii log/39/trace419 --trace-config all --trace-time http://127.0.0.1:42899/419 -D loggg/save-here/fails > log/39/stdout419 2> log/39/stderr419 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind416 ../src/curl -q --output log/63/curl416.out --include --trace-ascii log/63/trace416 --trace-config all --trace-time --ignore-content-length ftp://127.0.0.1:33267/416 > log/63/stdout416 2> log/63/stderr416 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind427 ../src/curl -q --output log/54/curl427.out --include --trace-ascii log/54/trace427 --trace-config all --trace-time http://127.0.0.1:44921/427 -c log/54/cookies427 -L > log/54/stdout427 2> log/54/stderr427 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind436 ../src/curl --output log/4/curl436.out --include --trace-ascii log/4/trace436 --trace-config all --trace-time 127.0.0.1:43013/436 > log/4/stdout436 2> log/4/stderr436 test 0418...[Response with multiple Transfer-Encoding headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind418 ../src/curl -q --output log/14/curl418.out --include --trace-ascii log/14/trace418 --trace-config all --trace-time http://127.0.0.1:43309/418 -sS --tr-encoding > log/14/stdout418 2> log/14/stderr418 418: stderr FAILED: --- log/14/check-expected 2025-07-18 09:40:47.393129761 +0000 +++ log/14/check-generated 2025-07-18 09:40:47.392258502 +0000 @@ -1 +0,0 @@ -curl: (61) Reject response due to more than 5 content encodings[CR][LF] == Contents of files in the log/14/ dir after test 418 === Start of file check-expected curl: (61) Reject response due to more than 5 content encodings[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind418 ../src/curl -q --output log/14/curl418.out --include --trace-ascii log/14/trace418 --trace-config all --trace-time http://127.0.0.1:43309/418 -sS --tr-encoding > log/14/stdout418 2> log/14/stderr418 === End of file commands.log === Start of file http_server.log 09:40:46.411866 ====> Client connect 09:40:46.412181 accept_connection 3 returned 4 09:40:46.412351 accept_connection 3 returned 0 09:40:46.412559 Read 93 bytes 09:40:46.412672 Process 93 bytes request 09:40:46.412757 Got request: GET /verifiedserver HTTP/1.1 09:40:46.412842 Are-we-friendly question received 09:40:46.413070 Wrote request (93 bytes) input to log/14/server.input 09:40:46.413263 Identifying ourselves as friends 09:40:46.414089 Response sent (56 bytes) and written to log/14/server.response 09:40:46.414202 special request received, no persistency 09:40:46.414275 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 418 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind418 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind418 test 0419...[--dump-header to file that cannot be created] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind419 ../src/curl -q --output log/39/curl419.out --include --trace-ascii log/39/trace419 --trace-config all --trace-time http://127.0.0.1:42899/419 -D loggg/save-here/fails > log/39/stdout419 2> log/39/stderr419 curl returned 1, when expecting 23 419: exit FAILED == Contents of files in the log/39/ dir after test 419 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind419 ../src/curl -q --output log/39/curl419.out --include --trace-ascii log/39/trace419 --trace-config all --trace-time http://127.0.0.1:42899/419 -D loggg/save-here/fails > log/39/stdout419 2> log/39/stderr419 === End of file commands.log === Start of file http_server.log 09:40:46.363849 ====> Client connect 09:40:46.364144 accept_connection 3 returned 4 09:40:46.364306 accept_connection 3 returned 0 09:40:46.365181 Read 93 bytes 09:40:46.365318 Process 93 bytes request 09:40:46.365403 Got request: GET /verifiedserver HTTP/1.1 09:40:46.365573 Are-we-friendly question received 09:40:46.365831 Wrote request (93 bytes) input to log/39/server.input 09:40:46.366000 Identifying ourselves as friends 09:40:46.367718 Response sent (56 bytes) and written to log/39/server.response 09:40:46.367848 special request received, no persistency 09:40:46.367911 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 419 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind419 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind419 test 0427...[Keep Cookie: header within 8190 bytes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind427 ../src/curl -q --output log/54/curl427.out --include --trace-ascii log/54/trace427 --trace-config all --trace-time http://127.0.0.1:44921/427 -c log/54/cookies427 -L > log/54/stdout427 2> log/54/stderr427 427: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 427 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind427 ../src/curl -q --output log/54/curl427.out --include --trace-ascii log/54/trace427 --trace-config all --trace-time http://127.0.0.1:44921/427 -c log/54/cookies427 -L > log/54/stdout427 2> log/54/stderr427 === End of file commands.log === Start of file http_server.log 09:40:46.507876 ====> Client connect 09:40:46.508185 accept_connection 3 returned 4 09:40:46.508369 accept_connection 3 returned 0 09:40:46.508748 Read 93 bytes 09:40:46.508874 Process 93 bytes request 09:40:46.508958 Got request: GET /verifiedserver HTTP/1.1 09:40:46.509030 Are-we-friendly question received 09:40:46.509261 Wrote request (93 bytes) input to log/54/server.input 09:40:46.509529 Identifying ourselves as friends 09:40:46.512725 Response sent (56 bytes) and written to log/54/server.response 09:40:46.512853 special request received, no persistency 09:40:46.512928 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 427 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind427 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind427 test 0416...[FTP growing file support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind416 ../src/curl -q --output log/63/curl416.out --include --trace-ascii log/63/trace416 --trace-config all --trace-time --ignore-content-length ftp://127.0.0.1:33267/416 > log/63/stdout416 2> log/63/stderr416 416: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 416 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind416 ../src/curl -q --output log/63/curl416.out --include --trace-ascii log/63/trace416 --trace-config all --trace-time --ignore-content-length ftp://127.0.0.1:33267/416 > log/63/stdout416 2> log/63/stderr416 === End of file commands.log === Start of file ftp_server.log 09:40:46.057632 ====> Client connect 09:40:46.059413 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:46.062532 < "USER anonymous" 09:40:46.063400 > "331 We are happy you popped in![CR][LF]" 09:40:46.065319 < "PASS ftp@example.com" 09:40:46.066805 > "230 Welcome you silly person[CR][LF]" 09:40:46.068377 < "PWD" 09:40:46.069518 > "257 "/" is current directory[CR][LF]" 09:40:46.071644 < "EPSV" 09:40:46.072073 ====> Passive DATA channel requested by client 09:40:46.072317 DATA sockfilt for passive data channel starting... 09:40:46.084938 DATA sockfilt for passive data channel started (pid 95771) 09:40:46.086380 DATA sockfilt for passive data channel listens on port 39603 09:40:46.087126 > "229 Entering Passive Mode (|||39603|)[LF]" 09:40:46.087402 Client has been notified that DATA conn will be accepted on port 39603 09:40:46.090158 Client connects to port 39603 09:40:46.090702 ====> Client established passive DATA connection on port 39603 09:40:46.091681 < "TYPE I" 09:40:46.092235 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:46.094904 < "SIZE verifiedserver" 09:40:46.096240 > "213 17[CR][LF]" 09:40:46.097959 < "RETR verifiedserver" 09:40:46.099147 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:46.101221 =====> Closing passive DATA connection... 09:40:46.101449 Server disconnects passive DATA connection 09:40:46.102919 Server disconnected passive DATA connection 09:40:46.103233 DATA sockfilt for passive data channel quits (pid 95771) 09:40:46.105260 DATA sockfilt for passive data channel quit (pid 95771) 09:40:46.105511 =====> Closed passive DATA connection 09:40:46.105895 > "226 File transfer complete[CR][LF]" 09:40:46.142970 < "QUIT" 09:40:46.144254 > "221 bye bye baby[CR][LF]" 09:40:46.148228 MAIN sockfilt said DISC 09:40:46.149189 ====> Client disconnected 09:40:46.149726 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:46.310376 ====> Client connect 09:40:46.313563 Received DATA (on stdin) 09:40:46.313730 > 160 bytes data, server => client 09:40:46.313838 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:46.313941 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:46.314053 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:46.315050 < 16 bytes data, client => server 09:40:46.315210 'USER anonymous\r\n' 09:40:46.316694 Received DATA (on stdin) 09:40:46.316866 > 33 bytes data, server => client 09:40:46.317412 '331 We are happy you popped in!\r\n' 09:40:46.318139 < 22 bytes data, client => server 09:40:46.318299 'PASS ftp@example.com\r\n' 09:40:46.319528 Received DATA (on stdin) 09:40:46.319743 > 30 bytes data, server => client 09:40:46.320018 '230 Welcome you silly person\r\n' 09:40:46.321432 < 5 bytes data, client => server 09:40:46.321648 'PWD\r\n' 09:40:46.322429 Received DATA (on stdin) 09:40:46.322660 > 30 bytes data, server => client 09:40:46.322839 '257 "/" is current directory\r\n' 09:40:46.324411 < 6 bytes data, client => server 09:40:46.324681 'EPSV\r\n' 09:40:46.341400 Received DATA (on stdin) 09:40:46.341637 > 38 bytes data, server => client 09:40:46.341735 '229 Entering Passive Mode (|||39603|)\n' 09:40:46.343433 < 8 bytes data, client => serverCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind421 ../src/curl -q --output log/32/curl421.out --include --trace-ascii log/32/trace421 --trace-config all --trace-time http://127.0.0.1:45607/421 -w '%{stderr}%{header_json}\n' -s > log/32/stdout421 2> log/32/stderr421 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind428 ../src/curl -q --output log/50/curl428.out --include --trace-ascii log/50/trace428 --trace-config all --trace-time http://127.0.0.1:45651/428 -K log/50/cmd > log/50/stdout428 2> log/50/stderr428 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind420 ../src/curl -q --output log/53/curl420.out --include --trace-ascii log/53/trace420 --trace-config all --trace-time http://127.0.0.1:34639/func_test/del_cookie -b log/53/cookie420 -c log/53/save420 > log/53/stdout420 2> log/53/stderr420 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind460 ../src/curl -q --output log/45/curl460.out --include --trace-ascii log/45/trace460 --trace-config all --trace-time --expand-url > log/45/stdout460 2> log/45/stderr460 09:40:46.343645 'TYPE I\r\n' 09:40:46.346293 Received DATA (on stdin) 09:40:46.346519 > 33 bytes data, server => client 09:40:46.346641 '200 I modify TYPE as you wanted\r\n' 09:40:46.347381 < 21 bytes data, client => server 09:40:46.347713 'SIZE verifiedserver\r\n' 09:40:46.349083 Received DATA (on stdin) 09:40:46.349235 > 8 bytes data, server => client 09:40:46.349428 '213 17\r\n' 09:40:46.350943 < 21 bytes data, client => server 09:40:46.351109 'RETR verifiedserver\r\n' 09:40:46.352066 Received DATA (on stdin) 09:40:46.352213 > 29 bytes data, server => client 09:40:46.352397 '150 Binary junk (17 bytes).\r\n' 09:40:46.359927 Received DATA (on stdin) 09:40:46.360063 > 28 bytes data, server => client 09:40:46.360151 '226 File transfer complete\r\n' 09:40:46.395658 < 6 bytes data, client => server 09:40:46.395846 'QUIT\r\n' 09:40:46.397084 Received DATA (on stdin) 09:40:46.397237 > 18 bytes data, server => client 09:40:46.397514 '221 bye bye baby\r\n' 09:40:46.401594 ====> Client disconnect 09:40:46.402275 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:46.336857 Running IPv4 version 09:40:46.337629 Listening on port 39603 09:40:46.338073 Wrote pid 95771 to log/63/server/ftp_sockdata.pid 09:40:46.338243 Received PING (on stdin) 09:40:46.339275 Received PORT (on stdin) 09:40:46.343159 ====> Client connect 09:40:46.353730 Received DATA (on stdin) 09:40:46.353885 > 17 bytes data, server => client 09:40:46.354067 'WE ROOLZ: 77431\r\n' 09:40:46.355417 Received DISC (on stdin) 09:40:46.355632 ====> Client forcibly disconnected 09:40:46.357325 Received QUIT (on stdin) 09:40:46.357532 quits 09:40:46.357928 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd RETRSIZE 7 Testnum 416 === End of file server.cmd === Start of file valgrind416 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind416 setenv CURL_HOME = /build/curl/src/build-curl/tests/log/4 setenv XDG_CONFIG_HOME = test 0436...[Find .curlrc in .config/curlrc via CURL_HOME] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind436 ../src/curl --output log/4/curl436.out --include --trace-ascii log/4/trace436 --trace-config all --trace-time 127.0.0.1:43013/436 > log/4/stdout436 2> log/4/stderr436 436: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 436 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind436 ../src/curl --output log/4/curl436.out --include --trace-ascii log/4/trace436 --trace-config all --trace-time 127.0.0.1:43013/436 > log/4/stdout436 2> log/4/stderr436 === End of file commands.log === Start of file http_server.log 09:40:46.615973 ====> Client connect 09:40:46.616288 accept_connection 3 returned 4 09:40:46.616592 accept_connection 3 returned 0 09:40:46.617170 Read 93 bytes 09:40:46.617311 Process 93 bytes request 09:40:46.617392 Got request: GET /verifiedserver HTTP/1.1 09:40:46.617570 Are-we-friendly question received 09:40:46.617842 Wrote request (93 bytes) input to log/4/server.input 09:40:46.618035 Identifying ourselves as friends 09:40:46.618696 Response sent (56 bytes) and written to log/4/server.response 09:40:46.618807 special request received, no persistency 09:40:46.618874 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 436 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind436 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind436 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind423 ../src/curl -q --trace-ascii log/62/trace423 --trace-config all --trace-time "http://uuuu:pppp@127.0.0.1:38899/423?qqqq#ffff" "h55p://hello2000:1/423?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:38899/423?qqqq#ffff" -w '%{url.host}+%{url.path}+%{url.scheme}+%{url.user}+%{url.password}+%{url.port}+%{url.query}+%{url.fragment}\n' > log/62/stdout423 2> log/62/stderr423 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind426 ../src/curl -q --output log/57/curl426.out --include --trace-ascii log/57/trace426 --trace-config all --trace-time http://127.0.0.1:35945/426 -d foobar -C 3 > log/57/stdout426 2> log/57/stderr426 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind425 ../src/curl -q --output log/61/curl425.out --include --trace-ascii log/61/trace425 --trace-config all --trace-time -T log/61/up425 http://127.0.0.1:44381/425/?fullpath > log/61/stdout425 2> log/61/stderr425 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind434 ../src/curl -q --output log/16/curl434.out --include --trace-ascii log/16/trace434 --trace-config all --trace-time -K log/16/config434 > log/16/stdout434 2> log/16/stderr434 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind429 ../src/curl -q --output log/64/curl429.out --include --trace-ascii log/64/trace429 --trace-config all --trace-time http://127.0.0.1:33073/429 -K log/64/cmd > log/64/stdout429 2> log/64/stderr429 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind454 ../src/curl -q --output log/18/curl454.out --include --trace-ascii log/18/trace454 --trace-config all --trace-time http://127.0.0.1:41285/454 --variable what=hello --expand-data "--{{what:trim,url}}" > log/18/stdout454 2> log/18/stderr454 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind457 ../src/curl -q --output log/7/curl457.out --include --trace-ascii log/7/trace457 --trace-config all --trace-time http://127.0.0.1:44647/457 --max-filesize 143 > log/7/stdout457 2> log/7/stderr457 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind462 ../src/curl -q --output log/30/curl462.out --include --trace-ascii log/30/trace462 --trace-config all --trace-time http://127.0.0.1:43913/462 -K log/30/cmd > log/30/stdout462 2> log/30/stderr462 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind424 ../src/curl -q --trace-ascii log/44/trace424 --trace-config all --trace-time "http://uuuu:pppp@127.0.0.1:34655/424?qqqq#ffff" "h55p://hello2000:1/424?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:34655/424?qqqq#ffff" -w '%{urle.host}+%{urle.path}+%{urle.scheme}+%{urle.user}+%{urle.password}+%{urle.port}+%{urle.query}+%{urle.fragment}\n' -x http://127.0.0.1:34655/ -L > log/44/stdout424 2> log/44/stderr424 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind467 ../src/curl -q --output log/10/curl467.out --include --trace-ascii log/10/trace467 --trace-config all --trace-time curl -v http://example.com > log/10/stdout467 2> log/10/stderr467 test 0421...[HTTP GET multiple headers and %{header_json}] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind421 ../src/curl -q --output log/32/curl421.out --include --trace-ascii log/32/trace421 --trace-config all --trace-time http://127.0.0.1:45607/421 -w '%{stderr}%{header_json}\n' -s > log/32/stdout421 2> log/32/stderr421 421: stderr FAILED: --- log/32/check-expected 2025-07-18 09:40:47.728604631 +0000 +++ log/32/check-generated 2025-07-18 09:40:47.726604632 +0000 @@ -1,19 +0,0 @@ -{"server":["nginx"],[CR][LF] -"date":["Tue, 07 Mar 2023 15:14:41 GMT"],[CR][LF] -"content-type":["application/json"],[CR][LF] -"content-length":["6"],[CR][LF] -"vary":["Accept-Encoding","Accept-Encoding","Accept"],[CR][LF] -"access-control-allow-origin":["*"],[CR][LF] -"referrer-policy":["strict-origin-when-cross-origin","strict-origin-when-cross-origin"],[CR][LF] -"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],[CR][LF] -"access-control-max-age":["1728000"],[CR][LF] -"access-control-allow-headers":["Authorization, Content-Type, AuthorizationOauth, X-EARLY-ACCESS"],[CR][LF] -"access-control-expose-headers":[""],[CR][LF] -"etag":["W/\"2678f9ab2ba550d164e7cc014aefd31e\""],[CR][LF] -"cache-control":["max-age=0, private, must-revalidate"],[CR][LF] -"x-request-id":["375b343b3d2ecf9b442c0daf00fc4a9a"],[CR][LF] -"strict-transport-security":["max-age=31536000; includeSubDomains"],[CR][LF] -"x-content-type-options":["nosniff"],[CR][LF] -"x-xss-protection":["1; mode=block"],[CR][LF] -"feature-policy":["accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'"][CR][LF] -}[CR][LF] == Contents of files in the log/32/ dir after test 421 === Start of file check-expected {"server":["nginx"],[CR][LF] "date":["Tue, 07 Mar 2023 15:14:41 GMT"],[CR][LF] "content-type":["application/json"],[CR][LF] "content-length":["6"],[CR][LF] "vary":["Accept-Encoding","Accept-Encoding","Accept"],[CR][LF] "access-control-allow-origin":["*"],[CR][LF] "referrer-policy":["strict-origin-when-cross-origin","strict-origin-when-cross-origin"],[CR][LF] "access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],[CR][LF] "access-control-max-age":["1728000"],[CR][LF] "access-control-allow-headers":["Authorization, Content-Type, AuthorizationOauth, X-EARLY-ACCESS"],[CR][LF] "access-control-expose-headers":[""],[CR][LF] "etag":["W/\"2678f9ab2ba550d164e7cc014aefd31e\""],[CR][LF] "cache-control":["max-age=0, private, must-revalidate"],[CR][LF] "x-request-id":["375b343b3d2ecf9b442c0daf00fc4a9a"],[CR][LF] "strict-transport-security":["max-age=31536000; includeSubDomains"],[CR][LF] "x-content-type-options":["nosniff"],[CR][LF] "x-xss-protection":["1; mode=block"],[CR][LF] "feature-policy":["accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'"][CR][LF] }[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind421 ../src/curl -q --output log/32/curl421.out --include --trace-ascii log/32/trace421 --trace-config all --trace-time http://127.0.0.1:45607/421 -w '%{stderr}%{header_json}\n' -s > log/32/stdout421 2> log/32/stderr421 === End of file commands.log === Start of file http_server.log 09:40:46.417878 ====> Client connect 09:40:46.418225 accept_connection 3 returned 4 09:40:46.418414 accept_connection 3 returned 0 09:40:46.418727 Read 93 bytes 09:40:46.418856 Process 93 bytes request 09:40:46.419026 Got request: GET /verifiedserver HTTP/1.1 09:40:46.419155 Are-we-friendly question received 09:40:46.419869 Wrote request (93 bytes) input to log/32/server.input 09:40:46.420122 Identifying ourselves as friends 09:40:46.423764 Response sent (56 bytes) and written to log/32/server.response 09:40:46.423904 special request received, no persistency 09:40:46.423989 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 421 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind421 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind421 setenv FUNVALUE = contents setenv VALUE2 = curl setenv BLANK = test 0428...[Expand environment variables within config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind428 ../src/curl -q --output log/50/curl428.out --include --trace-ascii log/50/trace428 --trace-config all --trace-time http://127.0.0.1:45651/428 -K log/50/cmd > log/50/stdout428 2> log/50/stderr428 428: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 428 === Start of file cmd --variable %FUNVALUE --variable %VALUE2 --variable %BLANK --variable %curl_NOT_SET=default --expand-data 1{{FUNVALUE}}2{{VALUE2}}3{{curl_NOT_SET}}4{{BLANK}}5\{{verbatim}}6{{not.good}}7{{}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind428 ../src/curl -q --output log/50/curl428.out --include --trace-ascii log/50/trace428 --trace-config all --trace-time http://127.0.0.1:45651/428 -K log/50/cmd > log/50/stdout428 2> log/50/stderr428 === End of file commands.log === Start of file http_server.log 09:40:46.600913 ====> Client connect 09:40:46.601277 accept_connection 3 returned 4 09:40:46.601589 accept_connection 3 returned 0 09:40:46.601778 Read 93 bytes 09:40:46.601890 Process 93 bytes request 09:40:46.601996 Got request: GET /verifiedserver HTTP/1.1 09:40:46.602092 Are-we-friendly question received 09:40:46.602335 Wrote request (93 bytes) input to log/50/seCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind455 ../src/curl -q --output log/17/curl455.out --include --trace-ascii log/17/trace455 --trace-config all --trace-time --variable moby="Call me Ishmael" --variable what=d2hpdGUtd2hhbGU= --expand-url "http://127.0.0.1:44383/{{moby:b64}}/{{what:64dec}}/455" > log/17/stdout455 2> log/17/stderr455 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind435 ../src/curl -q --include --trace-ascii log/9/trace435 --trace-config all --trace-time http://127.0.0.1:46607/435 http://127.0.0.1:46607/435 -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n' > log/9/stdout435 2> log/9/stderr435 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind453 ../src/curl -q --output log/21/curl453.out --include --trace-ascii log/21/trace453 --trace-config all --trace-time http://127.0.0.1:34827/453 --variable what@log/21/junk --expand-data "{{what}}" > log/21/stdout453 2> log/21/stderr453 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind449 ../src/curl -q --output log/48/curl449.out --include --trace-ascii log/48/trace449 --trace-config all --trace-time http://127.0.0.1:46339/449 -K log/48/cmd > log/48/stdout449 2> log/48/stderr449 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind452 ../src/curl -q --output log/23/curl452.out --include --trace-ascii log/23/trace452 --trace-config all --trace-time http://127.0.0.1:42467/452 --variable what=hello --expand-data "--{{what:trim:super}}" > log/23/stdout452 2> log/23/stderr452 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind440 ../src/curl -q --include --trace-ascii log/2/trace440 --trace-config all --trace-time -x http://127.0.0.1:39659 http://this.hsts.example./440 --hsts log/2/input440 -w '%{url_effective}\n' > log/2/stdout440 2> log/2/stderr440 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind470 ../src/curl -q --output log/20/curl470.out --include --trace-ascii log/20/trace470 --trace-config all --trace-time 127.0.0.1:45475 --no-progress-meter -K "log/20/input470" > log/20/stdout470 2> log/20/stderr470 rver.input 09:40:46.602627 Identifying ourselves as friends 09:40:46.604384 Response sent (56 bytes) and written to log/50/server.response 09:40:46.604601 special request received, no persistency 09:40:46.604685 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 428 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind428 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind428 test 0457...[chunked Transfer-Encoding with --max-filesize] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind457 ../src/curl -q --output log/7/curl457.out --include --trace-ascii log/7/trace457 --trace-config all --trace-time http://127.0.0.1:44647/457 --max-filesize 143 > log/7/stdout457 2> log/7/stderr457 457: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 457 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind457 ../src/curl -q --output log/7/curl457.out --include --trace-ascii log/7/trace457 --trace-config all --trace-time http://127.0.0.1:44647/457 --max-filesize 143 > log/7/stdout457 2> log/7/stderr457 === End of file commands.log === Start of file http_server.log 09:40:46.883869 ====> Client connect 09:40:46.884200 accept_connection 3 returned 4 09:40:46.884378 accept_connection 3 returned 0 09:40:46.884878 Read 93 bytes 09:40:46.884999 Process 93 bytes request 09:40:46.885102 Got request: GET /verifiedserver HTTP/1.1 09:40:46.885195 Are-we-friendly question received 09:40:46.885432 Wrote request (93 bytes) input to log/7/server.input 09:40:46.885765 Identifying ourselves as friends 09:40:46.888734 Response sent (56 bytes) and written to log/7/server.response 09:40:46.888856 special request received, no persistency 09:40:46.888923 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 457 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind457 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind457 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind471 ../src/curl -q --include --trace-ascii log/19/trace471 --trace-config all --trace-time "http://127.0.0.1:35697/{471,4710001}" -o "log/19/dumpit#1.dump" > log/19/stdout471 2> log/19/stderr471 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind448 ../src/curl -q --output log/55/curl448.out --include --trace-ascii log/55/trace448 --trace-config all --trace-time http://127.0.0.1:33071/448 -K log/55/cmd > log/55/stdout448 2> log/55/stderr448 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind432 ../src/curl -q --output log/36/curl432.out --include --trace-ascii log/36/trace432 --trace-config all --trace-time -K log/36/config432 > log/36/stdout432 2> log/36/stderr432 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind430 ../src/curl -q --output log/49/curl430.out --include --trace-ascii log/49/trace430 --trace-config all --trace-time -K log/49/config430-a -K log/49/config430-b -K log/49/config430-c > log/49/stdout430 2> log/49/stderr430 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind459 ../src/curl -q --output log/1/curl459.out --include --trace-ascii log/1/trace459 --trace-config all --trace-time http://127.0.0.1:40633/459 --config log/1/config --silent > log/1/stdout459 2> log/1/stderr459 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind451 ../src/curl -q --output log/24/curl451.out --include --trace-ascii log/24/trace451 --trace-config all --trace-time http://127.0.0.1:39259/451 --variable what@log/24/junk --variable second=hello --variable second=again --expand-data "--{{what:trim:json}}22{{none}}--{{second}}{{what:trim:url}}" > log/24/stdout451 2> log/24/stderr451 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind441 ../src/curl -q --include --trace-ascii log/51/trace441 --trace-config all --trace-time -x http://127.0.0.1:34903 http://this.hsts.example/441 --hsts log/51/input441 -w '%{url_effective}\n' > log/51/stdout441 2> log/51/stderr441 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind461 ../src/curl -q --output log/41/curl461.out --include --trace-ascii log/41/trace461 --trace-config all --trace-time http://127.0.0.1:35093/461 -H host: > log/41/stdout461 2> log/41/stderr461 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind484 ../src/curl -q --output log/33/curl484.out --include --trace-ascii log/33/trace484 --trace-config all --trace-time http://example.com/484 --etag-compare log/33/etag484 --etag-save log/33/etag484 --url http://example.net/fooo > log/33/stdout484 2> log/33/stderr484 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind443 ../src/curl -q --output log/59/curl443.out --include --trace-ascii log/59/trace443 --trace-config all --trace-time http://attack.invalid:43695/a/b/443 -b log/59/cookie443 --resolve attack.invalid:43695:127.0.0.1 -L > log/59/stdout443 2> log/59/stderr443 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind431 ../src/curl -q --output log/46/curl431.out --include --trace-ascii log/46/trace431 --trace-config all --trace-time -K log/46/config431-a -K log/46/config431-b --next -d c 127.0.0.1:46523/4310003 -H "c: c" > log/46/stdout431 2> log/46/stderr431 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind463 ../src/curl -q --output log/11/curl463.out --include --trace-ascii log/11/trace463 --trace-config all --trace-time -d @log/11/input463 http://127.0.0.1:41387/463 > log/11/stdout463 2> log/11/stderr463 test 0435...[verify -w local/remote port+ip after connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind435 ../src/curl -q --include --trace-ascii log/9/trace435 --trace-config all --trace-time http://127.0.0.1:46607/435 http://127.0.0.1:46607/435 -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n' > log/9/stdout435 2> log/9/stderr435 435: stdout FAILED: --- log/9/check-expected 2025-07-18 09:40:48.214631665 +0000 +++ log/9/check-generated 2025-07-18 09:40:48.213604386 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Content-Length: 0[CR][LF] -[CR][LF] -local port == [digits][LF] -local ip == 127.0.0.1[LF] -remote_ip == 127.0.0.1[LF] -remote_port == 46607[LF] -HTTP/1.1 200 OK[CR][LF] -Content-Length: 0[CR][LF] -[CR][LF] -local port == [digits][LF] -local ip == 127.0.0.1[LF] -remote_ip == 127.0.0.1[LF] -remote_port == 46607[LF] == Contents of files in the log/9/ dir after test 435 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Content-Length: 0[CR][LF] [CR][LF] local port == [digits][LF] local ip == 127.0.0.1[LF] remote_ip == 127.0.0.1[LF] remote_port == 46607[LF] HTTP/1.1 200 OK[CR][LF] Content-Length: 0[CR][LF] [CR][LF] local port == [digits][LF] local ip == 127.0.0.1[LF] remote_ip == 127.0.0.1[LF] remote_port == 46607[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind435 ../src/curl -q --include --trace-ascii log/9/trace435 --trace-config all --trace-time http://127.0.0.1:46607/435 http://127.0.0.1:46607/435 -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n' > log/9/stdout435 2> log/9/stderr435 === End of file commands.log === Start of file http_server.log 09:40:46.840093 ====> Client connect 09:40:46.840381 accept_connection 3 returned 4 09:40:46.840680 accept_connection 3 returned 0 09:40:46.846412 Read 93 bytes 09:40:46.846645 Process 93 bytes request 09:40:46.846740 Got request: GET /verifiedserver HTTP/1.1 09:40:46.846823 Are-we-friendly question received 09:40:46.847072 Wrote request (93 bytes) input to log/9/server.input 09:40:46.847284 Identifying ourselves as friends 09:40:46.847918 Response sent (56 bytes) and written to log/9/server.response 09:40:46.848027 special request received, no persistency 09:40:46.848094 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 435 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind435 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind435 * starts no server test 0467...[use a bad short option letter that does not exist (after one does exist)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind467 ../src/curl -q --output log/10/curl467.out --include --trace-ascii log/10/trace467 --trace-config all --trace-time curl -v http://example.com > log/10/stdout467 2> log/10/stderr467 curl returned 1, when expecting 2 467: exit FAILED == Contents of files in the log/10/ dir after test 467 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind467 ../src/curl -q --output log/10/curl467.out --include --trace-ascii log/10/trace467 --trace-config all --trace-time curl -v http://example.com > log/10/stdout467 2> log/10/stderr467 === End of file commands.log === Start of file server.cmd Testnum 467 === End of file server.cmd === Start of file valgrind467 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind467 test 0434...[-K with a single line without newline] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind434 ../src/curl -q --output log/16/curl434.out --include --trace-ascii log/16/trace434 --trace-config all --trace-time -K log/16/config434 > log/16/stdout434 2> log/16/stderr434 434: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 434 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind434 ../src/curl -q --output log/16/curl434.out --include --trace-ascii log/16/trace434 --trace-config all --trace-time -K log/16/config434 > log/16/stdout434 2> log/16/stderr434 === End of file commands.log === Start of file config434 url = 127.0.0.1:34829/434 === End of file config434 === Start of file http_server.log 09:40:46.784889 ====> Client connect 09:40:46.785223 accept_connection 3 returned 4 09:40:46.785402 accept_connection 3 returned 0 09:40:46.785707 Read 93 bytes 09:40:46.785829 Process 93 bytes request 09:40:46.785932 Got request: GET /verifiedserver HTTP/1.1 09:40:46.786027 Are-we-friendly question received 09:40:46.786279 Wrote request (93 bytes) input to log/16/server.input 09:40:46.789630 Identifying ourselves as friends 09:40:46.790654 Response sent (56 bytes) and written to log/16/server.response 09:40:46.790767 special request received, no persistency 09:40:46.790853 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 434 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind434 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind434 test 0455...[Variable using base64] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind455 ../src/curl -q --output log/17/curl455.out --include --trace-ascii log/17/trace455 --trace-config all --trace-time --variable moby="Call me Ishmael" --variable what=d2hpdGUtd2hhbGU= --expand-url "http://127.0.0.1:44383/{{moby:b64}}/{{what:64dec}}/455" > log/17/stdout455 2> log/17/stderr455 455: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 455 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind455 ../src/curl -q --output log/17/curl455.out --include --trace-ascii log/17/trace455 --trace-config all --trace-time --variable moby="Call me Ishmael" --variable what=d2hpdGUtd2hhbGU= --expand-url "http://127.0.0.1:44383/{{moby:b64}}/{{what:64dec}}/455" > log/17/stdout455 2> log/17/stderr455 === End of file commands.log === Start of file http_server.log 09:40:47.057342 ====> Client connect 09:40:47.057818 accept_connection 3 returned 4 09:40:47.057986 accept_connection 3 returned 0 09:40:47.058888 Read 93 bytes 09:40:47.059047 Process 93 bytes request 09:40:47.059172 Got request: GET /verifiedserver HTTP/1.1 09:40:47.059275 Are-we-friendly question received 09:40:47.059596 Wrote request (93 bytes) input to log/17/server.input 09:40:47.059823 Identifying ourselves as friends 09:40:47.061654 Response sent (56 bytes) and written to log/17/server.response 09:40:47.061759 special request received, no persistency 09:40:47.061825 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 455 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind455 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind455 test 0454...[Variable using illegal function separator] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind454 ../src/curl -q --output log/18/curl454.out --include --trace-ascii log/18/trace454 --trace-config all --trace-time http://127.0.0.1:41285/454 --variable what=hello --expand-data "--{{what:trim,url}}" > log/18/stdout454 2> log/18/stderr454 curl returned 1, when expecting 2 454: exit FAILED == Contents of files in the log/18/ dir after test 454 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind454 ../src/curl -q --output log/18/curl454.out --include --trace-ascii log/18/trace454 --trace-config all --trace-time http://127.0.0.1:41285/454 --variable what=hello --expand-data "--{{what:trim,url}}" > log/18/stdout454 2> log/18/stderr454CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind485 ../src/curl -q --output log/22/curl485.out --include --trace-ascii log/22/trace485 --trace-config all --trace-time http://example.com/485 http://example.net/fooo --etag-save log/22/etag485 > log/22/stdout485 2> log/22/stderr485 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind458 ../src/curl -q --include --trace-ascii log/5/trace458 --trace-config all --trace-time http://127.0.0.1:33413/458 -K log/5/cmd > log/5/stdout458 2> log/5/stderr458 === End of file commands.log === Start of file http_server.log 09:40:46.856619 ====> Client connect 09:40:46.856928 accept_connection 3 returned 4 09:40:46.857066 accept_connection 3 returned 0 09:40:46.857185 Read 93 bytes 09:40:46.857269 Process 93 bytes request 09:40:46.857340 Got request: GET /verifiedserver HTTP/1.1 09:40:46.857402 Are-we-friendly question received 09:40:46.857780 Wrote request (93 bytes) input to log/18/server.input 09:40:46.857945 Identifying ourselves as friends 09:40:46.862743 Response sent (56 bytes) and written to log/18/server.response 09:40:46.862846 special request received, no persistency 09:40:46.862917 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 454 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind454 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind454 * starts no server test 0462...[Missing environment variables in config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind462 ../src/curl -q --output log/30/curl462.out --include --trace-ascii log/30/trace462 --trace-config all --trace-time http://127.0.0.1:43913/462 -K log/30/cmd > log/30/stdout462 2> log/30/stderr462 curl returned 1, when expecting 26 462: exit FAILED == Contents of files in the log/30/ dir after test 462 === Start of file cmd variable %MISSING expand-data {{MISSING}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind462 ../src/curl -q --output log/30/curl462.out --include --trace-ascii log/30/trace462 --trace-config all --trace-time http://127.0.0.1:43913/462 -K log/30/cmd > log/30/stdout462 2> log/30/stderr462 === End of file commands.log === Start of file server.cmd Testnum 462 === End of file server.cmd === Start of file valgrind462 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind462 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind482 ../src/curl -q --trace-ascii log/31/trace482 --trace-config all --trace-time http://non-existing-host.haxx.se. --remove-on-error -C 1 -o "log/31/482" > log/31/stdout482 2> log/31/stderr482 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind469 ../src/curl -q --output log/38/curl469.out --include --trace-ascii log/38/trace469 --trace-config all --trace-time -H “host: 127.0.0.1:33511/“ -s > log/38/stdout469 2> log/38/stderr469 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind481 ../src/curl -q --trace-ascii log/52/trace481 --trace-config all --trace-time http://127.0.0.1:40089/481 --no-clobber -C 1 -o "log/52/481" > log/52/stdout481 2> log/52/stderr481 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind487 ../src/curl -q --output log/60/curl487.out --include --trace-ascii log/60/trace487 --trace-config all --trace-time --variable what=not-base64-data --expand-url "http://127.0.0.1:38843/{{what:64dec}}/487" -g > log/60/stdout487 2> log/60/stderr487 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind473 ../src/curl -q --output log/8/curl473.out --include --trace-ascii log/8/trace473 --trace-config all --trace-time http://127.0.0.1:46129/473 --etag-save log/8/etag473 > log/8/stdout473 2> log/8/stderr473 test 0424...[-w with urle.* variables] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind424 ../src/curl -q --trace-ascii log/44/trace424 --trace-config all --trace-time "http://uuuu:pppp@127.0.0.1:34655/424?qqqq#ffff" "h55p://hello2000:1/424?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:34655/424?qqqq#ffff" -w '%{urle.host}+%{urle.path}+%{urle.scheme}+%{urle.user}+%{urle.password}+%{urle.port}+%{urle.query}+%{urle.fragment}\n' -x http://127.0.0.1:34655/ -L > log/44/stdout424 2> log/44/stderr424 424: stdout FAILED: --- log/44/check-expected 2025-07-18 09:40:48.443119430 +0000 +++ log/44/check-generated 2025-07-18 09:40:48.441604270 +0000 @@ -1,4 +0,0 @@ -anotherhost.example+/4240002+http+++2023+moo.html+[LF] -hello2000+/424+h55p+++1+qqqq+ffff[LF] -+++++++[LF] -anotherhost.example+/4240002+http+++2023+moo.html+[LF] == Contents of files in the log/44/ dir after test 424 === Start of file check-expected anotherhost.example+/4240002+http+++2023+moo.html+[LF] hello2000+/424+h55p+++1+qqqq+ffff[LF] +++++++[LF] anotherhost.example+/4240002+http+++2023+moo.html+[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind424 ../src/curl -q --trace-ascii log/44/trace424 --trace-config all --trace-time "http://uuuu:pppp@127.0.0.1:34655/424?qqqq#ffff" "h55p://hello2000:1/424?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:34655/424?qqqq#ffff" -w '%{urle.host}+%{urle.path}+%{urle.scheme}+%{urle.user}+%{urle.password}+%{urle.port}+%{urle.query}+%{urle.fragment}\n' -x http://127.0.0.1:34655/ -L > log/44/stdout424 2> log/44/stderr424 === End of file commands.log === Start of file http_server.log 09:40:46.587003 ====> Client connect 09:40:46.587312 accept_connection 3 returned 4 09:40:46.587633 accept_connection 3 returned 0 09:40:46.587819 Read 93 bytes 09:40:46.587905 Process 93 bytes request 09:40:46.588006 Got request: GET /verifiedserver HTTP/1.1 09:40:46.588096 Are-we-friendly question received 09:40:46.588345 Wrote request (93 bytes) input to log/44/server.input 09:40:46.588656 Identifying ourselves as friends 09:40:46.589507 Response sent (56 bytes) and written to log/44/server.response 09:40:46.589645 special request received, no persistency 09:40:46.589716 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 424 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind424 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind424 * starts no server test 0460...[try --expand without an argument] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind460 ../src/curl -q --output log/45/curl460.out --include --trace-ascii log/45/trace460 --trace-config all --trace-time --expand-url > log/45/stdout460 2> log/45/stderr460 curl returned 1, when expecting 2 460: exit FAILED == Contents of files in the log/45/ dir after test 460 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind460 ../src/curl -q --output log/45/curl460.out --include --trace-ascii log/45/trace460 --trace-config all --trace-time --expand-url > log/45/stdout460 2> log/45/stderr460 === End of file commands.log === Start of file server.cmd Testnum 460 === End of file server.cmd === Start of file valgrind460 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind460 test 0420...[Setting cookies set with expired dates that were loaded from jar] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind420 ../src/curl -q --output log/53/curl420.out --include --trace-ascii log/53/trace420 --trace-config all --trace-time http://127.0.0.1:34639/func_test/del_cookie -b log/53/cookie420 -c log/53/save420 > log/53/stdout420 2> log/53/stderr420 420: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 420 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind420 ../src/curl -q --output log/53/curl420.out --include --trace-ascii log/53/trace420 --trace-confiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind483 ../src/curl -q --output log/27/curl483.out --include --trace-ascii log/27/trace483 --trace-config all --trace-time http://127.0.0.1:42323/483 -c log/27/c483 > log/27/stdout483 2> log/27/stderr483 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind489 ../src/curl -q --output log/40/curl489.out --include --trace-ascii log/40/trace489 --trace-config all --trace-time --output-dir log/40 --url @log/40/urls > log/40/stdout489 2> log/40/stderr489 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind456 ../src/curl -q --output log/15/curl456.out --include --trace-ascii log/15/trace456 --trace-config all --trace-time http://127.0.0.1:35435/456 --variable what@log/15/junk --expand-data "{{what}}" > log/15/stdout456 2> log/15/stderr456 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind477 ../src/curl -q --output log/3/curl477.out --include --trace-ascii log/3/trace477 --trace-config all --trace-time http://127.0.0.1:42107/477 --max-filesize 5 -L > log/3/stdout477 2> log/3/stderr477 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind488 ../src/curl -q --output log/37/curl488.out --include --trace-ascii log/37/trace488 --trace-config all --trace-time --output-dir log/37 --url @- log/37/stdout488 2> log/37/stderr488 g all --trace-time http://127.0.0.1:34639/func_test/del_cookie -b log/53/cookie420 -c log/53/save420 > log/53/stdout420 2> log/53/stderr420 === End of file commands.log === Start of file cookie420 127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie6 991 #HttpOnly_127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie5 990 #HttpOnly_127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie4 950 #HttpOnly_127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie3 900 #HttpOnly_127.0.0.1 FALSE /func_test/ FALSE 21709598616 mycookie2 5900 #HttpOnly_127.0.0.1 FALSE / FALSE 21709598616 mycookie1 4900 #HttpOnly_127.0.0.1 FALSE /func_test/ FALSE 0 mycookie 1200 === End of file cookie420 === Start of file http_server.log 09:40:46.521766 ====> Client connect 09:40:46.522077 accept_connection 3 returned 4 09:40:46.522247 accept_connection 3 returned 0 09:40:46.523987 Read 93 bytes 09:40:46.524120 Process 93 bytes request 09:40:46.524199 Got request: GET /verifiedserver HTTP/1.1 09:40:46.524273 Are-we-friendly question received 09:40:46.524588 Wrote request (93 bytes) input to log/53/server.input 09:40:46.524768 Identifying ourselves as friends 09:40:46.525814 Response sent (56 bytes) and written to log/53/server.response 09:40:46.525950 special request received, no persistency 09:40:46.526037 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 420 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind420 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind420 test 0426...[try --data with --continue-at] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind426 ../src/curl -q --output log/57/curl426.out --include --trace-ascii log/57/trace426 --trace-config all --trace-time http://127.0.0.1:35945/426 -d foobar -C 3 > log/57/stdout426 2> log/57/stderr426 curl returned 1, when expecting 2 426: exit FAILED == Contents of files in the log/57/ dir after test 426 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind426 ../src/curl -q --output log/57/curl426.out --include --trace-ascii log/57/trace426 --trace-config all --trace-time http://127.0.0.1:35945/426 -d foobar -C 3 > log/57/stdout426 2> log/57/stderr426 === End of file commands.log === Start of file http_server.log 09:40:46.535118 ====> Client connect 09:40:46.535432 accept_connection 3 returned 4 09:40:46.535776 accept_connection 3 returned 0 09:40:46.535913 Read 93 bytes 09:40:46.536024 Process 93 bytes request 09:40:46.536130 Got request: GET /verifiedserver HTTP/1.1 09:40:46.536225 Are-we-friendly question received 09:40:46.537694 Wrote request (93 bytes) input to log/57/server.input 09:40:46.537926 Identifying ourselves as friends 09:40:46.541173 Response sent (56 bytes) and written to log/57/server.response 09:40:46.541315 special request received, no persistency 09:40:46.541393 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 426 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind426 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind426 test 0425...[HTTP PUT with path ending with slash + query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind425 ../src/curl -q --output log/61/curl425.out --include --trace-ascii log/61/trace425 --trace-config all --trace-time -T log/61/up425 http://127.0.0.1:44381/425/?fullpath > log/61/stdout425 2> log/61/stderr425 425: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 425 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind425 ../src/curl -q --output log/61/curl425.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind468 ../src/curl -q --trace-ascii log/47/trace468 --trace-config all --trace-time http://127.0.0.1:41103/468 -K log/47/cmd468 -w "" > log/47/stdout468 2> log/47/stderr468 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind450 ../src/curl -q --output log/29/curl450.out --include --trace-ascii log/29/trace450 --trace-config all --trace-time http://127.0.0.1:36877/450 --variable what@log/29/junk --expand-data "{{what:trim:url}}" > log/29/stdout450 2> log/29/stderr450 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind478 ../src/curl -q --output log/42/curl478.out --include --trace-ascii log/42/trace478 --trace-config all --trace-time --netrc --netrc-file log/42/netrc478 -x http://127.0.0.1:42819/ http://debbie@github.com/ > log/42/stdout478 2> log/42/stderr478 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind486 ../src/curl -q --output log/35/curl486.out --include --trace-ascii log/35/trace486 --trace-config all --trace-time --netrc --netrc-file log/35/netrc486 -L -x http://127.0.0.1:43179/ http://a.com/ > log/35/stdout486 2> log/35/stderr486 out --include --trace-ascii log/61/trace425 --trace-config all --trace-time -T log/61/up425 http://127.0.0.1:44381/425/?fullpath > log/61/stdout425 2> log/61/stderr425 === End of file commands.log === Start of file http_server.log 09:40:46.488963 ====> Client connect 09:40:46.489269 accept_connection 3 returned 4 09:40:46.489589 accept_connection 3 returned 0 09:40:46.490559 Read 93 bytes 09:40:46.490721 Process 93 bytes request 09:40:46.490814 Got request: GET /verifiedserver HTTP/1.1 09:40:46.490898 Are-we-friendly question received 09:40:46.491146 Wrote request (93 bytes) input to log/61/server.input 09:40:46.491336 Identifying ourselves as friends 09:40:46.493329 Response sent (56 bytes) and written to log/61/server.response 09:40:46.496634 special request received, no persistency 09:40:46.496747 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 425 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file up425 content === End of file up425 === Start of file valgrind425 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind425 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind491 ../src/curl -q --output log/12/curl491.out --include --trace-ascii log/12/trace491 --trace-config all --trace-time http://127.0.0.1:45579/491 -T '{log/12/in491,log/12/bad491}' > log/12/stdout491 2> log/12/stderr491 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind492 ../src/curl -q --output log/28/curl492.out --include --trace-ascii log/28/trace492 --trace-config all --trace-time 'http://127.0.0.1:37545/{one,two}/' -T '{log/28/first492,log/28/second492}' -H "Testno: 492" > log/28/stdout492 2> log/28/stderr492 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind476 ../src/curl -q --output log/13/curl476.out --include --trace-ascii log/13/trace476 --trace-config all --trace-time "ftp://127.0.0.1:34087/476;type=a" -T log/13/test476.txt > log/13/stdout476 2> log/13/stderr476 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind490 ../src/curl -q --output log/25/curl490.out --include --trace-ascii log/25/trace490 --trace-config all --trace-time http://127.0.0.1:41727/490 -T '{log/25/in490,log/25/in490}' > log/25/stdout490 2> log/25/stderr490 test 0423...[-w with url.* variables] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind423 ../src/curl -q --trace-ascii log/62/trace423 --trace-config all --trace-time "http://uuuu:pppp@127.0.0.1:38899/423?qqqq#ffff" "h55p://hello2000:1/423?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:38899/423?qqqq#ffff" -w '%{url.host}+%{url.path}+%{url.scheme}+%{url.user}+%{url.password}+%{url.port}+%{url.query}+%{url.fragment}\n' > log/62/stdout423 2> log/62/stderr423 423: stdout FAILED: --- log/62/check-expected 2025-07-18 09:40:48.614689523 +0000 +++ log/62/check-generated 2025-07-18 09:40:48.613604183 +0000 @@ -1,4 +0,0 @@ -127.0.0.1+/423+http+uuuu+pppp+38899+qqqq+ffff[LF] -hello2000+/423+h55p+++1+qqqq+ffff[LF] -+++++++[LF] -127.0.0.1+/423+http+u22u+p22p+38899+qqqq+ffff[LF] == Contents of files in the log/62/ dir after test 423 === Start of file check-expected 127.0.0.1+/423+http+uuuu+pppp+38899+qqqq+ffff[LF] hello2000+/423+h55p+++1+qqqq+ffff[LF] +++++++[LF] 127.0.0.1+/423+http+u22u+p22p+38899+qqqq+ffff[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind423 ../src/curl -q --trace-ascii log/62/trace423 --trace-config all --trace-time "http://uuuu:pppp@127.0.0.1:38899/423?qqqq#ffff" "h55p://hello2000:1/423?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:38899/423?qqqq#ffff" -w '%{url.host}+%{url.path}+%{url.scheme}+%{url.user}+%{url.password}+%{url.port}+%{url.query}+%{url.fragment}\n' > log/62/stdout423 2> log/62/stderr423 === End of file commands.log === Start of file http_server.log 09:40:46.514098 ====> Client connect 09:40:46.514591 accept_connection 3 returned 4 09:40:46.514808 accept_connection 3 returned 0 09:40:46.515567 Read 93 bytes 09:40:46.515728 Process 93 bytes request 09:40:46.515833 Got request: GET /verifiedserver HTTP/1.1 09:40:46.515938 Are-we-friendly question received 09:40:46.516214 Wrote request (93 bytes) input to log/62/server.input 09:40:46.516529 Identifying ourselves as friends 09:40:46.518714 Response sent (56 bytes) and written to log/62/server.response 09:40:46.518845 special request received, no persistency 09:40:46.518931 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 423 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind423 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind423 setenv FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF = contents2023 test 0429...[Expand environment variable in config file - too long name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind429 ../src/curl -q --output log/64/curl429.out --include --trace-ascii log/64/trace429 --trace-config all --trace-time http://127.0.0.1:33073/429 -K log/64/cmd > log/64/stdout429 2> log/64/stderr429 429: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 429 === Start of file cmd --expand-data {{FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind429 ../src/curl -q --output log/64/curl429.out --include --trace-ascii log/64/trace429 --trace-config all --trace-time http://127.0.0.1:33073/429 -K log/64/cmd > log/64/stdout429 2> log/64/stderr429 === End of file commands.log === Start of file http_server.log 09:40:46.655791 ====> Client connect 09:40:46.656120 accept_connection 3 returned 4 09:40:46.656301 accept_connection 3 returned 0 09:40:46.656520 Read 93 bytes 09:40:46.656678 Process 93 bytes request 09:40:46.656787 Got request: GET /verifiedserver HTTP/1.1 09:40:46.656877 Are-we-friendly question received 09:40:46.657106 Wrote request (93 bytes) input to log/64/server.input 09:40:46.657309 Identifying ourselves as friends 09:40:46.659149 Response sent (56 bytes) and written to log/64/server.response 09:40:46.659265 special request received, no persistency 09:40:46.659330 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 429 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind429 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind479 ../src/curl -q --output log/34/curl479.out --include --trace-ascii log/34/trace479 --trace-config all --trace-time --netrc --netrc-file log/34/netrc479 -L -x http://127.0.0.1:33117/ http://a.com/ > log/34/stdout479 2> log/34/stderr479 stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind429 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind442 ../src/curl -q --output log/56/curl442.out --include --trace-ascii log/56/trace442 --trace-config all --trace-time http://attack.invalid:43265/a/b/442 -b log/56/cookie442 --resolve attack.invalid:43265:127.0.0.1 -L > log/56/stdout442 2> log/56/stderr442 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind475 ../src/curl -q --output log/26/curl475.out --include --trace-ascii log/26/trace475 --trace-config all --trace-time "ftp://127.0.0.1:39753/475;type=a" -T log/26/test475.txt > log/26/stdout475 2> log/26/stderr475 test 0459...[config file with argument using whitespace missing quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind459 ../src/curl -q --output log/1/curl459.out --include --trace-ascii log/1/trace459 --trace-config all --trace-time http://127.0.0.1:40633/459 --config log/1/config --silent > log/1/stdout459 2> log/1/stderr459 459: stderr FAILED: --- log/1/check-expected 2025-07-18 09:40:48.757604110 +0000 +++ log/1/check-generated 2025-07-18 09:40:48.756604111 +0000 @@ -1,2 +0,0 @@ -Warning: log/1/config:1: warning: 'data' uses unquoted whitespace[CR][LF] -Warning: This may cause side-effects. Consider using double quotes?[CR][LF] == Contents of files in the log/1/ dir after test 459 === Start of file check-expected Warning: log/1/config:1: warning: 'data' uses unquoted whitespace[CR][LF] Warning: This may cause side-effects. Consider using double quotes?[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind459 ../src/curl -q --output log/1/curl459.out --include --trace-ascii log/1/trace459 --trace-config all --trace-time http://127.0.0.1:40633/459 --config log/1/config --silent > log/1/stdout459 2> log/1/stderr459 === End of file commands.log === Start of file config data = arg with space === End of file config === Start of file http_server.log 09:40:47.050834 ====> Client connect 09:40:47.051160 accept_connection 3 returned 4 09:40:47.051322 accept_connection 3 returned 0 09:40:47.051569 Read 93 bytes 09:40:47.051700 Process 93 bytes request 09:40:47.051798 Got request: GET /verifiedserver HTTP/1.1 09:40:47.051886 Are-we-friendly question received 09:40:47.052124 Wrote request (93 bytes) input to log/1/server.input 09:40:47.052306 Identifying ourselves as friends 09:40:47.053103 Response sent (56 bytes) and written to log/1/server.response 09:40:47.053223 special request received, no persistency 09:40:47.053292 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 459 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind459 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind459 test 0440...[HSTS with trailing-dot host name in URL but none in hsts file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind440 ../src/curl -q --include --trace-ascii log/2/trace440 --trace-config all --trace-time -x http://127.0.0.1:39659 http://this.hsts.example./440 --hsts log/2/input440 -w '%{url_effective}\n' > log/2/stdout440 2> log/2/stderr440 440: stdout FAILED: --- log/2/check-expected 2025-07-18 09:40:48.816276881 +0000 +++ log/2/check-generated 2025-07-18 09:40:48.814604081 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 403 not OK at all[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] -https://this.hsts.example./440[LF] == Contents of files in the log/2/ dir after test 440 === Start of file check-expected HTTP/1.1 403 not OK at all[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] https://this.hsts.example./440[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind440 ../src/curl -q --include --trace-ascii log/2/trace440 --trace-config all --trace-time -x http://127.0.0.1:39659 http://this.hsts.example./440 --hsts log/2/input440 -w '%{url_effective}\n' > log/2/stdout440 2> log/2/stderr440 === End of file commands.log === Start of file http_server.log 09:40:46.732884 ====> Client connect 09:40:46.733204 accept_connection 3 returned 4 09:40:46.733386 accept_connection 3 returned 0 09:40:46.733720 Read 93 bytes 09:40:46.733848 Process 93 bytes request 09:40:46.733949 Got request: GET /verifiedserver HTTP/1.1 09:40:46.734039 Are-we-friendly question received 09:40:46.734316 Wrote request (93 bytes) input to log/2/server.input 09:40:46.739693 Identifying ourselves as friends 09:40:46.740665 Response sent (56 bytes) and written to log/2/server.response 09:40:46.740822 special request received, no persistency 09:40:46.740921 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file input440 this.hsts.example "99991001 04:47:41" === End of file input440 === Start of file server.cmd Testnum 440 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind440 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind440 test 0477...[HTTP GET with maximum filesize with a redirect sending data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind477 ../src/curl -q --output log/3/curl477.out --include --trace-ascii log/3/trace477 --trace-config all --trace-time http://127.0.0.1:42107/477 --max-filesize 5 -L > log/3/stdout477 2> log/3/stderr477 477: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 477 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind477 ../src/curl -q --output log/3/curl477.out --include --trace-ascii log/3/trace477 --trace-config all --trace-time http://127.0.0.1:42107/477 --max-filesize 5 -L > log/3/stdout477 2> log/3/stderr477 === End of file commands.log === Start of file http_server.log 09:40:47.316757 ====> Client connect 09:40:47.317391 accept_connection 3 returned 4 09:40:47.317985 accept_connection 3 returned 0 09:40:47.319667 Read 93 bytes 09:40:47.320108 Process 93 bytes request 09:40:47.320281 Got request: GET /verifiedserver HTTP/1.1 09:40:47.320381 Are-we-friendly question received 09:40:47.321026 Wrote request (93 bytes) input to log/3/server.input 09:40:47.321241 Identifying ourselves as friends 09:40:47.321928 Response sent (56 bytes) and written to log/3/server.response 09:40:47.322045 special request received, no persistency 09:40:47.322117 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 477 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind477 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind444 ../src/curl -q --output log/58/curl444.out --include --trace-ascii log/58/trace444 --trace-config all --trace-time http://attack.invalid:46727/a/b/444 -c log/58/cookie444 --resolve attack.invalid:46727:127.0.0.1 > log/58/stdout444 2> log/58/stderr444 c-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind477 setenv FUNVALUE = contents458 setenv VALUE2 = curl setenv BLANK = test 0458...[variable expand the file name with --expand-output] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind458 ../src/curl -q --include --trace-ascii log/5/trace458 --trace-config all --trace-time http://127.0.0.1:33413/458 -K log/5/cmd > log/5/stdout458 2> log/5/stderr458 458: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 458 === Start of file cmd --variable %FUNVALUE --expand-output log/5/{{FUNVALUE}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind458 ../src/curl -q --include --trace-ascii log/5/trace458 --trace-config all --trace-time http://127.0.0.1:33413/458 -K log/5/cmd > log/5/stdout458 2> log/5/stderr458 === End of file commands.log === Start of file http_server.log 09:40:47.076142 ====> Client connect 09:40:47.076552 accept_connection 3 returned 4 09:40:47.076747 accept_connection 3 returned 0 09:40:47.085432 Read 93 bytes 09:40:47.085636 Process 93 bytes request 09:40:47.085719 Got request: GET /verifiedserver HTTP/1.1 09:40:47.085804 Are-we-friendly question received 09:40:47.086038 Wrote request (93 bytes) input to log/5/server.input 09:40:47.086222 Identifying ourselves as friends 09:40:47.089755 Response sent (56 bytes) and written to log/5/server.response 09:40:47.089873 special request received, no persistency 09:40:47.089939 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 458 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind458 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind458 test 0473...[Check if --etag-save saved correct etag to a file on 301] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind473 ../src/curl -q --output log/8/curl473.out --include --trace-ascii log/8/trace473 --trace-config all --trace-time http://127.0.0.1:46129/473 --etag-save log/8/etag473 > log/8/stdout473 2> log/8/stderr473 473: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 473 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind473 ../src/curl -q --output log/8/curl473.out --include --trace-ascii log/8/trace473 --trace-config all --trace-time http://127.0.0.1:46129/473 --etag-save log/8/etag473 > log/8/stdout473 2> log/8/stderr473 === End of file commands.log === Start of file http_server.log 09:40:47.180226 ====> Client connect 09:40:47.180642 accept_connection 3 returned 4 09:40:47.180807 accept_connection 3 returned 0 09:40:47.181733 Read 93 bytes 09:40:47.181872 Process 93 bytes request 09:40:47.181950 Got request: GET /verifiedserver HTTP/1.1 09:40:47.182016 Are-we-friendly question received 09:40:47.182221 Wrote request (93 bytes) input to log/8/server.input 09:40:47.182380 Identifying ourselves as friends 09:40:47.183001 Response sent (56 bytes) and written to log/8/server.response 09:40:47.183107 special request received, no persistency 09:40:47.183172 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 473 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind473 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind473 test 0463...[HTTP with -d @fiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind493 ../src/curl -q --include --trace-ascii log/6/trace493 --trace-config all --trace-time -x http://127.0.0.1:37181 http://this.hsts.example/493 --hsts log/6/input493 -w '%{url_effective}\n' > log/6/stdout493 2> log/6/stderr493 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind495 ../src/curl -q --output log/39/curl495.out --include --trace-ascii log/39/trace495 --trace-config all --trace-time http://foo%40bar:secret@127.0.0.1:42899/495 --netrc-optional > log/39/stdout495 2> log/39/stderr495 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind480 ../src/curl -q --output log/43/curl480.out --include --trace-ascii log/43/trace480 --trace-config all --trace-time --netrc --netrc-file log/43/netrc480 pop3://127.0.0.1:33889/480 > log/43/stdout480 2> log/43/stderr480 le with file containing CR, LF and null byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind463 ../src/curl -q --output log/11/curl463.out --include --trace-ascii log/11/trace463 --trace-config all --trace-time -d @log/11/input463 http://127.0.0.1:41387/463 > log/11/stdout463 2> log/11/stderr463 463: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 463 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind463 ../src/curl -q --output log/11/curl463.out --include --trace-ascii log/11/trace463 --trace-config all --trace-time -d @log/11/input463 http://127.0.0.1:41387/463 > log/11/stdout463 2> log/11/stderr463 === End of file commands.log === Start of file http_server.log 09:40:47.104890 ====> Client connect 09:40:47.105600 accept_connection 3 returned 4 09:40:47.105794 accept_connection 3 returned 0 09:40:47.105924 Read 93 bytes 09:40:47.106013 Process 93 bytes request 09:40:47.106093 Got request: GET /verifiedserver HTTP/1.1 09:40:47.106167 Are-we-friendly question received 09:40:47.106386 Wrote request (93 bytes) input to log/11/server.input 09:40:47.106690 Identifying ourselves as friends 09:40:47.107613 Response sent (56 bytes) and written to log/11/server.response 09:40:47.107746 special request received, no persistency 09:40:47.107827 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41387... * Connected to 127.0.0.1 (127.0.0.1) port 41387 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41387 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73809 === End of file http_verify.out === Start of file input463 one two three fourfive === End of file input463 === Start of file server.cmd Testnum 463 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73809 === End of file server.response === Start of file valgrind463 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind463 test 0491...[Two globbed HTTP PUTs, the second upload file is missing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind491 ../src/curl -q --output log/12/curl491.out --include --trace-ascii log/12/trace491 --trace-config all --trace-time http://127.0.0.1:45579/491 -T '{log/12/in491,log/12/bad491}' > log/12/stdout491 2> log/12/stderr491 491: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 491 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind491 ../src/curl -q --output log/12/curl491.out --include --trace-ascii log/12/trace491 --trace-config all --trace-time http://127.0.0.1:45579/491 -T '{log/12/in491,log/12/bad491}' > log/12/stdout491 2> log/12/stderr491 === End of file commands.log === Start of file http_server.log 09:40:47.543882 ====> Client connect 09:40:47.544311 accept_connection 3 returned 4 09:40:47.544554 accept_connection 3 returned 0 09:40:47.544745 Read 93 bytes 09:40:47.544844 Process 93 bytes request 09:40:47.544934 Got request: GET /verifiedserver HTTP/1.1 09:40:47.545017 Are-we-friendly question received 09:40:47.545254 Wrote request (93 bytes) input to log/12/server.input 09:40:47.546543 Identifying ourselves as friends 09:40:47.547274 Response sent (56 bytes) and written to log/12/server.response 09:40:47.547378 special request received, no persistency 09:40:47.547526 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file in491 surprise === End of file in491 === Start of file server.cmd Testnum 491 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind491 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind491 test 0476...[FTP PASV upload ASCII file already using CRLF] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind476 ../src/curl -q --output log/13/curl476.out --include --trace-ascii log/13/trace476 --trace-config all --trace-time "ftp://127.0.0.1:34087/476;type=a" -T log/13/test476.txt > log/13/stdout476 2> log/13/stderr476 476: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 476 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind476 ../src/curl -q --output log/13/curl476.out --include --trace-ascii log/13/trace476 --trace-config all --trace-time "ftp://127.0.0.1:34087/476;type=a" -T log/13/test476.txt > log/13/stdout476 2> log/13/stderr476 === End of file commands.log === Start of file ftp_server.log 09:40:47.014642 ====> Client connect 09:40:47.016373 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:47.022268 < "USER anonymous" 09:40:47.025958 > "331 We are happy you popped in![CR][LF]" 09:40:47.030388 < "PASS ftp@example.com" 09:40:47.030888 > "230 Welcome you silly person[CR][LF]" 09:40:47.034437 < "PWD" 09:40:47.034897 > "257 "/" is current directory[CR][LF]" 09:40:47.041326 < "EPSV" 09:40:47.041600 ====> Passive DATA channel requested by client 09:40:47.041882 DATA sockfilt for passive data channel starting... 09:40:47.087217 DATA sockfilt for passive data channel started (pid 97293) 09:40:47.089433 DATA sockfilt for passive data channel listens on port 37699 09:40:47.089982 > "229 Entering Passive Mode (|||37699|)[LF]" 09:40:47.090307 Client has been notified that DATA conn will be accepted on port 37699 09:40:47.098881 Client connects to port 37699 09:40:47.099218 ====> Client established passive DATA connection on port 37699 09:40:47.100104 < "TYPE I" 09:40:47.103258 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:47.109335 < "SIZE verifiedserver" 09:40:47.109851 > "213 17[CR][LF]" 09:40:47.113443 < "RETR verifiedserver" 09:40:47.117056 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:47.118112 =====> Closing passive DATA connection... 09:40:47.118456 Server disconnects passive DATA connection 09:40:47.120915 Server disconnected passive DATA connection 09:40:47.121293 DATA sockfilt for passive data channel quits (pid 97293) 09:40:47.127201 DATA sockfilt for passive data channel quit (pid 97293) 09:40:47.127613 =====> Closed passive DATA connection 09:40:47.128098 > "226 File transfer complete[CR][LF]" 09:40:47.162919 < "QUIT" 09:40:47.164452 > "221 bye bye baby[CR][LF]" 09:40:47.168471 MAIN sockfilt said DISC 09:40:47.168869 ====> Client disconnected 09:40:47.169406 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:46.267751 ====> Client connect 09:40:46.270432 Received DATA (on stdin) 09:40:46.270690 > 160 bytes data, server => client 09:40:46.270786 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:46.270882 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:46.270957 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:46.272652 < 16 bytes data, client => server 09:40:46.272843 'USER anonymous\r\n' 09:40:46.280024 Received DATA (on stdin) 09:40:46.280185 > 33 bytes data, server => client 09:40:46.280285 '331 We are happy you popped in!\r\n' 09:40:46.281220 < 22 bytes data, client => server 09:40:46.281374 'PASS ftp@example.com\r\n' 09:40:46.284917 Received DATA (on stdin) 09:40:46.285134 > 30 bytes data, server => client 09:40:46.285254 '230 Welcome you silly person\r\n' 09:40:46.286164 < 5 bytes data, client => server 09:40:46.286308 'PWD\r\n' 09:40:46.290566 Received DATA (on stdin) 09:40:46.290730 > 30 bytes data, server => client 09:40:46.290815 '257 "/" is current directory\r\n' 09:40:46.293360 < 6 bytes data, client => server 09:40:46.293607 'EPSV\r\n' 09:40:46.344377 Received DATA (on stdin) 09:40:46.344688 > 38 bytes data, server => client 09:40:46.344825 '229 Entering Passive Mode (|||37699|)\n' 09:40:46.348816 < 8 bytes data, client => server 09:40:46.348975 'TYPE I\r\n' 09:40:46.354190 Received DATA (on stdin) 09:40:46.354340 > 33 bytes data, server => client 09:40:46.354798 '200 I modify TYPE as you wanted\r\n' 09:40:46.360619 < 21 bytes data, client => server 09:40:46.360802 'SIZE verifiedserver\r\n' 09:40:46.364008 Received DATA (on stdin) 09:40:46.364159 > 8 bytes data, server => client 09:40:46.364295 '213 17\r\n' 09:40:46.365784 < 21 bytes data, client => server 09:40:46.365951 'RETR verifiedserver\r\n' 09:40:46.372588 Received DATA (on stdin) 09:40:46.372788 > 29 bytes data, server => client 09:40:46.372935 '150 Binary junk (17 bytes).\r\n' 09:40:46.382191 Received DATA (on stdin) 09:40:46.382360 > 28 bytes data, server => client 09:40:46.382617 '226 File transfer complete\r\n' 09:40:46.415360 < 6 bytes data, client => server 09:40:46.415737 'QUIT\r\n' 09:40:46.417048 Received DATA (on stdin) 09:40:46.417211 > 18 bytes data, server => client 09:40:46.417684 '221 bye bye baby\r\n' 09:40:46.421881 ====> Client disconnect 09:40:46.423407 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:47.331275 Running IPv4 version 09:40:47.336092 Listening on port 37699 09:40:47.336587 Wrote pid 97293 to log/13/server/ftp_sockdata.pid 09:40:47.337831 Received PING (on stdin) 09:40:47.342562 Received PORT (on stdin) 09:40:47.351617 ====> Client connect 09:40:47.371274 Received DATA (on stdin) 09:40:47.371585 > 17 bytes data, server => client 09:40:47.371728 'WE ROOLZ: 79551\r\n' 09:40:47.372747 Received DISC (on stdin) 09:40:47.372936 ====> Client forcibly disconnected 09:40:47.375402 Received QUIT (on stdin) 09:40:47.375656 quits 09:40:47.376336 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 476 === End of file server.cmd === Start of file test476.txt a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === File too long: 349 lines omitted here a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === End of file test476.txt === Start of file valgrind476 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind476 test 0456...[Variable output starting with null byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind456 ../src/curl -q --output log/15/curl456.out --include --trace-ascii log/15/trace456 --trace-config all --trace-time http://127.0.0.1:35435/456 --variable what@log/15/junk --expand-data "{{what}}" > log/15/stdout456 2> log/15/stderr456 curl returned 1, when expecting 2 456: exit FAILED == Contents of files in the log/15/ dir after test 456 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind456 ../src/curl -q --output log/15/curl456.out --include --trace-ascii log/15/trace456 --trace-config all --trace-time http://127.0.0.1:35435/456 --variable what@log/15/junk --expand-data "{{what}}" > log/15/stdout456 2> log/15/stderr456 === End of file commands.log === Start of file http_server.log 09:40:47.143090 ====> Client connect 09:40:47.143431 accept_connection 3 returned 4 09:40:47.143760 accept_connection 3 returned 0 09:40:47.143895 Read 93 bytes 09:40:47.143988 Process 93 bytes request 09:40:47.144086 Got request: GET /verifiedserver HTTP/1.1 09:40:47.144175 Are-we-friendly question received 09:40:47.144419 Wrote request (93 bytes) input to log/15/server.input 09:40:47.144707 Identifying ourselves as friends 09:40:47.145590 Response sent (56 bytes) and written to log/15/server.response 09:40:47.145705 special request received, no persistency 09:40:47.145781 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file junk hello === End of file junk === Start of file server.cmd Testnum 456 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file valgrind456 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind456 test 0471...[Reject HTTP/1.1 to HTTP/2 switch on the same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind471 ../src/curl -q --include --trace-ascii log/19/trace471 --trace-config all --trace-time "http://127.0.0.1:35697/{471,4710001}" -o "log/19/dumpit#1.dump" > log/19/stdout471 2> log/19/stderr471 471: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 471 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind471 ../src/curl -q --include --trace-ascii log/19/trace471 --trace-config all --trace-time "http://127.0.0.1:35697/{471,4710001}" -o "log/19/dumpit#1.dump" > log/19/stdout471 2> log/19/stderr471 === End of file commands.log === Start of file http_server.log 09:40:47.167261 ====> Client connect 09:40:47.167655 accept_connection 3 returned 4 09:40:47.167827 accept_connection 3 returned 0 09:40:47.167963 Read 93 bytes 09:40:47.168058 Process 93 bytes request 09:40:47.168149 Got request: GET /verifiedserver HTTP/1.1 09:40:47.168250 Are-we-friendly question received 09:40:47.168565 Wrote request (93 bytes) input to log/19/server.input 09:40:47.168783 Identifying ourselves as friends 09:40:47.173741 Response sent (56 bytes) and written to log/19/server.response 09:40:47.173852 special request received, no persistency 09:40:47.173916 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 471 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind471 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind471 test 0470...[warn about Unicode quote character read from config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind470 ../src/curl -q --output log/20/curl470.out --include --trace-ascii log/20/trace470 --trace-config all --trace-time 127.0.0.1:45475 --no-progress-meter -K "log/20/input470" > log/20/stdout470 2> log/20/stderr470 470: stderr FAILED: --- log/20/check-expected 2025-07-18 09:40:49.182646075 +0000 +++ log/20/check-generated 2025-07-18 09:40:49.181603896 +0000 @@ -1,2 +0,0 @@ -Warning: The argument '%e2%80%9chost:fake%e2%80%9d' starts with a Unicode quote where [CR][LF] -Warning: maybe an ASCII " was intended?[CR][LF] == Contents of files in the log/20/ dir after test 470 === Start of file check-expected Warning: The argument '%e2%80%9chost:fake%e2%80%9d' starts with a Unicode quote where [CR][LF] Warning: maybe an ASCII " was intended?[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind470 ../src/curl -q --output log/20/curl470.out --include --trace-ascii log/20/trace470 --trace-config all --trace-time 127.0.0.1:45475 --no-progress-meter -K "log/20/input470" > log/20/stdout470 2> log/20/stderr470 === End of file commands.log === Start of file http_server.log 09:40:47.083837 ====> Client connect 09:40:47.084145 accept_connection 3 returned 4 09:40:47.084326 accept_connection 3 returned 0 09:40:47.084672 Read 93 bytes 09:40:47.084801 Process 93 bytes request 09:40:47.084885 Got request: GET /verifiedserver HTTP/1.1 09:40:47.084964 Are-we-friendly question received 09:40:47.085191 Wrote request (93 bytes) input to log/20/server.input 09:40:47.085365 Identifying ourselves as friends 09:40:47.086140 Response sent (56 bytes) and written to log/20/server.response 09:40:47.086259 special request received, no persistency 09:40:47.086341 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file input470 -H “host:fake†=== End of file input470 === Start of file server.cmd Testnum 470 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind470 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind470 test 0453...[Variable output containing null byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind453 ../src/curl -q --output log/21/curl453.out --include --trace-ascii log/21/trace453 --trace-config all --trace-time http://127.0.0.1:34827/453 --variable what@log/21/junk --expand-data "{{what}}" > log/21/stdout453 2> log/21/stderr453 curl returned 1, when expecting 2 453: exit FAILED == Contents of files in the log/21/ dir after test 453 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind453 ../src/curl -q --output log/21/curl453.out --include --trace-ascii log/21/trace453 --trace-config all --trace-time http://127.0.0.1:34827/453 --variable what@log/21/junk --expand-data "{{what}}" > log/21/stdout453 2> log/21/stderr453 === End of file commands.log === Start of file http_server.log 09:40:46.810993 ====> Client connect 09:40:46.811370 accept_connection 3 returned 4 09:40:46.811732 accept_connection 3 returned 0 09:40:46.811883 Read 93 bytes 09:40:46.811989 Process 93 bytes request 09:40:46.812088 Got request: GET /verifiedserver HTTP/1.1 09:40:46.812178 Are-we-friendly question received 09:40:46.812431 Wrote request (93 bytes) input to log/21/server.input 09:40:46.812709 Identifying ourselves as friends 09:40:46.813591 Response sent (56 bytes) and written to log/21/server.response 09:40:46.813712 special request received, no persistency 09:40:46.813784 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file junk  === End of file junk === Start of file server.cmd Testnum 453 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind453 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind453 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind496 ../src/curl -q --output log/63/curl496.out --include --trace-ascii log/63/trace496 --trace-config all --trace-time 0 -Z -Tz > log/63/stdout496 2> log/63/stderr496 * starts no server test 0485...[Use --etag-compare and -save with more than one URL, URLs specified first] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind485 ../src/curl -q --output log/22/curl485.out --include --trace-ascii log/22/trace485 --trace-config all --trace-time http://example.com/485 http://example.net/fooo --etag-save log/22/etag485 > log/22/stdout485 2> log/22/stderr485 485: stderr FAILED: --- log/22/check-expected 2025-07-18 09:40:49.268192452 +0000 +++ log/22/check-generated 2025-07-18 09:40:49.266603853 +0000 @@ -1,3 +0,0 @@ -curl: The etag options only work on a single URL[CR][LF] -curl: option --etag-save: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/22/ dir after test 485 === Start of file check-expected curl: The etag options only work on a single URL[CR][LF] curl: option --etag-save: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind485 ../src/curl -q --output log/22/curl485.out --include --trace-ascii log/22/trace485 --trace-config all --trace-time http://example.com/485 http://example.net/fooo --etag-save log/22/etag485 > log/22/stdout485 2> log/22/stderr485 === End of file commands.log === Start of file server.cmd Testnum 485 === End of file server.cmd === Start of file valgrind485 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind485 test 0452...[Variable using illegal function in expansion] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind452 ../src/curl -q --output log/23/curl452.out --include --trace-ascii log/23/trace452 --trace-config all --trace-time http://127.0.0.1:42467/452 --variable what=hello --expand-data "--{{what:trim:super}}" > log/23/stdout452 2> log/23/stderr452 curl returned 1, when expecting 2 452: exit FAILED == Contents of files in the log/23/ dir after test 452 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind452 ../src/curl -q --output log/23/curl452.out --include --trace-ascii log/23/trace452 --trace-config all --trace-time http://127.0.0.1:42467/452 --variable what=hello --expand-data "--{{what:trim:super}}" > log/23/stdout452 2> log/23/stderr452 === End of file commands.log === Start of file http_server.log 09:40:47.087114 ====> Client connect 09:40:47.090695 accept_connection 3 returned 4 09:40:47.090913 accept_connection 3 returned 0 09:40:47.091047 Read 93 bytes 09:40:47.091151 Process 93 bytes request 09:40:47.091246 Got request: GET /verifiedserver HTTP/1.1 09:40:47.091334 Are-we-friendly question received 09:40:47.091690 Wrote request (93 bytes) input to log/23/server.input 09:40:47.091939 Identifying ourselves as friends 09:40:47.092861 Response sent (56 bytes) and written to log/23/server.response 09:40:47.093007 special request received, no persistency 09:40:47.093092 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 452 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind452 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind452 test 0451...[Variable from file that is JSON and URL encoded (with null byte)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind451 ../src/curl -q --output log/24/curl451.out --include --trace-ascii log/24/trace451 --trace-config all --trace-time http://127.0.0.1:39259/451 --variable what@log/24/junk --variable second=hello --variable second=again --expand-data "--{{what:trim:json}}22{{none}}--{{second}}{{what:trim:url}}" > log/24/stdout451 2> log/24/stderr451 451: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 451 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind451 ../src/curl -q --output log/24/curl451.out --include --trace-ascii log/24/trace451 --trace-config all --trace-time http://127.0.0.1:39259/451 --variable what@log/24/junk --variable second=hello --variable second=again --expand-data "--{{what:trim:json}}22{{none}}--{{second}}{{what:trim:url}}" > log/24/stdout451 2> log/24/stderr451 === End of file commands.log === Start of file http_server.log 09:40:46.838142 ====> Client connect 09:40:46.838618 accept_connection 3 returned 4 09:40:46.838820 accept_connection 3 returned 0 09:40:46.838961 Read 93 bytes 09:40:46.839066 Process 93 bytes request 09:40:46.839158 Got request: GET /verifiedserver HTTP/1.1 09:40:46.839236 Are-we-friendly question received 09:40:46.839550 Wrote request (93 bytes) input to log/24/server.input 09:40:46.839749 Identifying ourselves as friends 09:40:46.842775 Response sent (56 bytes) and written to log/24/server.response 09:40:46.842911 special request received, no persistency 09:40:46.842993 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file junk  === End of file junk === Start of file server.cmd Testnum 451 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind451 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind451 test 0490...[Two globbed HTTP PUTs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind490 ../src/curl -q --output log/25/curl490.out --include --trace-ascii log/25/trace490 --trace-config all --trace-time http://127.0.0.1:41727/490 -T '{log/25/in490,log/25/in490}' > log/25/stdout490 2> log/25/stderr490 490: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 490 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind490 ../src/curl -q --output log/25/curl490.out --include --trace-ascii log/25/trace490 --trace-config all --trace-time http://127.0.0.1:41727/490 -T '{log/25/in490,log/25/in490}' > log/25/stdout490 2> log/25/stderr490 === End of file commands.log === Start of file http_server.log 09:40:47.565731 ====> Client connect 09:40:47.566065 accept_connection 3 returned 4 09:40:47.566242 accept_connection 3 returned 0 09:40:47.566390 Read 93 bytes 09:40:47.566591 Process 93 bytes request 09:40:47.566693 Got request: GET /verifiedserver HTTP/1.1 09:40:47.566772 Are-we-friendly question received 09:40:47.567027 Wrote request (93 bytes) input to log/25/server.input 09:40:47.567223 Identifying ourselves as friends 09:40:47.568062 Response sent (56 bytes) and written to log/25/server.response 09:40:47.568174 special request received, no persistency 09:40:47.568241 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file in490 surprise === End of file in490 === Start of file server.cmd Testnum 490 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind490 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind490 test 0483...[HTTP cookies with long expire dates] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind483 ../src/curl -q --output log/27/curl483.out --include --trace-ascii log/27/trace483 --trace-config all --trace-time http://127.0.0.1:42323/483 -c log/27/c483 > log/27/stdout483 2> log/27/stderr483 483: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 483 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind483 ../src/curl -q --output log/27/curl483.out --include --trace-ascii log/27/trace483 --trace-config all --trace-time http://127.0.0.1:42323/483 -c log/27/c483 > log/27/stdout483 2> log/27/stderr483 === End of file commands.log === Start of file http_server.log 09:40:47.420347 ====> Client connect 09:40:47.420819 accept_connection 3 returned 4 09:40:47.420997 accept_connection 3 returned 0 09:40:47.421659 Read 93 bytes 09:40:47.421838 Process 93 bytes request 09:40:47.421941 Got request: GET /verifiedserver HTTP/1.1 09:40:47.422053 Are-we-friendly question received 09:40:47.422363 Wrote request (93 bytes) input to log/27/server.input 09:40:47.422699 Identifying ourselves as friends 09:40:47.423417 Response sent (56 bytes) and written to log/27/server.response 09:40:47.423624 special request received, no persistency 09:40:47.423702 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 483 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind483 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind483 test 0492...[Two globbed HTTP PUTs to two globbed URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind492 ../src/curl -q --output log/28/curl492.out --include --trace-ascii log/28/trace492 --trace-config all --trace-time 'http://127.0.0.1:37545/{one,two}/' -T '{log/28/first492,log/28/second492}' -H "Testno: 492" > log/28/stdout492 2> log/28/stderr492 492: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 492 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind492 ../src/curl -q --output log/28/curl492.out --include --trace-ascii log/28/trace492 --trace-config all --trace-time 'http://127.0.0.1:37545/{one,two}/' -T '{log/28/first492,log/28/second492}' -H "Testno: 492" > log/28/stdout492 2> log/28/stderr492 === End of file commands.log === Start of file first492 first 492 contents === End of file first492 === Start of file http_server.log 09:40:47.707942 ====> Client connect 09:40:47.708284 accept_connection 3 returned 4 09:40:47.708647 accept_connection 3 returned 0 09:40:47.708895 Read 93 bytes 09:40:47.708995 Process 93 bytes request 09:40:47.709108 Got request: GET /verifiedserver HTTP/1.1 09:40:47.709207 Are-we-friendly question received 09:40:47.711810 Wrote request (93 bytes) input to log/28/server.input 09:40:47.712054 Identifying ourselves as friends 09:40:47.713192 Response sent (56 bytes) and written to log/28/server.response 09:40:47.713339 special request received, no persistency 09:40:47.713608 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file second492 second 492 contents === End of file second492 === Start of file server.cmd Testnum 492 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind492 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind492 test 0450...[Variable from file that is trimmed and URL encoded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind450 ../src/curl -q --output log/29/curl450.out --include --trace-ascii log/29/trace450 --trace-config all --trace-time http://127.0.0.1:36877/450 --variable what@log/29/junk --expand-data "{{what:trim:url}}" > log/29/stdout450 2> log/29/stderr450 450: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 450 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind450 ../src/curl -q --output log/29/curl450.out --include --trace-ascii log/29/trace450 --trace-config all --trace-time http://127.0.0.1:36877/450 --variable what@log/29/junk --expand-data "{{what:trim:url}}" > log/29/stdout450 2> log/29/stderr450 === End of file commands.log === Start of file http_server.log 09:40:47.110871 ====> Client connect 09:40:47.111214 accept_connection 3 returned 4 09:40:47.111395 accept_connection 3 returned 0 09:40:47.111654 Read 93 bytes 09:40:47.111775 Process 93 bytes request 09:40:47.111877 Got request: GET /verifiedserver HTTP/1.1 09:40:47.111972 Are-we-friendly question received 09:40:47.112214 Wrote request (93 bytes) input to log/29/server.input 09:40:47.112409 Identifying ourselves as friends 09:40:47.114615 Response sent (56 bytes) and written to log/29/server.response 09:40:47.114750 special request received, no persistency 09:40:47.114829 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file junk space with space === End of file junk === Start of file server.cmd Testnum 450 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind450 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind450 test 0482...[--remove-on-error with --continue-at] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind482 ../src/curl -q --trace-ascii log/31/trace482 --trace-config all --trace-time http://non-existing-host.haxx.se. --remove-on-error -C 1 -o "log/31/482" > log/31/stdout482 2> log/31/stderr482 482: stderr FAILED: --- log/31/check-expected 2025-07-18 09:40:49.452735178 +0000 +++ log/31/check-generated 2025-07-18 09:40:49.451603759 +0000 @@ -1,3 +0,0 @@ -curl: --continue-at is mutually exclusive with --remove-on-error[CR][LF] -curl: option -C: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/31/ dir after test 482 === Start of file check-expected curl: --continue-at is mutually exclusive with --remove-on-error[CR][LF] curl: option -C: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind482 ../src/curl -q --trace-ascii log/31/trace482 --trace-config all --trace-time http://non-existing-host.haxx.se. --remove-on-error -C 1 -o "log/31/482" > log/31/stdout482 2> log/31/stderr482 === End of file commands.log === Start of file http_server.log 09:40:47.534153 ====> Client connect 09:40:47.534842 accept_connection 3 returned 4 09:40:47.535099 accept_connection 3 returned 0 09:40:47.535999 Read 93 bytes 09:40:47.536149 Process 93 bytes request 09:40:47.536236 Got request: GET /verifiedserver HTTP/1.1 09:40:47.536323 Are-we-friendly question received 09:40:47.536645 Wrote request (93 bytes) input to log/31/server.input 09:40:47.536852 Identifying ourselves as friends 09:40:47.537552 Response sent (56 bytes) and written to log/31/server.response 09:40:47.537678 special request received, no persistency 09:40:47.537762 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 482 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind482 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind482 * starts no server test 0484...[Use --etag-compare and -save with more than one URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind484 ../src/curl -q --output log/33/curl484.out --include --trace-ascii log/33/trace484 --trace-config all --trace-time http://example.com/484 --etag-compare log/33/etag484 --etag-save log/33/etag484 --url http://example.net/fooo > log/33/stdout484 2> log/33/stderr484 484: stderr FAILED: --- log/33/check-expected 2025-07-18 09:40:49.510365209 +0000 +++ log/33/check-generated 2025-07-18 09:40:49.509603730 +0000 @@ -1,3 +0,0 @@ -curl: The etag options only work on a single URL[CR][LF] -curl: option --url: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/33/ dir after test 484 === Start of file check-expected curl: The etag options only work on a single URL[CR][LF] curl: option --url: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind484 ../src/curl -q --output log/33/curl484.out --include --trace-ascii log/33/trace484 --trace-config all --trace-time http://example.com/484 --etag-compare log/33/etag484 --etag-save log/33/etag484 --url http://example.net/fooo > log/33/stdout484 2> log/33/stderr484 === End of file commands.log === Start of file server.cmd Testnum 484 === End of file server.cmd === Start of file valgrind484 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind484 test 0486...[.netrc with redirect and "default" with no password or login] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind486 ../src/curl -q --output log/35/curl486.out --include --trace-ascii log/35/trace486 --trace-config all --trace-time --netrc --netrc-file log/35/netrc486 -L -x http://127.0.0.1:43179/ http://a.com/ > log/35/stdout486 2> log/35/stderr486 486: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 486 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind486 ../src/curl -q --output log/35/curl486.out --include --trace-ascii log/35/trace486 --trace-config all --trace-time --netrc --netrc-file log/35/netrc486 -L -x http://127.0.0.1:43179/ http://a.com/ > log/35/stdout486 2> log/35/stderr486 === End of file commands.log === Start of file http_server.log 09:40:47.396577 ====> Client connect 09:40:47.396940 accept_connection 3 returned 4 09:40:47.397129 accept_connection 3 returned 0 09:40:47.397269 Read 93 bytes 09:40:47.397358 Process 93 bytes request 09:40:47.397512 Got request: GET /verifiedserver HTTP/1.1 09:40:47.397621 Are-we-friendly question received 09:40:47.397872 Wrote request (93 bytes) input to log/35/server.input 09:40:47.398067 Identifying ourselves as friends 09:40:47.398849 Response sent (56 bytes) and written to log/35/server.response 09:40:47.398962 special request received, no persistency 09:40:47.399025 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file netrc486 machine a.com login alice password alicespassword default === End of file netrc486 === Start of file server.cmd Testnum 486 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind486 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind486 test 0432...[Use -K with --next and --config from within] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind432 ../src/curl -q --output log/36/curl432.out --include --trace-ascii log/36/trace432 --trace-config all --trace-time -K log/36/config432 > log/36/stdout432 2> log/36/stderr432 432: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 432 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind432 ../src/curl -q --output log/36/curl432.out --include --trace-ascii log/36/trace432 --trace-config all --trace-time -K log/36/config432 > log/36/stdout432 2> log/36/stderr432 === End of file commands.log === Start of file config432 --next url = 127.0.0.1:44255/4320001 header = "a: a" data = "a" --next url = 127.0.0.1:44255/4320002 header = "b: b" data = "b" config = "log/36/config432-c" === End of file config432 === Start of file config432-c --next url = 127.0.0.1:44255/4320003 header = "c: c" data = "c" === End of file config432-c === Start of file http_server.log 09:40:46.734942 ====> Client connect 09:40:46.735279 accept_connection 3 returned 4 09:40:46.735644 accept_connection 3 returned 0 09:40:46.742060 Read 93 bytes 09:40:46.742223 Process 93 bytes request 09:40:46.742318 Got request: GET /verifiedserver HTTP/1.1 09:40:46.742402 Are-we-friendly question received 09:40:46.742867 Wrote request (93 bytes) input to log/36/server.input 09:40:46.743111 Identifying ourselves as friends 09:40:46.745533 Response sent (56 bytes) and written to log/36/server.response 09:40:46.745727 special request received, no persistency 09:40:46.745893 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 432 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind432 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind432 test 0488...[Download two URLs provided on stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind488 ../src/curl -q --output log/37/curl488.out --include --trace-ascii log/37/trace488 --trace-config all --trace-time --output-dir log/37 --url @- log/37/stdout488 2> log/37/stderr488 488: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 488 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind488 ../src/curl -q --output log/37/curl488.out --include --trace-ascii log/37/trace488 --trace-config all --trace-time --output-dir log/37 --url @- log/37/stdout488 2> log/37/stderr488 === End of file commands.log === Start of file http_server.log 09:40:47.602128 ====> Client connect 09:40:47.602619 accept_connection 3 returned 4 09:40:47.602831 accept_connection 3 returned 0 09:40:47.610582 Read 93 bytes 09:40:47.610764 Process 93 bytes request 09:40:47.610856 Got request: GET /verifiedserver HTTP/1.1 09:40:47.610944 Are-we-friendly question received 09:40:47.611191 Wrote request (93 bytes) input to log/37/server.input 09:40:47.611398 Identifying ourselves as friends 09:40:47.612279 Response sent (56 bytes) and written to log/37/server.response 09:40:47.612392 special request received, no persistency 09:40:47.612620 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 488 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file stdin-for-488 http://127.0.0.1:37551/a http://127.0.0.1:37551/b === End of file stdin-for-488 === Start of file valgrind488 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind488 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind494 ../src/curl -q --output log/14/curl494.out --include --trace-ascii log/14/trace494 --trace-config all --trace-time --netrc --netrc-file log/14/netrc494 ftp://127.0.0.1:36271/494 > log/14/stdout494 2> log/14/stderr494 test 0469...[warn about Unicode quote character] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind469 ../src/curl -q --output log/38/curl469.out --include --trace-ascii log/38/trace469 --trace-config all --trace-time -H “host: 127.0.0.1:33511/“ -s > log/38/stdout469 2> log/38/stderr469 469: stderr FAILED: --- log/38/check-expected 2025-07-18 09:40:49.599510704 +0000 +++ log/38/check-generated 2025-07-18 09:40:49.597603685 +0000 @@ -1,2 +0,0 @@ -Warning: The argument '%e2%80%9chost:' starts with a Unicode quote where maybe an [LF] -Warning: ASCII " was intended?[LF] == Contents of files in the log/38/ dir after test 469 === Start of file check-expected Warning: The argument '%e2%80%9chost:' starts with a Unicode quote where maybe an [LF] Warning: ASCII " was intended?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind469 ../src/curl -q --output log/38/curl469.out --include --trace-ascii log/38/trace469 --trace-config all --trace-time -H “host: 127.0.0.1:33511/“ -s > log/38/stdout469 2> log/38/stderr469 === End of file commands.log === Start of file http_server.log 09:40:47.210975 ====> Client connect 09:40:47.211339 accept_connection 3 returned 4 09:40:47.211646 accept_connection 3 returned 0 09:40:47.211808 Read 93 bytes 09:40:47.211906 Process 93 bytes request 09:40:47.212010 Got request: GET /verifiedserver HTTP/1.1 09:40:47.212098 Are-we-friendly question received 09:40:47.212329 Wrote request (93 bytes) input to log/38/server.input 09:40:47.212610 Identifying ourselves as friends 09:40:47.213316 Response sent (56 bytes) and written to log/38/server.response 09:40:47.213421 special request received, no persistency 09:40:47.213602 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 469 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind469 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind469 test 0489...[Download two URLs provided in a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind489 ../src/curl -q --output log/40/curl489.out --include --trace-ascii log/40/trace489 --trace-config all --trace-time --output-dir log/40 --url @log/40/urls > log/40/stdout489 2> log/40/stderr489 489: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 489 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind489 ../src/curl -q --output log/40/curl489.out --include --trace-ascii log/40/trace489 --trace-config all --trace-time --output-dir log/40 --url @log/40/urls > log/40/stdout489 2> log/40/stderr489 === End of file commands.log === Start of file http_server.log 09:40:47.503012 ====> Client connect 09:40:47.503375 accept_connection 3 returned 4 09:40:47.503753 accept_connection 3 returned 0 09:40:47.503900 Read 93 bytes 09:40:47.503977 Process 93 bytes request 09:40:47.504056 Got request: GET /verifiedserver HTTP/1.1 09:40:47.504131 Are-we-friendly question received 09:40:47.504338 Wrote request (93 bytes) input to log/40/server.input 09:40:47.504599 Identifying ourselves as friends 09:40:47.505294 Response sent (56 bytes) and written to log/40/server.response 09:40:47.505397 special request received, no persistency 09:40:47.505552 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd Testnum 489 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file urls http://127.0.0.1:42139/a http://127.0.0.1:42139/b === End of file urls === Start of file valgrind489 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind489 test 0461...[disable Host: when specified as lower case] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind461 ../src/curl -q --output log/41/curl461.out --include --trace-ascii log/41/trace461 --trace-config all --trace-time http://127.0.0.1:35093/461 -H host: > log/41/stdout461 2> log/41/stderr461 461: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 461 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind461 ../src/curl -q --output log/41/curl461.out --include --trace-ascii log/41/trace461 --trace-config all --trace-time http://127.0.0.1:35093/461 -H host: > log/41/stdout461 2> log/41/stderr461 === End of file commands.log === Start of file http_server.log 09:40:47.214282 ====> Client connect 09:40:47.214766 accept_connection 3 returned 4 09:40:47.214945 accept_connection 3 returned 0 09:40:47.215786 Read 93 bytes 09:40:47.215927 Process 93 bytes request 09:40:47.216019 Got request: GET /verifiedserver HTTP/1.1 09:40:47.218277 Are-we-friendly question received 09:40:47.218673 Wrote request (93 bytes) input to log/41/server.input 09:40:47.218866 Identifying ourselves as friends 09:40:47.222820 Response sent (56 bytes) and written to log/41/server.response 09:40:47.222961 special request received, no persistency 09:40:47.223044 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 461 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind461 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind461 test 0478...[.netrc with multiple accounts for same host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind478 ../src/curl -q --output log/42/curl478.out --include --trace-ascii log/42/trace478 --trace-config all --trace-time --netrc --netrc-file log/42/netrc478 -x http://127.0.0.1:42819/ http://debbie@github.com/ > log/42/stdout478 2> log/42/stderr478 478: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 478 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind478 ../src/curl -q --output log/42/curl478.out --include --trace-ascii log/42/trace478 --trace-config all --trace-time --netrc --netrc-file log/42/netrc478 -x http://127.0.0.1:42819/ http://debbie@github.com/ > log/42/stdout478 2> log/42/stderr478 === End of file commands.log === Start of file http_server.log 09:40:47.335820 ====> Client connect 09:40:47.336092 accept_connection 3 returned 4 09:40:47.336229 accept_connection 3 returned 0 09:40:47.336926 Read 93 bytes 09:40:47.337056 Process 93 bytes request 09:40:47.337134 Got request: GET /verifiedserver HTTP/1.1 09:40:47.337206 Are-we-friendly question received 09:40:47.337420 Wrote request (93 bytes) input to log/42/server.input 09:40:47.337706 Identifying ourselves as friends 09:40:47.338256 Response sent (56 bytes) and written to log/42/server.response 09:40:47.338418 special request received, no persistency 09:40:47.338602 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file netrc478 machine github.com password weird password firstone login daniel machine github.com machine github.com login debbie machine github.com password weird password "second\r" login debbie === End of file netrc478 === Start of file server.cmd Testnum 478 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind478 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind478 test 0431...[Two -K uses with --next and then one on cmdline] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind431 ../src/curl -q --output log/46/curl431.out --include --trace-ascii log/46/trace431 --trace-config all --trace-time -K log/46/config431-a -K log/46/config431-b --next -d c 127.0.0.1:46523/4310003 -H "c: c" > log/46/stdout431 2> log/46/stderr431 431: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 431 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind431 ../src/curl -q --output log/46/curl431.out --include --trace-ascii log/46/trace431 --trace-config all --trace-time -K log/46/config431-a -K log/46/config431-b --next -d c 127.0.0.1:46523/4310003 -H "c: c" > log/46/stdout431 2> log/46/stderr431 === End of file commands.log === Start of file config431-a --next url = 127.0.0.1:46523/4310001 header = "a: a" data = "a" === End of file config431-a === Start of file config431-b --next url = 127.0.0.1:46523/4310002 header = "b: b" data = "b" === End of file config431-b === Start of file http_server.log 09:40:46.754035 ====> Client connect 09:40:46.754681 accept_connection 3 returned 4 09:40:46.755062 accept_connection 3 returned 0 09:40:46.755285 Read 93 bytes 09:40:46.755383 Process 93 bytes request 09:40:46.755588 Got request: GET /verifiedserver HTTP/1.1 09:40:46.755706 Are-we-friendly question received 09:40:46.755965 Wrote request (93 bytes) input to log/46/server.input 09:40:46.756172 Identifying ourselves as friends 09:40:46.766525 Response sent (56 bytes) and written to log/46/server.response 09:40:46.766687 special request received, no persistency 09:40:46.766766 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 431 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind431 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind431 test 0468...[set -w in config, then reset -w to blank on cmdline] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind468 ../src/curl -q --trace-ascii log/47/trace468 --trace-config all --trace-time http://127.0.0.1:41103/468 -K log/47/cmd468 -w "" > log/47/stdout468 2> log/47/stderr468 468: stdout FAILED: --- log/47/check-expected 2025-07-18 09:40:49.701584952 +0000 +++ log/47/check-generated 2025-07-18 09:40:49.700603633 +0000 @@ -1 +0,0 @@ --foo-[LF] == Contents of files in the log/47/ dir after test 468 === Start of file check-expected -foo-[LF] === End of file check-expected === Start of file cmd468 -w "output\n" === End of file cmd468 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind468 ../src/curl -q --trace-ascii log/47/trace468 --trace-config all --trace-time http://127.0.0.1:41103/468 -K log/47/cmd468 -w "" > log/47/stdout468 2> log/47/stderr468 === End of file commands.log === Start of file http_server.log 09:40:47.239849 ====> Client connect 09:40:47.240290 accept_connection 3 returned 4 09:40:47.240612 accept_connection 3 returned 0 09:40:47.240797 Read 93 bytes 09:40:47.240901 Process 93 bytes request 09:40:47.240993 Got request: GET /verifiedserver HTTP/1.1 09:40:47.241078 Are-we-friendly question received 09:40:47.241296 Wrote request (93 bytes) input to log/47/server.input 09:40:47.241666 Identifying ourselves as friends 09:40:47.245721 Response sent (56 bytes) and written to log/47/server.response 09:40:47.245845 special request received, no persistency 09:40:47.245918 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 468 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind468 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind468 setenv FUNVALUE = contents setenv VALUE2 = curl setenv BLANK = test 0449...[Environment variables in config file w/o [expand]] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind449 ../src/curl -q --output log/48/curl449.out --include --trace-ascii log/48/trace449 --trace-config all --trace-time http://127.0.0.1:46339/449 -K log/48/cmd > log/48/stdout449 2> log/48/stderr449 449: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 449 === Start of file cmd -d 1{{FUNVALUE}}2{{VALUE2}}3{{CURL_NOT_SET}}4{{BLANK}}5\{{verbatim}}6{{not.good}}7{{}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind449 ../src/curl -q --output log/48/curl449.out --include --trace-ascii log/48/trace449 --trace-config all --trace-time http://127.0.0.1:46339/449 -K log/48/cmd > log/48/stdout449 2> log/48/stderr449 === End of file commands.log === Start of file http_server.log 09:40:46.889808 ====> Client connect 09:40:46.890112 accept_connection 3 returned 4 09:40:46.890290 accept_connection 3 returned 0 09:40:46.890994 Read 93 bytes 09:40:46.891146 Process 93 bytes request 09:40:46.891254 Got request: GET /verifiedserver HTTP/1.1 09:40:46.891385 Are-we-friendly question received 09:40:46.891770 Wrote request (93 bytes) input to log/48/server.input 09:40:46.892002 Identifying ourselves as friends 09:40:46.892711 Response sent (56 bytes) and written to log/48/server.response 09:40:46.892833 special request received, no persistency 09:40:46.892914 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 449 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind449 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind449 test 0430...[Three -K uses with --next and --data in each] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind430 ../src/curl -q --output log/49/curl430.out --include --trace-ascii log/49/trace430 --trace-config all --trace-time -K log/49/config430-a -K log/49/config430-b -K log/49/config430-c > log/49/stdout430 2> log/49/stderr430 430: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 430 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind430 ../src/curl -q --output log/49/curl430.out --include --trace-ascii log/49/trace430 --trace-config all --trace-time -K log/49/config430-a -K log/49/config430-b -K log/49/config430-c > log/49/stdout430 2> log/49/stderr430 === End of file commands.log === Start of file config430-a --next url = 127.0.0.1:42667/4300001 header = "a: a" data = "a" === End of file config430-a === Start of file config430-b --next url = 127.0.0.1:42667/4300002 header = "b: b" data = "b" === End of file config430-b === Start of file config430-c --next url = 127.0.0.1:42667/4300003 header = "c: c" data = "c" === End of file config430-c === Start of file http_server.log 09:40:46.629894 ====> Client connect 09:40:46.630212 accept_connection 3 returned 4 09:40:46.630389 accept_connection 3 returned 0 09:40:46.630727 Read 93 bytes 09:40:46.630838 Process 93 bytes request 09:40:46.630927 Got request: GET /verifiedserver HTTP/1.1 09:40:46.631009 Are-we-friendly question received 09:40:46.631245 Wrote request (93 bytes) input to log/49/server.input 09:40:46.631571 Identifying ourselves as friends 09:40:46.635994 Response sent (56 bytes) and written to log/49/server.response 09:40:46.636131 special request received, no persistency 09:40:46.636221 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 430 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind430 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind430 test 0441...[HSTS with no t-dot host name in URL but t-dot in file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind441 ../src/curl -q --include --trace-ascii log/51/trace441 --trace-config all --trace-time -x http://127.0.0.1:34903 http://this.hsts.example/441 --hsts log/51/input441 -w '%{url_effective}\n' > log/51/stdout441 2> log/51/stderr441 441: stdout FAILED: --- log/51/check-expected 2025-07-18 09:40:49.798414123 +0000 +++ log/51/check-generated 2025-07-18 09:40:49.797603584 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 403 not OK at all[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] -https://this.hsts.example/441[LF] == Contents of files in the log/51/ dir after test 441 === Start of file check-expected HTTP/1.1 403 not OK at all[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] https://this.hsts.example/441[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind441 ../src/curl -q --include --trace-ascii log/51/trace441 --trace-config all --trace-time -x http://127.0.0.1:34903 http://this.hsts.example/441 --hsts log/51/input441 -w '%{url_effective}\n' > log/51/stdout441 2> log/51/stderr441 === End of file commands.log === Start of file http_server.log 09:40:46.981151 ====> Client connect 09:40:46.981577 accept_connection 3 returned 4 09:40:46.981768 accept_connection 3 returned 0 09:40:46.981901 Read 93 bytes 09:40:46.981998 Process 93 bytes request 09:40:46.982097 Got request: GET /verifiedserver HTTP/1.1 09:40:46.982178 Are-we-friendly question received 09:40:46.982394 Wrote request (93 bytes) input to log/51/server.input 09:40:46.982664 Identifying ourselves as friends 09:40:46.984405 Response sent (56 bytes) and written to log/51/server.response 09:40:46.987659 special request received, no persistency 09:40:46.987748 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file input441 this.hsts.example. "99991001 04:47:41" === End of file input441 === Start of file server.cmd Testnum 441 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind441 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind441 test 0481...[--no-clobber with --continue-at] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind481 ../src/curl -q --trace-ascii log/52/trace481 --trace-config all --trace-time http://127.0.0.1:40089/481 --no-clobber -C 1 -o "log/52/481" > log/52/stdout481 2> log/52/stderr481 481: stderr FAILED: --- log/52/check-expected 2025-07-18 09:40:49.864232670 +0000 +++ log/52/check-generated 2025-07-18 09:40:49.862603551 +0000 @@ -1,3 +0,0 @@ -curl: --continue-at is mutually exclusive with --no-clobber[CR][LF] -curl: option -C: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/52/ dir after test 481 === Start of file 481 initial content === End of file 481 === Start of file check-expected curl: --continue-at is mutually exclusive with --no-clobber[CR][LF] curl: option -C: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind481 ../src/curl -q --trace-ascii log/52/trace481 --trace-config all --trace-time http://127.0.0.1:40089/481 --no-clobber -C 1 -o "log/52/481" > log/52/stdout481 2> log/52/stderr481 === End of file commands.log === Start of file http_server.log 09:40:47.501954 ====> Client connect 09:40:47.502335 accept_connection 3 returned 4 09:40:47.502689 accept_connection 3 returned 0 09:40:47.502854 Read 93 bytes 09:40:47.502952 Process 93 bytes request 09:40:47.503043 Got request: GET /verifiedserver HTTP/1.1 09:40:47.503133 Are-we-friendly question received 09:40:47.503357 Wrote request (93 bytes) input to log/52/server.input 09:40:47.503625 Identifying ourselves as friends 09:40:47.504376 Response sent (56 bytes) and written to log/52/server.response 09:40:47.504554 special request received, no persistency 09:40:47.504642 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 481 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind481 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind481 setenv FUNVALUE = contents setenv VALUE2 = curl setenv BLANK = test 0448...[Environment variables within config file, unbalanced braces] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind448 ../src/curl -q --output log/55/curl448.out --include --trace-ascii log/55/trace448 --trace-config all --trace-time http://127.0.0.1:33071/448 -K log/55/cmd > log/55/stdout448 2> log/55/stderr448 448: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 448 === Start of file cmd --variable %FUNVALUE --variable %VALUE2 --expand-data 1{{FUNVALUE}}2{{VALUE2}}3{{curl_NOT_SET}}4{{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA}}5{{broken === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind448 ../src/curl -q --output log/55/curl448.out --include --trace-ascii log/55/trace448 --trace-config all --trace-time http://127.0.0.1:33071/448 -K log/55/cmd > log/55/stdout448 2> log/55/stderr448 === End of file commands.log === Start of file http_server.log 09:40:46.842837 ====> Client connect 09:40:46.843133 accept_connection 3 returned 4 09:40:46.843296 accept_connection 3 returned 0 09:40:46.844112 Read 93 bytes 09:40:46.844243 Process 93 bytes request 09:40:46.844329 Got request: GET /verifiedserver HTTP/1.1 09:40:46.844408 Are-we-friendly question received 09:40:46.844816 Wrote request (93 bytes) input to log/55/server.input 09:40:46.845012 Identifying ourselves as friends 09:40:46.850695 Response sent (56 bytes) and written to log/55/server.response 09:40:46.850808 special request received, no persistency 09:40:46.850881 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 448 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind448 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind448 test 0443...[Cookie header in request no longer than 8K] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind443 ../src/curl -q --output log/59/curl443.out --include --trace-ascii log/59/trace443 --trace-config all --trace-time http://attack.invalid:43695/a/b/443 -b log/59/cookie443 --resolve attack.invalid:43695:127.0.0.1 -L > log/59/stdout443 2> log/59/stderr443 443: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 443 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind443 ../src/curl -q --output log/59/curl443.out --include --trace-ascii log/59/trace443 --trace-config all --trace-time http://attack.invalid:43695/a/b/443 -b log/59/cookie443 --resolve attack.invalid:43695:127.0.0.1 -L > log/59/stdout443 2> log/59/stderr443 === End of file commands.log === Start of file cookie443 attack.invalid TRUE / FALSE 0 huge-1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-1 attack.invalid TRUE / FALSE 0 huge-2 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-2 attack.invalid TRUE / FALSE 0 huge-3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-3 attack.invalid TRUE / FALSE 0 huge-4 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-4 attack.invalid TRUE / FALSE 0 huge-5 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-5 attack.invalid TRUE / FALSE 0 huge-6 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-6 attack.invalid TRUE / FALSE 0 huge-7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-7 attack.invalid TRUE / FALSE 0 huge-8 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-8 attack.invalid TRUE / FALSE 0 huge-9 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-9 attack.invalid TRUE / FALSE 0 huge-10 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10 attack.invalid TRUE / FALSE 0 huge-11 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-11 attack.invalid TRUE / FALSE 0 huge-12 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-12 attack.invalid TRUE / FALSE 0 huge-13 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-13 attack.invalid TRUE / FALSE 0 huge-14 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-14 attack.invalid TRUE / FALSE 0 huge-15 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-15 attack.invalid TRUE / FALSE 0 huge-16 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-16 attack.invalid TRUE / FALSE 0 huge-17 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-17 attack.invalid TRUE / FALSE 0 huge-18 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-18 attack.invalid TRUE / FALSE 0 huge-19 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-19 attack.invalid TRUE / FALSE 0 huge-20 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-20 === End of file cookie443 === Start of file http_server.log 09:40:47.091716 ====> Client connect 09:40:47.091983 accept_connection 3 returned 4 09:40:47.092123 accept_connection 3 returned 0 09:40:47.098570 Read 93 bytes 09:40:47.098725 Process 93 bytes request 09:40:47.098801 Got request: GET /verifiedserver HTTP/1.1 09:40:47.098863 Are-we-friendly question received 09:40:47.099074 Wrote request (93 bytes) input to log/59/server.input 09:40:47.099240 Identifying ourselves as friends 09:40:47.100201 Response sent (56 bytes) and written to log/59/server.response 09:40:47.100309 special request received, no persistency 09:40:47.100369 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd Testnum 443 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind443 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind443 test 0487...[Variable using 64dec with bad base64] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind487 ../src/curl -q --output log/60/curl487.out --include --trace-ascii log/60/trace487 --trace-config all --trace-time --variable what=not-base64-data --expand-url "http://127.0.0.1:38843/{{what:64dec}}/487" -g > log/60/stdout487 2> log/60/stderr487 487: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 487 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind487 ../src/curl -q --output log/60/curl487.out --include --trace-ascii log/60/trace487 --trace-config all --trace-time --variable what=not-base64-data --expand-url "http://127.0.0.1:38843/{{what:64dec}}/487" -g > log/60/stdout487 2> log/60/stderr487 === End of file commands.log === Start of file http_server.log 09:40:47.435908 ====> Client connect 09:40:47.436191 accept_connection 3 returned 4 09:40:47.436340 accept_connection 3 returned 0 09:40:47.436590 Read 93 bytes 09:40:47.436764 Process 93 bytes request 09:40:47.436863 Got request: GET /verifiedserver HTTP/1.1 09:40:47.436940 Are-we-friendly question received 09:40:47.437160 Wrote request (93 bytes) input to log/60/server.input 09:40:47.437340 Identifying ourselves as friends 09:40:47.438217 Response sent (56 bytes) and written to log/60/server.response 09:40:47.438327 special request received, no persistency 09:40:47.438394 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 487 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind487 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind487 test 0493...[HSTS and %{url_effective} after upgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind493 ../src/curl -q --include --trace-ascii log/6/trace493 --trace-config all --trace-time -x http://127.0.0.1:37181 http://this.hsts.example/493 --hsts log/6/input493 -w '%{url_effective}\n' > log/6/stdout493 2> log/6/stderr493 493: stdout FAILED: --- log/6/check-expected 2025-07-18 09:40:49.961645521 +0000 +++ log/6/check-generated 2025-07-18 09:40:49.960603501 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 403 not OK at all[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] -https://this.hsts.example/493[LF] == Contents of files in the log/6/ dir after test 493 === Start of file check-expected HTTP/1.1 403 not OK at all[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] https://this.hsts.example/493[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind493 ../src/curl -q --include --trace-ascii log/6/trace493 --trace-config all --trace-time -x http://127.0.0.1:37181 http://this.hsts.example/493 --hsts log/6/input493 -w '%{url_effective}\n' > log/6/stdout493 2> log/6/stderr493 === End of file commands.log === Start of file http_server.log 09:40:47.937630 ====> Client connect 09:40:47.937985 accept_connection 3 returned 4 09:40:47.938160 accept_connection 3 returned 0 09:40:47.938306 Read 93 bytes 09:40:47.938404 Process 93 bytes request 09:40:47.938605 Got request: GET /verifiedserver HTTP/1.1 09:40:47.938706 Are-we-friendly question received 09:40:47.938935 Wrote request (93 bytes) input to log/6/server.input 09:40:47.939121 Identifying ourselves as friends 09:40:47.941040 Response sent (56 bytes) and written to log/6/server.response 09:40:47.941162 special request received, no persistency 09:40:47.941228 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file input493 .hsts.example "99991001 04:47:41" === End of file input493 === Start of file server.cmd Testnum 493 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind493 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind493 test 0494...[skip 'macdef' when parsing netrc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind494 ../src/curl -q --output log/14/curl494.out --include --trace-ascii log/14/trace494 --trace-config all --trace-time --netrc --netrc-file log/14/netrc494 ftp://127.0.0.1:36271/494 > log/14/stdout494 2> log/14/stderr494 494: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 494 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind494 ../src/curl -q --output log/14/curl494.out --include --trace-ascii log/14/trace494 --trace-config all --trace-time --netrc --netrc-file log/14/netrc494 ftp://127.0.0.1:36271/494 > log/14/stdout494 2> log/14/stderr494 === End of file commands.log === Start of file ftp_server.log 09:40:47.886317 ====> Client connect 09:40:47.887732 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:47.891603 < "USER anonymous" 09:40:47.893815 > "331 We are happy you popped in![CR][LF]" 09:40:47.896903 < "PASS ftp@example.com" 09:40:47.897355 > "230 Welcome you silly person[CR][LF]" 09:40:47.899674 < "PWD" 09:40:47.900218 > "257 "/" is current directory[CR][LF]" 09:40:47.902678 < "EPSV" 09:40:47.903085 ====> Passive DATA channel requested by client 09:40:47.903302 DATA sockfilt for passive data channel starting... 09:40:47.918520 DATA sockfilt for passive data channel started (pid 99105) 09:40:47.919502 DATA sockfilt for passive data channel listens on port 42557 09:40:47.920024 > "229 Entering Passive Mode (|||42557|)[LF]" 09:40:47.920246 Client has been notified that DATA conn will be accepted on port 42557 09:40:47.922211 Client connects to port 42557 09:40:47.922855 ====> Client established passive DATA connection on port 42557 09:40:47.923843 < "TYPE I" 09:40:47.924394 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:47.926424 < "SIZE verifiedserver" 09:40:47.927920 > "213 17[CR][LF]" 09:40:47.930224 < "RETR verifiedserver" 09:40:47.931051 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:47.931824 =====> Closing passive DATA connection... 09:40:47.932062 Server disconnects passive DATA connection 09:40:47.935972 Server disconnected passive DATA connection 09:40:47.936641 DATA sockfilt for passive data channel quits (pid 99105) 09:40:47.940340 DATA sockfilt for passive data channel quit (pid 99105) 09:40:47.940627 =====> Closed passive DATA connection 09:40:47.941038 > "226 File transfer complete[CR][LF]" 09:40:47.976587 < "QUIT" 09:40:47.977111 > "221 bye bye baby[CR][LF]" 09:40:47.982154 MAIN sockfilt said DISC 09:40:47.983149 ====> Client disconnected 09:40:47.983718 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:48.130040 ====> Client connect 09:40:48.141532 Received DATA (on stdin) 09:40:48.141723 > 160 bytes data, server => client 09:40:48.141828 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:48.141930 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:48.142010 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:48.145551 < 16 bytes data, client => server 09:40:48.145998 'USER anonymous\r\n' 09:40:48.146882 Received DATA (on stdin) 09:40:48.147041 > 33 bytes data, server => client 09:40:48.148046 '331 We are happy you popped in!\r\n' 09:40:48.149622 < 22 bytes data, client => server 09:40:48.149798 'PASS ftp@example.com\r\n' 09:40:48.151434 Received DATA (on stdin) 09:40:48.151658 > 30 bytes data, server => client 09:40:48.151791 '230 Welcome you silly person\r\n' 09:40:48.152523 < 5 bytes data, client => server 09:40:48.152683 'PWD\r\n' 09:40:48.154426 Received DATA (on stdin) 09:40:48.154679 > 30 bytes data, server => client 09:40:48.154785 '257 "/" is current directory\r\n' 09:40:48.155627 < 6 bytes data, client => server 09:40:48.155765 'EPSV\r\n' 09:40:48.173711 Received DATA (on stdin) 09:40:48.173884 > 38 bytes data, server => client 09:40:48.173968 '229 Entering Passive Mode (|||42557|)\n' 09:40:48.175578 < 8 bytes data, client => server 09:40:48.175696 'TYPE I\r\n' 09:40:48.178386 Received DATA (on stdin) 09:40:48.178607 > 33 bytes data, server => client 09:40:48.178713 '200 I modify TYPE as you wanted\r\n' 09:40:48.179340 < 21 bytes data, client => server 09:40:48.179546 'SIZE verifiedserver\r\n' 09:40:48.180562 Received DATA (on stdin) 09:40:48.180711 > 8 bytes data, server => client 09:40:48.180883 '213 17\r\n' 09:40:48.182319 < 21 bytes data, client => server 09:40:48.182553 'RETR verifiedserver\r\n' 09:40:48.184321 Received DATA (on stdin) 09:40:48.184526 > 29 bytes data, server => client 09:40:48.185978 '150 Binary junk (17 bytes).\r\n' 09:40:48.195259 Received DATA (on stdin) 09:40:48.195620 > 28 bytes data, server => client 09:40:48.195804 '226 File transfer complete\r\n' 09:40:48.228179 < 6 bytes data, client => server 09:40:48.228343 'QUIT\r\n' 09:40:48.231552 Received DATA (on stdin) 09:40:48.231768 > 18 bytes data, server => client 09:40:48.231865 '221 bye bye baby\r\n' 09:40:48.235556 ====> Client disconnect 09:40:48.236224 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:47.170889 Running IPv4 version 09:40:47.171374 Listening on port 42557 09:40:47.171814 Wrote pid 99105 to log/14/server/ftp_sockdata.pid 09:40:47.171973 Received PING (on stdin) 09:40:47.172729 Received PORT (on stdin) 09:40:47.175196 ====> Client connect 09:40:47.186419 Received DATA (on stdin) 09:40:47.186833 > 17 bytes data, server => client 09:40:47.186973 'WE ROOLZ: 79507\r\n' 09:40:47.187335 Received DISC (on stdin) 09:40:47.189006 ====> Client forcibly disconnected 09:40:47.190782 Received QUIT (on stdin) 09:40:47.191147 quits 09:40:47.192195 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc494 macdef testmacro bin cd default cd login put login.bin cd .. cd password put password.bin quit machine 127.0.0.1 login user1 password passwd1 === End of file netrc494 === Start of file server.cmd Testnum 494 === End of file server.cmd === Start of file valgrind494 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind494 test 0475...[FTP PASV upload ASCII file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind475 ../src/curl -q --output log/26/curl475.out --include --trace-ascii log/26/trace475 --trace-config all --trace-time "ftp://127.0.0.1:39753/475;type=a" -T log/26/test475.txt > log/26/stdout475 2> log/26/stderr475 475: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 475 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind475 ../src/curl -q --output log/26/curl475.out --include --trace-ascii log/26/trace475 --trace-config all --trace-time "ftp://127.0.0.1:39753/475;type=a" -T log/26/test475.txt > log/26/stdout475 2> log/26/stderr475 === End of file commands.log === Start of file ftp_server.log 09:40:46.954464 ====> Client connect 09:40:46.958510 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:46.962428 < "USER anonymous" 09:40:46.962916 > "331 We are happy you popped in![CR][LF]" 09:40:46.965003 < "PASS ftp@example.com" 09:40:46.965732 > "230 Welcome you silly person[CR][LF]" 09:40:46.967644 < "PWD" 09:40:46.968630 > "257 "/" is current directory[CR][LF]" 09:40:46.970652 < "EPSV" 09:40:46.971067 ====> Passive DATA channel requested by client 09:40:46.971279 DATA sockfilt for passive data channel starting... 09:40:47.009502 DATA sockfilt for passive data channel started (pid 97146) 09:40:47.010545 DATA sockfilt for passive data channel listens on port 40447 09:40:47.011135 > "229 Entering Passive Mode (|||40447|)[LF]" 09:40:47.011404 Client has been notified that DATA conn will be accepted on port 40447 09:40:47.013476 Client connects to port 40447 09:40:47.013844 ====> Client established passive DATA connection on port 40447 09:40:47.014627 < "TYPE I" 09:40:47.015100 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:47.019668 < "SIZE verifiedserver" 09:40:47.020939 > "213 17[CR][LF]" 09:40:47.023288 < "RETR verifiedserver" 09:40:47.024865 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:47.026481 =====> Closing passive DATA connection... 09:40:47.026693 Server disconnects passive DATA connection 09:40:47.028090 Fancy that; client wants to DISC, too 09:40:47.029280 Server disconnected passive DATA connection 09:40:47.029571 DATA sockfilt for passive data channel quits (pid 97146) 09:40:47.031736 DATA sockfilt for passive data channel quit (pid 97146) 09:40:47.032061 =====> Closed passive DATA connection 09:40:47.032703 > "226 File transfer complete[CR][LF]" 09:40:47.068047 < "QUIT" 09:40:47.069237 > "221 bye bye baby[CR][LF]" 09:40:47.073240 MAIN sockfilt said DISC 09:40:47.073553 ====> Client disconnected 09:40:47.074207 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:47.207614 ====> Client connect 09:40:47.210821 Received DATA (on stdin) 09:40:47.211052 > 160 bytes data, server => client 09:40:47.211303 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:47.211434 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:47.211705 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:47.213536 < 16 bytes data, client => server 09:40:47.213680 'USER anonymous\r\n' 09:40:47.216947 Received DATA (on stdin) 09:40:47.217081 > 33 bytes data, server => client 09:40:47.217170 '331 We are happy you popped in!\r\n' 09:40:47.217806 < 22 bytes data, client => server 09:40:47.217948 'PASS ftp@example.com\r\n' 09:40:47.219071 Received DATA (on stdin) 09:40:47.219214 > 30 bytes data, server => client 09:40:47.219839 '230 Welcome you silly person\r\n' 09:40:47.220623 < 5 bytes data, client => server 09:40:47.220768 'PWD\r\n' 09:40:47.221927 Received DATA (on stdin) 09:40:47.222126 > 30 bytes data, server => client 09:40:47.222816 '257 "/" is current directory\r\n' 09:40:47.223616 < 6 bytes data, client => server 09:40:47.223776 'EPSV\r\n' 09:40:47.264847 Received DATA (on stdin) 09:40:47.265020 > 38 bytes data, server => client 09:40:47.265100 '229 Entering Passive Mode (|||40447|)\n' 09:40:47.266878 < 8 bytes data, client => server 09:40:47.267001 'TYPE I\r\n' 09:40:47.269096 Received DATA (on stdin) 09:40:47.269228 > 33 bytes data, server => client 09:40:47.269321 '200 I modify TYPE as you wanted\r\n' 09:40:47.272614 < 21 bytes data, client => server 09:40:47.272771 'SIZE verifiedserver\r\n' 09:40:47.273869 Received DATA (on stdin) 09:40:47.274015 > 8 bytes data, server => client 09:40:47.274181 '213 17\r\n' 09:40:47.275276 < 21 bytes data, client => server 09:40:47.275419 'RETR verifiedserver\r\n' 09:40:47.277385 Received DATA (on stdin) 09:40:47.277602 > 29 bytes data, server => client 09:40:47.277918 '150 Binary junk (17 bytes).\r\n' 09:40:47.286059 Received DATA (on stdin) 09:40:47.286200 > 28 bytes data, server => client 09:40:47.286789 '226 File transfer complete\r\n' 09:40:47.320781 < 6 bytes data, client => server 09:40:47.320998 'QUIT\r\n' 09:40:47.322136 Received DATA (on stdin) 09:40:47.322282 > 18 bytes data, server => client 09:40:47.322529 '221 bye bye baby\r\n' 09:40:47.326427 ====> Client disconnect 09:40:47.328196 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:47.261552 Running IPv4 version 09:40:47.262074 Listening on port 40447 09:40:47.262679 Wrote pid 97146 to log/26/server/ftp_sockdata.pid 09:40:47.262906 Received PING (on stdin) 09:40:47.263714 Received PORT (on stdin) 09:40:47.266567 ====> Client connect 09:40:47.279014 Received DATA (on stdin) 09:40:47.279176 > 17 bytes data, server => client 09:40:47.279333 'WE ROOLZ: 79344\r\n' 09:40:47.280980 ====> Client disconnect 09:40:47.281392 Received DISC (on stdin) 09:40:47.281616 Crikey! Client also wants to disconnect 09:40:47.282053 Received ACKD (on stdin) 09:40:47.283652 Received QUIT (on stdin) 09:40:47.283795 quits 09:40:47.284182 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 475 === End of file server.cmd === Start of file test475.txt a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === File too long: 349 lines omitted here a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === End of file test475.txt === Start of file valgrind475 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind475 test 0479...[.netrc with redirect and default without password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind479 ../src/curl -q --output log/34/curl479.out --include --trace-ascii log/34/trace479 --trace-config all --trace-time --netrc --netrc-file log/34/netrc479 -L -x http://127.0.0.1:33117/ http://a.com/ > log/34/stdout479 2> log/34/stderr479 479: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 479 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind479 ../src/curl -q --output log/34/curl479.out --include --trace-ascii log/34/trace479 --trace-config all --trace-time --netrc --netrc-file log/34/netrc479 -L -x http://127.0.0.1:33117/ http://a.com/ > log/34/stdout479 2> log/34/stderr479 === End of file commands.log === Start of file http_server.log 09:40:47.561604 ====> Client connect 09:40:47.561954 accept_connection 3 returned 4 09:40:47.562143 accept_connection 3 returned 0 09:40:47.562284 Read 93 bytes 09:40:47.562389 Process 93 bytes request 09:40:47.562569 Got request: GET /verifiedserver HTTP/1.1 09:40:47.562670 Are-we-friendly question received 09:40:47.562901 Wrote request (93 bytes) input to log/34/server.input 09:40:47.563095 Identifying ourselves as friends 09:40:47.565913 Response sent (56 bytes) and written to log/34/server.response 09:40:47.566047 special request received, no persistency 09:40:47.566124 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file netrc479 machine a.com login alice password alicespassword default login bob === End of file netrc479 === Start of file server.cmd Testnum 479 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file valgrind479 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind479 test 0495...[user+password in URL with optional netrc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind495 ../src/curl -q --output log/39/curl495.out --include --trace-ascii log/39/trace495 --trace-config all --trace-time http://foo%40bar:secret@127.0.0.1:42899/495 --netrc-optional > log/39/stdout495 2> log/39/stderr495 495: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 495 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind495 ../src/curl -q --output log/39/curl495.out --include --trace-ascii log/39/trace495 --trace-config all --trace-time http://foo%40bar:secret@127.0.0.1:42899/495 --netrc-optional > log/39/stdout495 2> log/39/stderr495 === End of file commands.log === Start of file http_server.log 09:40:48.271071 ====> Client connect 09:40:48.271608 accept_connection 3 returned 4 09:40:48.271842 accept_connection 3 returned 0 09:40:48.272017 Read 93 bytes 09:40:48.272142 Process 93 bytes request 09:40:48.272277 Got request: GET /verifiedserver HTTP/1.1 09:40:48.272397 Are-we-friendly question received 09:40:48.272758 Wrote request (93 bytes) input to log/39/server.input 09:40:48.272955 Identifying ourselves as friends 09:40:48.273814 Response sent (56 bytes) and written to log/39/server.response 09:40:48.273929 special request received, no persistency 09:40:48.274004 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 495 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind495 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind495 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/43/server/pop3_server.pid" --logfile "log/43/pop3_server.log" --logdir "log/43" --portfile "log/43/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33889 (log/43/server/pop3_server.port) RUN: POP3 server is PID 96591 port 33889 * pid pop3 => 96591 96591 test 0480...[Reject .netrc with credentials using CRLF for POP3] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind480 ../src/curl -q --output log/43/curl480.out --include --trace-ascii log/43/trace480 --trace-config all --trace-time --netrc --netrc-file log/43/netrc480 pop3://127.0.0.1:33889/480 > log/43/stdout480 2> log/43/stderr480 curl returned 1, when expecting 26 480: exit FAILED == Contents of files in the log/43/ dir after test 480 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind480 ../src/curl -q --output log/43/curl480.out --include --trace-ascii log/43/trace480 --trace-config all --trace-time --netrc --netrc-file log/43/netrc480 pop3://127.0.0.1:33889/480 > log/43/stdout480 2> log/43/stderr480 === End of file commands.log === Start of file netrc480 machine 127.0.0.1 login alice password "password\r\ncommand" === End of file netrc480 === Start of file pop3_server.log 09:40:47.143885 POP3 server listens on port IPv4/33889 09:40:47.144940 logged pid 96591 in log/43/server/pop3_server.pid 09:40:47.145217 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:40:47.394939 Running IPv4 version 09:40:47.395598 Listening on port 33889 09:40:47.396155 Wrote pid 97455 to log/43/server/pop3_sockfilt.pid 09:40:47.396644 Wrote port 33889 to log/43/server/pop3_server.port 09:40:47.396855 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 480 === End of file server.cmd === Start of file valgrind480 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind480 test 0442...[Send capped huge number of matching cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind442 ../src/curl -q --output log/56/curl442.out --include --trace-ascii log/56/trace442 --trace-config all --trace-time http://attack.invalid:43265/a/b/442 -b log/56/cookie442 --resolve attack.invalid:43265:127.0.0.1 -L > log/56/stdout442 2> log/56/stderr442 442: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 442 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind442 ../src/curl -q --output log/56/curl442.out --include --trace-ascii log/56/trace442 --trace-config all --trace-time http://attack.invalid:43265/a/b/442 -b log/56/cookie442 --resolve attack.invalid:43265:127.0.0.1 -L > log/56/stdout442 2> log/56/stderr442 === End of file commands.log === Start of file cookie442 attack.invalid TRUE / FALSE 0 name1 could-be-large-1 attack.invalid TRUE / FALSE 0 name2 could-be-large-2 attack.invalid TRUE / FALSE 0 name3 could-be-large-3 attack.invalid TRUE / FALSE 0 name4 could-be-large-4 attack.invalid TRUE / FALSE 0 name5 could-be-large-5 attack.invalid TRUE / FALSE 0 name6 could-be-large-6 attack.invalid TRUE / FALSE 0 name7 could-be-large-7 attack.invalid TRUE / FALSE 0 name8 could-be-large-8 attack.invalid TRUE / FALSE 0 name9 could-be-large-9 attack.invalid TRUE / FALSE 0 name10 could-be-large-10 attack.invalid TRUE / FALSE 0 name11 could-be-large-11 attack.invalid TRUE / FALSE 0 name12 could-be-large-12 attack.invalid TRUE / FALSE 0 name13 could-be-large-13 attack.invalid TRUE / FALSE 0 name14 could-be-large-14 attack.invalid TRUE / FALSE 0 name15 could-be-large-15 attack.invalid TRUE / FALSE 0 name16 could-be-large-16 attack.invalid TRUE / FALSE 0 name17 could-be-large-17 attack.invalid TRUE / FALSE 0 name18 could-be-large-18 attack.invalid TRUE / FALSE 0 name19 could-be-large-19 attack.invalid TRUE / FALSE 0 name20 could-be-large-20 attack.invalid TRUE / FALSE 0 name21 could-be-large-21 attack.invalid TRUE / FALSE 0 name22 could-be-large-22 attack.invalid TRUE / FALSE 0 name23 could-be-large-23 attack.invalid TRUE / FALSE 0 name24 could-be-large-24 attack.invalid TRUE / FALSE 0 name25 could-be-large-25 attack.invalid TRUE / FALSE 0 name26 could-be-large-26 attack.invalid TRUE / FALSE 0 name27 could-be-large-27 attack.invalid TRUE / FALSE 0 name28 could-be-large-28 attack.invalid TRUE / FALSE 0 name29 could-be-large-29 attack.invalid TRUE / FALSE 0 name30 could-be-large-30 attack.invalid TRUE / FALSE 0 name31 could-be-large-31 attack.invalid TRUE / FALSE 0 name32 could-be-large-32 attack.invalid TRUE / FALSE 0 name33 could-be-large-33 attack.invalid TRUE / FALSE 0 name34 could-be-large-34 attack.invalid TRUE / FALSE 0 name35 could-be-large-35 attack.invalid TRUE / FALSE 0 name36 could-be-large-36 attack.invalid TRUE / FALSE 0 name37 could-be-large-37 attack.invalid TRUE / FALSE 0 name38 could-be-large-38 attack.invalid TRUE / FALSE 0 name39 could-be-large-39 attack.invalid TRUE / FALSE 0 name40 could-be-large-40 attack.invalid TRUE / FALSE 0 name41 could-be-large-41 attack.invalid TRUE / FALSE 0 name42 could-be-large-42 attack.invalid TRUE / FALSE 0 name43 could-be-large-43 attack.invalid TRUE / FALSE 0 name44 could-be-large-44 attack.invalid TRUE / FALSE 0 name45 could-be-large-45 attack.invalid TRUE / FALSE 0 name46 could-be-large-46 attack.invalid TRUE / FALSE 0 name47 could-be-large-47 attack.invalid TRUE / FALSE 0 name48 could-be-large-48 attack.invalid TRUE / FALSE 0 name49 could-be-large-49 attack.invalid TRUE / FALSE 0 name50 could-be-large-50 attack.invalid TRUE / FALSE 0 name51 could-be-large-51 attack.invalid TRUE / FALSE 0 name52 could-be-large-52 attack.invalid TRUE / FALSE 0 name53 could-be-large-53 attack.invalid TRUE / FALSE 0 name54 could-be-large-54 attack.invalid TRUE / FALSE 0 name55 could-be-large-55 attack.invalid TRUE / FALSE 0 name56 could-be-large-56 attack.invalid TRUE / FALSE 0 name57 could-be-large-57 attack.invalid TRUE / FALSE 0 name58 could-be-large-58 attack.invalid TRUE / FALSE 0 name59 could-be-large-59 attack.invalid TRUE / FALSE 0 name60 could-be-large-60 attack.invalid TRUE / FALSE 0 name61 could-be-large-61 attack.invalid TRUE / FALSE 0 name62 could-be-large-62 attack.invalid TRUE / FALSE 0 name63 could-be-large-63 attack.invalid TRUE / FALSE 0 name64 could-be-large-64 attack.invalid TRUE / FALSE 0 name65 could-be-large-65 attack.invalid TRUE / FALSE 0 name66 could-be-large-66 attack.invalid TRUE / FALSE 0 name67 could-be-large-67 attack.invalid TRUE / FALSE 0 name68 could-be-large-68 attack.invalid TRUE / FALSE 0 name69 could-be-large-69 attack.invalid TRUE / FALSE 0 name70 could-be-large-70 attack.invalid TRUE / FALSE 0 name71 could-be-large-71 attack.invalid TRUE / FALSE 0 name72 could-be-large-72 attack.invalid TRUE / FALSE 0 name73 could-be-large-73 attack.invalid TRUE / FALSE 0 name74 could-be-large-74 attack.invalid TRUE / FALSE 0 name75 could-be-large-75 attack.invalid TRUE / FALSE 0 name76 could-be-large-76 attack.invalid TRUE / FALSE 0 name77 could-be-large-77 attack.invalid TRUE / FALSE 0 name78 could-be-large-78 attack.invalid TRUE / FALSE 0 name79 could-be-large-79 attack.invalid TRUE / FALSE 0 name80 could-be-large-80 attack.invalid TRUE / FALSE 0 name81 could-be-large-81 attack.invalid TRUE / FALSE 0 name82 could-be-large-82 attack.invalid TRUE / FALSE 0 name83 could-be-large-83 attack.invalid TRUE / FALSE 0 name84 could-be-large-84 attack.invalid TRUE / FALSE 0 name85 could-be-large-85 attack.invalid TRUE / FALSE 0 name86 could-be-large-86 attack.invalid TRUE / FALSE 0 name87 could-be-large-87 attack.invalid TRUE / FALSE 0 name88 could-be-large-88 attack.invalid TRUE / FALSE 0 name89 could-be-large-89 attack.invalid TRUE / FALSE 0 name90 could-be-large-90 attack.invalid TRUE / FALSE 0 name91 could-be-large-91 attack.invalid TRUE / FALSE 0 name92 could-be-large-92 attack.invalid TRUE / FALSE 0 name93 could-be-large-93 attack.invalid TRUE / FALSE 0 name94 could-be-large-94 attack.invalid TRUE / FALSE 0 name95 could-be-large-95 attack.invalid TRUE / FALSE 0 name96 could-be-large-96 attack.invalid TRUE / FALSE 0 name97 could-be-large-97 attack.invalid TRUE / FALSE 0 name98 could-be-large-98 attack.invalid TRUE / FALSE 0 name99 could-be-large-99 attack.invalid TRUE / FALSE 0 name100 could-be-large-100 attack.invalid TRUE / FALSE 0 name101 could-be-large-101 attack.invalid TRUE / FALSE 0 name102 could-be-large-102 attack.invalid TRUE / FALSE 0 name103 could-be-large-103 attack.invalid TRUE / FALSE 0 name104 could-be-large-104 attack.invalid TRUE / FALSE 0 name105 could-be-large-105 attack.invalid TRUE / FALSE 0 name106 could-be-large-106 attack.invalid TRUE / FALSE 0 name107 could-be-large-107 attack.invalid TRUE / FALSE 0 name108 could-be-large-108 attack.invalid TRUE / FALSE 0 name109 could-be-large-109 attack.invalid TRUE / FALSE 0 name110 could-be-large-110 attack.invalid TRUE / FALSE 0 name111 could-be-large-111 attack.invalid TRUE / FALSE 0 name112 could-be-large-112 attack.invalid TRUE / FALSE 0 name113 could-be-large-113 attack.invalid TRUE / FALSE 0 name114 could-be-large-114 attack.invalid TRUE / FALSE 0 name115 could-be-large-115 attack.invalid TRUE / FALSE 0 name116 could-be-large-116 attack.invalid TRUE / FALSE 0 name117 could-be-large-117 attack.invalid TRUE / FALSE 0 name118 could-be-large-118 attack.invalid TRUE / FALSE 0 name119 could-be-large-119 attack.invalid TRUE / FALSE 0 name120 could-be-large-120 attack.invalid TRUE / FALSE 0 name121 could-be-large-121 attack.invalid TRUE / FALSE 0 name122 could-be-large-122 attack.invalid TRUE / FALSE 0 name123 could-be-large-123 attack.invalid TRUE / FALSE 0 name124 could-be-large-124 attack.invalid TRUE / FALSE 0 name125 could-be-large-125 attack.invalid TRUE / FALSE 0 name126 could-be-large-126 attack.invalid TRUE / FALSE 0 name127 could-be-large-127 attack.invalid TRUE / FALSE 0 name128 could-be-large-128 attack.invalid TRUE / FALSE 0 name129 could-be-large-129 attack.invalid TRUE / FALSE 0 name130 could-be-large-130 attack.invalid TRUE / FALSE 0 name131 could-be-large-131 attack.invalid TRUE / FALSE 0 name132 could-be-large-132 attack.invalid TRUE / FALSE 0 name133 could-be-large-133 attack.invalid TRUE / FALSE 0 name134 could-be-large-134 attack.invalid TRUE / FALSE 0 name135 could-be-large-135 attack.invalid TRUE / FALSE 0 name136 could-be-large-136 attack.invalid TRUE / FALSE 0 name137 could-be-large-137 attack.invalid TRUE / FALSE 0 name138 could-be-large-138 attack.invalid TRUE / FALSE 0 name139 could-be-large-139 attack.invalid TRUE / FALSE 0 name140 could-be-large-140 attack.invalid TRUE / FALSE 0 name141 could-be-large-141 attack.invalid TRUE / FALSE 0 name142 could-be-large-142 attack.invalid TRUE / FALSE 0 name143 could-be-large-143 attack.invalid TRUE / FALSE 0 name144 could-be-large-144 attack.invalid TRUE / FALSE 0 name145 could-be-large-145 attack.invalid TRUE / FALSE 0 name146 could-be-large-146 attack.invalid TRUE / FALSE 0 name147 could-be-large-147 attack.invalid TRUE / FALSE 0 name148 could-be-large-148 attack.invalid TRUE / FALSE 0 name149 could-be-large-149 attack.invalid TRUE / FALSE 0 name150 could-be-large-150 attack.invalid TRUE / FALSE 0 name151 could-be-large-151 === End of file cookie442 === Start of file http_server.log 09:40:47.057854 ====> Client connect 09:40:47.058149 accept_connection 3 returned 4 09:40:47.058309 accept_connection 3 returned 0 09:40:47.060583 Read 93 bytes 09:40:47.060747 Process 93 bytes request 09:40:47.060835 Got request: GET /verifiedserver HTTP/1.1 09:40:47.060915 Are-we-friendly question received 09:40:47.061146 Wrote request (93 bytes) input to log/56/server.input 09:40:47.061350 Identifying ourselves as friends 09:40:47.062166 Response sent (56 bytes) and written to log/56/server.response 09:40:47.062274 special request received, no persistency 09:40:47.062341 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 442 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind442 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind442 test 0444...[Many Set-Cookie response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind444 ../src/curl -q --output log/58/curl444.out --include --trace-ascii log/58/trace444 --trace-config all --trace-time http://attack.invalid:46727/a/b/444 -c log/58/cookie444 --resolve attack.invalid:46727:127.0.0.1 > log/58/stdout444 2> log/58/stderr444 444: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 444 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind444 ../src/curl -q --output log/58/curl444.out --include --trace-ascii log/58/trace444 --trace-config all --trace-time http://attack.invalid:46727/a/b/444 -c log/58/cookie444 --resolve attack.invalid:46727:127.0.0.1 > log/58/stdout444 2> log/58/stderr444 === End of file commands.log === Start of file http_server.log 09:40:47.218778 ====> Client connect 09:40:47.219051 accept_connection 3 returned 4 09:40:47.219236 accept_connection 3 returned 0 09:40:47.220223 Read 93 bytes 09:40:47.220348 Process 93 bytes request 09:40:47.220529 Got request: GET /verifiedserver HTTP/1.1 09:40:47.220656 Are-we-friendly question received 09:40:47.220909 Wrote request (93 bytes) input to log/58/server.input 09:40:47.221102 Identifying ourselves as friends 09:40:47.223040 Response sent (56 bytes) and written to log/58/server.response 09:40:47.223141 special request received, no persistency 09:40:47.223230 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 444 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind444 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind444 * starts no server test 0496...[parallel upload missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind496 ../src/curl -q --output log/63/curl496.out --include --trace-ascii log/63/trace496 --trace-config all --trace-time 0 -Z -Tz > log/63/stdout496 2> log/63/stderr496 curl returned 1, when expecting 26 496: exit FAILED == Contents of files in the log/63/ dir after test 496 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind496 ../src/curl -q --output log/63/curl496.out --include --trace-ascii log/63/trace496 --trace-config all --trace-time 0 -Z -Tz > log/63/stdout496 2> log/63/stderr496 === End of file commands.log === Start of file server.cmd Testnum 496 === End of file server.cmd === Start of file valgrind496 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst proCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind497 ../src/curl -q --output log/50/curl497.out --include --trace-ascii log/50/trace497 --trace-config all --trace-time http://127.0.0.1:45651/497 > log/50/stdout497 2> log/50/stderr497 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind504 ./libtest/libtests lib504 http://127.0.0.1:47/504 127.0.0.1:47 > log/39/stdout504 2> log/39/stderr504 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind499 ../src/curl -q --output log/60/curl499.out --include --trace-ascii log/60/trace499 --trace-config all --trace-time http://127.0.0.1:38843/499 -I > log/60/stdout499 2> log/60/stderr499 cessing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind496 test 0497...[Reject too large accumulated HTTP response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind497 ../src/curl -q --output log/50/curl497.out --include --trace-ascii log/50/trace497 --trace-config all --trace-time http://127.0.0.1:45651/497 > log/50/stdout497 2> log/50/stderr497 497: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 497 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind497 ../src/curl -q --output log/50/curl497.out --include --trace-ascii log/50/trace497 --trace-config all --trace-time http://127.0.0.1:45651/497 > log/50/stdout497 2> log/50/stderr497 === End of file commands.log === Start of file http_server.log 09:40:48.708222 ====> Client connect 09:40:48.709014 accept_connection 3 returned 4 09:40:48.709172 accept_connection 3 returned 0 09:40:48.709407 Read 93 bytes 09:40:48.709699 Process 93 bytes request 09:40:48.709797 Got request: GET /verifiedserver HTTP/1.1 09:40:48.709866 Are-we-friendly question received 09:40:48.710125 Wrote request (93 bytes) input to log/50/server.input 09:40:48.710606 Identifying ourselves as friends 09:40:48.713008 Response sent (56 bytes) and written to log/50/server.response 09:40:48.713161 special request received, no persistency 09:40:48.713266 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 497 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind497 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind497 * starts no server test 0504...[simple multi through local proxy without listener] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind504 ./libtest/libtests lib504 http://127.0.0.1:47/504 127.0.0.1:47 > log/39/stdout504 2> log/39/stderr504 libtests returned 1, when expecting 41 504: exit FAILED == Contents of files in the log/39/ dir after test 504 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind504 ./libtest/libtests lib504 http://127.0.0.1:47/504 127.0.0.1:47 > log/39/stdout504 2> log/39/stderr504 === End of file commands.log === Start of file server.cmd Testnum 504 === End of file server.cmd === Start of file valgrind504 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind504 prechecked ./libtest/lib518 check test 0518 SKIPPED: precheck command error test 0499...[HTTP HEAD to server still sending a body] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind499 ../src/curl -q --output log/60/curl499.out --include --trace-ascii log/60/trace499 --trace-config all --trace-time http://127.0.0.1:38843/499 -I > log/60/stdout499 2> log/60/stderr499 499: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 499 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind499 ../src/curl -q --output log/60/curl499.out --include --trace-asciCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind501 ./libtest/libtests lib501 http://127.0.0.1:47/501 > log/58/stdout501 2> log/58/stderr501 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind502 ./libtest/libtests lib502 file:///build/curl/src/build-curl/tests/log/56/test502.txt > log/56/stdout502 2> log/56/stderr502 i log/60/trace499 --trace-config all --trace-time http://127.0.0.1:38843/499 -I > log/60/stdout499 2> log/60/stderr499 === End of file commands.log === Start of file http_server.log 09:40:50.400865 ====> Client connect 09:40:50.401203 accept_connection 3 returned 4 09:40:50.401377 accept_connection 3 returned 0 09:40:50.401673 Read 93 bytes 09:40:50.401998 Process 93 bytes request 09:40:50.402258 Got request: GET /verifiedserver HTTP/1.1 09:40:50.402402 Are-we-friendly question received 09:40:50.402797 Wrote request (93 bytes) input to log/60/server.input 09:40:50.403018 Identifying ourselves as friends 09:40:50.405099 Response sent (56 bytes) and written to log/60/server.response 09:40:50.405233 special request received, no persistency 09:40:50.405308 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 499 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind499 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind499 * starts no server test 0501...[simple libcurl attempt operation without URL set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind501 ./libtest/libtests lib501 http://127.0.0.1:47/501 > log/58/stdout501 2> log/58/stderr501 libtests returned 1, when expecting 3 501: exit FAILED == Contents of files in the log/58/ dir after test 501 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind501 ./libtest/libtests lib501 http://127.0.0.1:47/501 > log/58/stdout501 2> log/58/stderr501 === End of file commands.log === Start of file server.cmd Testnum 501 === End of file server.cmd === Start of file valgrind501 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind501 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind498 ../src/curl -q --output log/64/curl498.out --include --trace-ascii log/64/trace498 --trace-config all --trace-time http://127.0.0.1:33073/498 --max-redirs 400 --location > log/64/stdout498 2> log/64/stderr498 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind509 ./libtest/libtests lib509 nothing > log/6/stdout509 2> log/6/stderr509 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind517 ./libtest/libtests lib517 nothing > log/47/stdout517 2> log/47/stderr517 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind513 ./libtest/libtests lib513 http://127.0.0.1:34903/513 > log/51/stdout513 2> log/51/stderr513 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind507 ./libtest/libtests lib507 http://non-existing-host.haxx.se/ > log/26/stdout507 2> log/26/stderr507 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind508 ./libtest/libtests lib508 http://127.0.0.1:43309/508 > log/14/stdout508 2> log/14/stderr508 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind500 ./libtest/libtests lib500 http://127.0.0.1:38797/500 log/63/ip500 > log/63/stdout500 2> log/63/stderr500 test 0502...[simple multi file:// get] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind502 ./libtest/libtests lib502 file:///build/curl/src/build-curl/tests/log/56/test502.txt > log/56/stdout502 2> log/56/stderr502 502: data FAILED: --- log/56/check-expected 2025-07-18 09:40:51.453602745 +0000 +++ log/56/check-generated 2025-07-18 09:40:51.453308385 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar swsclose[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/56/ dir after test 502 === Start of file check-expected foo[LF] bar swsclose[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind502 ./libtest/libtests lib502 file:///build/curl/src/build-curl/tests/log/56/test502.txt > log/56/stdout502 2> log/56/stderr502 === End of file commands.log === Start of file server.cmd Testnum 502 === End of file server.cmd === Start of file test502.txt foo bar swsclose bar foo moo === End of file test502.txt === Start of file valgrind502 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind502 prechecked ./libtest/lib537 check test 0537 SKIPPED: precheck command error test 0498...[Reject too large HTTP response headers on endless redirects] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind498 ../src/curl -q --output log/64/curl498.out --include --trace-ascii log/64/trace498 --trace-config all --trace-time http://127.0.0.1:33073/498 --max-redirs 400 --location > log/64/stdout498 2> log/64/stderr498 curl returned 1, when expecting 56 498: exit FAILED == Contents of files in the log/64/ dir after test 498 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind498 ../src/curl -q --output log/64/curl498.out --include --trace-ascii log/64/trace498 --trace-config all --trace-time http://127.0.0.1:33073/498 --max-redirs 400 --location > log/64/stdout498 2> log/64/stderr498 === End of file commands.log === Start of file http_server.log 09:40:49.213025 ====> Client connect 09:40:49.213373 accept_connection 3 returned 4 09:40:49.213737 accept_connection 3 returned 0 09:40:49.213911 Read 93 bytes 09:40:49.214025 Process 93 bytes request 09:40:49.214128 Got request: GET /verifiedserver HTTP/1.1 09:40:49.214219 Are-we-friendly question received 09:40:49.214620 Wrote request (93 bytes) input to log/64/server.input 09:40:49.214884 Identifying ourselves as friends 09:40:49.215736 Response sent (56 bytes) and written to log/64/server.response 09:40:49.215848 special request received, no persistency 09:40:49.215920 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 498 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind498 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind498 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind511 ./libtest/libtests lib511 ftp://127.0.0.1:40139/511 > log/55/stdout511 2> log/55/stderr511 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind515 ./libtest/libtests lib515 http://127.0.0.1:46339/515 > log/48/stdout515 2> log/48/stderr515 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind543 ./libtest/libtests lib543 - > log/5/stdout543 2> log/5/stderr543 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind519 ./libtest/libtests lib519 http://127.0.0.1:42819/519 > log/42/stdout519 2> log/42/stderr519 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind505 ./libtest/libtests lib505 ftp://127.0.0.1:33001/505 log/34/upload505 > log/34/stdout505 2> log/34/stderr505 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind510 ./libtest/libtests lib510 http://127.0.0.1:43695/510 > log/59/stdout510 2> log/59/stderr510 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind512 ./libtest/libtests lib512 http://127.0.0.1:40089/512 > log/52/stdout512 2> log/52/stderr512 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind521 ./libtest/libtests lib521 ftp://127.0.0.1/521/ 45501 > log/40/stdout521 2> log/40/stderr521 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind514 ./libtest/libtests lib514 http://127.0.0.1:42667/514 > log/49/stdout514 2> log/49/stderr514 * starts no server test 0509...[initialization with memory callbacks and actual usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind509 ./libtest/libtests lib509 nothing > log/6/stdout509 2> log/6/stderr509 509: stdout FAILED: --- log/6/check-expected 2025-07-18 09:40:51.980539819 +0000 +++ log/6/check-generated 2025-07-18 09:40:51.979602479 +0000 @@ -1 +0,0 @@ -Callbacks were invoked![LF] == Contents of files in the log/6/ dir after test 509 === Start of file check-expected Callbacks were invoked![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind509 ./libtest/libtests lib509 nothing > log/6/stdout509 2> log/6/stderr509 === End of file commands.log === Start of file server.cmd Testnum 509 === End of file server.cmd === Start of file valgrind509 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind509 test 0508...[send HTTP POST using read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind508 ./libtest/libtests lib508 http://127.0.0.1:43309/508 > log/14/stdout508 2> log/14/stderr508 508: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 508 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind508 ./libtest/libtests lib508 http://127.0.0.1:43309/508 > log/14/stdout508 2> log/14/stderr508 === End of file commands.log === Start of file http_server.log 09:40:50.840868 ====> Client connect 09:40:50.841181 accept_connection 3 returned 4 09:40:50.841365 accept_connection 3 returned 0 09:40:50.841654 Read 93 bytes 09:40:50.841790 Process 93 bytes request 09:40:50.841890 Got request: GET /verifiedserver HTTP/1.1 09:40:50.841986 Are-we-friendly question received 09:40:50.842260 Wrote request (93 bytes) input to log/14/server.input 09:40:50.842657 Identifying ourselves as friends 09:40:50.843256 Response sent (56 bytes) and written to log/14/server.response 09:40:50.843376 special request received, no persistency 09:40:50.846586 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 508 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind508 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind508 test 0507...[multi interface get with non-existing host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind507 ./libtest/libtests lib507 http://non-existing-host.haxx.se/ > log/26/stdout507 2> log/26/stderr507 libtests returned 1, when expecting 6 507: exit FAILED == Contents of files in the log/26/ dir after test 507 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind507 ./libtest/libtests lib507 http://non-existing-host.haxx.se/ > log/26/stdout507 2> log/26/stderr507 === End of file commands.log === Start of file http_server.log 09:40:50.897316 ====> Client connect 09:40:50.897912 accept_connection 3 returned 4 09:40:50.898086 accept_connection 3 returned 0 09:40:50.898225 Read 93 bytes 09:40:50.898327 Process 93 bytes request 09:40:50.898423 Got request: GET /verifiedserver HTTP/1.1 09:40:50.898608 Are-we-friendly question received 09:40:50.898867 Wrote request (93 bytes) input to log/26/server.input 09:40:50.899063 Identifying ourselves as friends 09:40:50.902882 Response sent (56 bytes) and written to log/26/server.response 09:40:50.903020 special request received, no persistency 09:40:50.903117 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 507 === End of file CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind516 ./libtest/libtests lib516 http://127.0.0.1:45651/516 > log/50/stdout516 2> log/50/stderr516 server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind507 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind507 * starts no server test 0517...[curl_getdate() testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind517 ./libtest/libtests lib517 nothing > log/47/stdout517 2> log/47/stderr517 libtests returned 1, when expecting 0 517: exit FAILED == Contents of files in the log/47/ dir after test 517 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind517 ./libtest/libtests lib517 nothing > log/47/stdout517 2> log/47/stderr517 === End of file commands.log === Start of file server.cmd Testnum 517 === End of file server.cmd === Start of file valgrind517 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind517 test 0500...[simple libcurl HTTP GET tool] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind500 ./libtest/libtests lib500 http://127.0.0.1:38797/500 log/63/ip500 > log/63/stdout500 2> log/63/stderr500 500: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 500 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind500 ./libtest/libtests lib500 http://127.0.0.1:38797/500 log/63/ip500 > log/63/stdout500 2> log/63/stderr500 === End of file commands.log === Start of file http_server.log 09:40:50.832688 ====> Client connect 09:40:50.833054 accept_connection 3 returned 4 09:40:50.833246 accept_connection 3 returned 0 09:40:50.833388 Read 93 bytes 09:40:50.833579 Process 93 bytes request 09:40:50.833703 Got request: GET /verifiedserver HTTP/1.1 09:40:50.833796 Are-we-friendly question received 09:40:50.834034 Wrote request (93 bytes) input to log/63/server.input 09:40:50.834237 Identifying ourselves as friends 09:40:50.835050 Response sent (56 bytes) and written to log/63/server.response 09:40:50.835164 special request received, no persistency 09:40:50.835235 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 500 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind500 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind500 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind557 ./libtest/libtests lib557 nothing > log/16/stdout557 2> log/16/stderr557 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind535 ./libtest/libtests lib533 http://127.0.0.1:34827/535 http://127.0.0.1:34827/5350001 > log/21/stdout535 2> log/21/stderr535 * starts no server test 0543...[curl_easy_escape] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind543 ./libtest/libtests lib543 - > log/5/stdout543 2> log/5/stderr543 543: stdout FAILED: --- log/5/check-expected 2025-07-18 09:40:52.238602348 +0000 +++ log/5/check-generated 2025-07-18 09:40:52.237602348 +0000 @@ -1,3 +0,0 @@ -%9C%26K%3DI%04%A1%01%E0%D8%7C%20%B7%EFS%29%FA%1DW%E1[LF] -IN: '' OUT: ''[LF] -IN: ' 12' OUT: '%2012'[LF] == Contents of files in the log/5/ dir after test 543 === Start of file check-expected %9C%26K%3DI%04%A1%01%E0%D8%7C%20%B7%EFS%29%FA%1DW%E1[LF] IN: '' OUT: ''[LF] IN: ' 12' OUT: '%2012'[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind543 ./libtest/libtests lib543 - > log/5/stdout543 2> log/5/stderr543 === End of file commands.log === Start of file server.cmd Testnum 543 === End of file server.cmd === Start of file valgrind543 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind543 test 0505...[FTP upload with rename after transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind505 ./libtest/libtests lib505 ftp://127.0.0.1:33001/505 log/34/upload505 > log/34/stdout505 2> log/34/stderr505 505: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 505 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind505 ./libtest/libtests lib505 ftp://127.0.0.1:33001/505 log/34/upload505 > log/34/stdout505 2> log/34/stderr505 === End of file commands.log === Start of file ftp_server.log 09:40:50.630482 ====> Client connect 09:40:50.632569 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:50.643393 < "USER anonymous" 09:40:50.645922 > "331 We are happy you popped in![CR][LF]" 09:40:50.651584 < "PASS ftp@example.com" 09:40:50.656970 > "230 Welcome you silly person[CR][LF]" 09:40:50.664700 < "PWD" 09:40:50.665173 > "257 "/" is current directory[CR][LF]" 09:40:50.670567 < "EPSV" 09:40:50.670918 ====> Passive DATA channel requested by client 09:40:50.671101 DATA sockfilt for passive data channel starting... 09:40:50.699916 DATA sockfilt for passive data channel started (pid 100576) 09:40:50.701059 DATA sockfilt for passive data channel listens on port 38673 09:40:50.704340 > "229 Entering Passive Mode (|||38673|)[LF]" 09:40:50.704615 Client has been notified that DATA conn will be accepted on port 38673 09:40:50.705025 Client connects to port 38673 09:40:50.705461 ====> Client established passive DATA connection on port 38673 09:40:50.706312 < "TYPE I" 09:40:50.708117 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:50.708847 < "SIZE verifiedserver" 09:40:50.710619 > "213 17[CR][LF]" 09:40:50.711416 < "RETR verifiedserver" 09:40:50.712288 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:50.715240 =====> Closing passive DATA connection... 09:40:50.715468 Server disconnects passive DATA connection 09:40:50.715711 Fancy that; client wants to DISC, too 09:40:50.717008 Server disconnected passive DATA connection 09:40:50.717296 DATA sockfilt for passive data channel quits (pid 100576) 09:40:50.719373 DATA sockfilt for passive data channel quit (pid 100576) 09:40:50.719610 =====> Closed passive DATA connection 09:40:50.719952 > "226 File transfer complete[CR][LF]" 09:40:50.757719 < "QUIT" 09:40:50.758208 > "221 bye bye baby[CR][LF]" 09:40:50.793933 MAIN sockfilt said DISC 09:40:50.795192 ====> Client disconnected 09:40:50.795866 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:50.883630 ====> Client connect 09:40:50.889566 Received DATA (on stdin) 09:40:50.889707 > 160 bytes data, server => client 09:40:50.889797 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:50.889883 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:50.889967 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:50.895980 < 16 bytes data, client => server 09:40:50.896119 'USER anonymous\r\n' 09:40:50.897651 Received DATA (on stdin) 09:40:50.897791 > 33 bytes data, server => client 09:40:50.899935 '331 We are happy you popped in!\r\n' 09:40:50.904598 < 22 bytes data, client => server 09:40:50.904731 'PASS ftp@example.com\r\n' 09:40:50.905711 Received DATA (on stdin) 09:40:50.905845 > 30 bytes data, server => client 09:40:50.911021 '230 Welcome you silly person\r\n' 09:40:50.917613 < 5 bytes data, client => server 09:40:50.917764 'PWD\r\n' 09:40:50.919121 Received DATA (on stdin) 09:40:50.919244 > 30 bytes data, server => client 09:40:50.919327 '257 "/" is current directory\r\n' 09:40:50.923592 < 6 bytes data, client => server 09:40:50.923730 'EPSV\r\n' 09:40:50.955270 Received DATA (on stdin) 09:40:50.955431 > 38 bytes data, server => client 09:40:50.955780 '229 Entering Passive Mode (|||38673|)\n' 09:40:50.957652 < 8 bytes data, client => server 09:40:50.957794 'TYPE I\r\n' 09:40:50.960390 Received DATA (on stdin) 09:40:50.960604 > 33 bytes data, server => client 09:40:50.960792 '200 I modify TYPE as you wanted\r\n' 09:40:50.961394 < 21 bytes data, client => server 09:40:50.961606 'SIZE verifiedserver\r\n' 09:40:50.962976 Received DATA (on stdin) 09:40:50.963116 > 8 bytes data, server => client 09:40:50.963286 '213 17\r\n' 09:40:50.963983 < 21 bytes data, client => server 09:40:50.964116 'RETR verifiedserver\r\n' 09:40:50.965645 Received DATA (on stdin) 09:40:50.965785 > 29 bytes data, server => client 09:40:50.966713 '150 Binary junk (17 bytes).\r\n' 09:40:50.973957 Received DATA (on stdin) 09:40:50.974085 > 28 bytes data, server => client 09:40:50.974169 '226 File transfer complete\r\n' 09:40:51.010295 < 6 bytes data, client => server 09:40:51.010594 'QUIT\r\n' 09:40:51.039780 Received DATA (on stdin) 09:40:51.039918 > 18 bytes data, server => client 09:40:51.040010 '221 bye bye baby\r\n' 09:40:51.046753 ====> Client disconnect 09:40:51.048084 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:50.951903 Running IPv4 versiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind528 ./libtest/libtests lib526 http://127.0.0.1:36877/path/528 > log/29/stdout528 2> log/29/stderr528 on 09:40:50.952734 Listening on port 38673 09:40:50.953127 Wrote pid 100576 to log/34/server/ftp_sockdata.pid 09:40:50.953293 Received PING (on stdin) 09:40:50.954081 Received PORT (on stdin) 09:40:50.957275 ====> Client connect 09:40:50.966329 Received DATA (on stdin) 09:40:50.966555 > 17 bytes data, server => client 09:40:50.967407 'WE ROOLZ: 80544\r\n' 09:40:50.968255 ====> Client disconnect 09:40:50.970007 Received DISC (on stdin) 09:40:50.970132 Crikey! Client also wants to disconnect 09:40:50.970230 Received ACKD (on stdin) 09:40:50.971246 Received QUIT (on stdin) 09:40:50.971369 quits 09:40:50.971909 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 505 === End of file server.cmd === Start of file upload505 Contents of a file to verify ftp upload works? === End of file upload505 === Start of file valgrind505 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind505 test 0521...[FTP dir list PASV with CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind521 ./libtest/libtests lib521 ftp://127.0.0.1/521/ 45501 > log/40/stdout521 2> log/40/stderr521 521: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 521 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind521 ./libtest/libtests lib521 ftp://127.0.0.1/521/ 45501 > log/40/stdout521 2> log/40/stderr521 === End of file commands.log === Start of file ftp_server.log 09:40:50.959971 ====> Client connect 09:40:50.966918 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:50.972159 < "USER anonymous" 09:40:50.972636 > "331 We are happy you popped in![CR][LF]" 09:40:50.975236 < "PASS ftp@example.com" 09:40:50.976703 > "230 Welcome you silly person[CR][LF]" 09:40:50.978095 < "PWD" 09:40:50.978509 > "257 "/" is current directory[CR][LF]" 09:40:50.982970 < "EPSV" 09:40:50.983314 ====> Passive DATA channel requested by client 09:40:50.983506 DATA sockfilt for passive data channel starting... 09:40:51.000908 DATA sockfilt for passive data channel started (pid 100915) 09:40:51.001976 DATA sockfilt for passive data channel listens on port 43607 09:40:51.002401 > "229 Entering Passive Mode (|||43607|)[LF]" 09:40:51.002640 Client has been notified that DATA conn will be accepted on port 43607 09:40:51.005190 Client connects to port 43607 09:40:51.005527 ====> Client established passive DATA connection on port 43607 09:40:51.006848 < "TYPE I" 09:40:51.008073 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.009820 < "SIZE verifiedserver" 09:40:51.010896 > "213 17[CR][LF]" 09:40:51.012476 < "RETR verifiedserver" 09:40:51.013403 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.014474 =====> Closing passive DATA connection... 09:40:51.014706 Server disconnects passive DATA connection 09:40:51.016598 Fancy that; client wants to DISC, too 09:40:51.017977 Server disconnected passive DATA connection 09:40:51.018272 DATA sockfilt for passive data channel quits (pid 100915) 09:40:51.020543 DATA sockfilt for passive data channel quit (pid 100915) 09:40:51.020892 =====> Closed passive DATA connection 09:40:51.021830 > "226 File transfer complete[CR][LF]" 09:40:51.057522 < "QUIT" 09:40:51.058304 > "221 bye bye baby[CR][LF]" 09:40:51.059879 MAIN sockfilt said DISC 09:40:51.060186 ====> Client disconnected 09:40:51.060631 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.212804 ====> Client connect 09:40:51.221109 Received DATA (on stdin) 09:40:51.221287 > 160 bytes data, server => client 09:40:51.221405 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.221721 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.221835 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.224235 < 16 bytes data, client => server 09:40:51.224409 'USER anonymous\r\n' 09:40:51.226799 Received DATA (on stdin) 09:40:51.226966 > 33 bytes data, server => client 09:40:51.227068 '331 We are happy you popped in!\r\n' 09:40:51.228065 < 22 bytes data, client => server 09:40:51.228226 'PASS ftp@example.com\r\n' 09:40:51.229312 Received DATA (on stdin) 09:40:51.229568 > 30 bytes data, server => client 09:40:51.229798 '230 Welcome you silly person\r\n' 09:40:51.230934 < 5 bytes data, client => server 09:40:51.231064 'PWD\r\n' 09:40:51.234631 Received DATA (on stdin) 09:40:51.234757 > 30 bytes data, server => client 09:40:51.234873 '257 "/" is current directory\r\n' 09:40:51.235682 < 6 bytes data, client => server 09:40:51.235852 'EPSV\r\n' 09:40:51.256875 Received DATA (on stdin) 09:40:51.257041 > 38 bytes data, server => client 09:40:51.257144 '229 Entering Passive Mode (|||43607|)\n' 09:40:51.259684 < 8 bytes data, client => server 09:40:51.259827 'TYPE I\r\n' 09:40:51.260953 Received DATA (on stdin) 09:40:51.261103 > 33 bytes data, server => client 09:40:51.261289 '200 I modify TYPE as you wanted\r\n' 09:40:51.262698 < 21 bytes data, client => server 09:40:51.262853 'SIZE verifiedserver\r\n' 09:40:51.263934 Received DATA (on stdin) 09:40:51.264113 > 8 bytes data, server => client 09:40:51.264279 '213 17\r\n' 09:40:51.265587 < 21 bytes data, client => server 09:40:51.265734 'RETR verifiedserver\r\n' 09:40:51.266638 Received DATA (on stdin) 09:40:51.266906 > 29 bytes data, server => client 09:40:51.268560 '150 Binary junk (17 bytes).\r\n' 09:40:51.274914 Received DATA (on stdin) 09:40:51.275024 > 28 bytes data, server => client 09:40:51.275190 '226 File transfer complete\r\n' 09:40:51.310365 < 6 bytes data, client => server 09:40:51.310602 'QUIT\r\n' 09:40:51.311668 Received DATA (on stdin) 09:40:51.311819 > 18 bytes data, server => client 09:40:51.312285 '221 bye bye baby\r\n' 09:40:51.312874 ====> Client disconnect 09:40:51.316541 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:50.252887 Running IPv4 version 09:40:50.253571 Listening on port 43607 09:40:50.254081 Wrote pid 100915 to log/40/server/ftp_sockdata.pid 09:40:50.254277 Received PING (on stdin) 09:40:50.255033 Received PORT (on stdin) 09:40:50.258204 ====> Client connect 09:40:50.267513 Received DATA (on stdin) 09:40:50.267649 > 17 bytes data, server => client 09:40:50.268908 'WE ROOLZ: 89681\r\n' 09:40:50.269798 ====> Client disconnect 09:40:50.270954 Received DISC (on stdin) 09:40:50.271098 Crikey! Client also wants to disconnect 09:40:50.271209 Received ACKD (on stdin) 09:40:50.272389 Received QUIT (on stdin) 09:40:50.272616 quits 09:40:50.273039 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 521 === End of file server.cmd === Start of file valgrind521 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind521 test 0519...[GET same URL twice with different users] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind519 ./libtest/libtests lib519 http://127.0.0.1:42819/519 > log/42/stdout519 2> log/42/stderr519 519: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 519 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind519 ./libtest/libtests lib519 http://127.0.0.1:42819/519 > log/42/stdout519 2> log/42/stderr519 === End of file commands.log === Start of file http_server.log 09:40:51.219593 ====> Client connect 09:40:51.220403 accept_connection 3 returned 4 09:40:51.220692 accept_connection 3 returned 0 09:40:51.220885 Read 93 bytes 09:40:51.221013 Process 93 bytes request 09:40:51.221141 Got request: GET /verifiedserver HTTP/1.1 09:40:51.221238 Are-we-friendly question received 09:40:51.224651 Wrote request (93 bytes) input to log/42/server.input 09:40:51.224913 Identifying ourselves as friends 09:40:51.225854 Response sent (56 bytes) and written to log/42/server.response 09:40:51.225978 special request received, no persistency 09:40:51.226054 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 519 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind519 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind519 test 0515...[make a POSTFIELDS set to NULL with POSTFIELDSIZE set to zero] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind515 ./libtest/libtests lib515 http://127.0.0.1:46339/515 > log/48/stdout515 2> log/48/stderr515 515: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 515 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind515 ./libtest/libtests lib515 http://127.0.0.1:46339/515 > log/48/stdout515 2> log/48/stderr515 === End of file commands.log === Start of file http_server.log 09:40:50.933854 ====> Client connect 09:40:50.934178 accept_connection 3 returned 4 09:40:50.934369 accept_connection 3 returned 0 09:40:50.935287 Read 93 bytes 09:40:50.935536 Process 93 bytes request 09:40:50.935663 Got request: GET /verifiedserver HTTP/1.1 09:40:50.935759 Are-we-friendly question received 09:40:50.936028 Wrote request (93 bytes) input to log/48/server.input 09:40:50.936251 Identifying ourselves as friends 09:40:50.940778 Response sent (56 bytes) and written to log/48/server.response 09:40:50.940966 special request received, no persistency 09:40:50.941059 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 515 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind515 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind531 ./libtest/libtests lib525 ftp://127.0.0.1:34069/path/531 log/25/upload531 > log/25/stdout531 2> log/25/stderr531 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind520 ./libtest/libtests lib520 ftp://127.0.0.1:41781/520 > log/41/stdout520 2> log/41/stderr520 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind523 ./libtest/libtests lib523 http://www.example.com:999/523 http://127.0.0.1:37551 > log/37/stdout523 2> log/37/stderr523 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind515 test 0516...[make an HTTPPOST set to NULL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind516 ./libtest/libtests lib516 http://127.0.0.1:45651/516 > log/50/stdout516 2> log/50/stderr516 516: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 516 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind516 ./libtest/libtests lib516 http://127.0.0.1:45651/516 > log/50/stdout516 2> log/50/stderr516 === End of file commands.log === Start of file http_server.log 09:40:51.320656 ====> Client connect 09:40:51.320999 accept_connection 3 returned 4 09:40:51.321165 accept_connection 3 returned 0 09:40:51.321293 Read 93 bytes 09:40:51.321390 Process 93 bytes request 09:40:51.321587 Got request: GET /verifiedserver HTTP/1.1 09:40:51.321707 Are-we-friendly question received 09:40:51.321952 Wrote request (93 bytes) input to log/50/server.input 09:40:51.322145 Identifying ourselves as friends 09:40:51.322826 Response sent (56 bytes) and written to log/50/server.response 09:40:51.322936 special request received, no persistency 09:40:51.323007 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 516 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind516 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind516 test 0512...[simple curl_easy_duplicate() test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind512 ./libtest/libtests lib512 http://127.0.0.1:40089/512 > log/52/stdout512 2> log/52/stderr512 512: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 512 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind512 ./libtest/libtests lib512 http://127.0.0.1:40089/512 > log/52/stdout512 2> log/52/stderr512 === End of file commands.log === Start of file http_server.log 09:40:50.912062 ====> Client connect 09:40:50.912383 accept_connection 3 returned 4 09:40:50.912718 accept_connection 3 returned 0 09:40:50.912861 Read 93 bytes 09:40:50.912952 Process 93 bytes request 09:40:50.913043 Got request: GET /verifiedserver HTTP/1.1 09:40:50.913125 Are-we-friendly question received 09:40:50.913350 Wrote request (93 bytes) input to log/52/server.input 09:40:50.913626 Identifying ourselves as friends 09:40:50.914655 Response sent (56 bytes) and written to log/52/server.response 09:40:50.914768 special request received, no persistency 09:40:50.914841 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 512 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind512 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit deCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind530 ./libtest/libtests lib530 http://127.0.0.1:42323/file530 > log/27/stdout530 2> log/27/stderr530 buginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind512 test 0511...[FTP with FILETIME and NOBODY but missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind511 ./libtest/libtests lib511 ftp://127.0.0.1:40139/511 > log/55/stdout511 2> log/55/stderr511 511: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 511 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind511 ./libtest/libtests lib511 ftp://127.0.0.1:40139/511 > log/55/stdout511 2> log/55/stderr511 === End of file commands.log === Start of file ftp_server.log 09:40:50.715483 ====> Client connect 09:40:50.717050 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:50.719605 < "USER anonymous" 09:40:50.720089 > "331 We are happy you popped in![CR][LF]" 09:40:50.721628 < "PASS ftp@example.com" 09:40:50.722141 > "230 Welcome you silly person[CR][LF]" 09:40:50.725347 < "PWD" 09:40:50.726225 > "257 "/" is current directory[CR][LF]" 09:40:50.728169 < "EPSV" 09:40:50.728442 ====> Passive DATA channel requested by client 09:40:50.728634 DATA sockfilt for passive data channel starting... 09:40:50.743707 DATA sockfilt for passive data channel started (pid 100636) 09:40:50.744997 DATA sockfilt for passive data channel listens on port 42329 09:40:50.745517 > "229 Entering Passive Mode (|||42329|)[LF]" 09:40:50.745826 Client has been notified that DATA conn will be accepted on port 42329 09:40:50.748950 Client connects to port 42329 09:40:50.749225 ====> Client established passive DATA connection on port 42329 09:40:50.750087 < "TYPE I" 09:40:50.750550 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:50.752122 < "SIZE verifiedserver" 09:40:50.752603 > "213 17[CR][LF]" 09:40:50.754193 < "RETR verifiedserver" 09:40:50.754682 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:50.755447 =====> Closing passive DATA connection... 09:40:50.755674 Server disconnects passive DATA connection 09:40:50.757497 Server disconnected passive DATA connection 09:40:50.757923 DATA sockfilt for passive data channel quits (pid 100636) 09:40:50.765470 DATA sockfilt for passive data channel quit (pid 100636) 09:40:50.765824 =====> Closed passive DATA connection 09:40:50.766310 > "226 File transfer complete[CR][LF]" 09:40:50.798030 < "QUIT" 09:40:50.798506 > "221 bye bye baby[CR][LF]" 09:40:50.802244 MAIN sockfilt said DISC 09:40:50.802605 ====> Client disconnected 09:40:50.803177 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:50.968612 ====> Client connect 09:40:50.970748 Received DATA (on stdin) 09:40:50.970911 > 160 bytes data, server => client 09:40:50.971008 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:50.971097 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:50.971177 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:50.972356 < 16 bytes data, client => server 09:40:50.972597 'USER anonymous\r\n' 09:40:50.973819 Received DATA (on stdin) 09:40:50.973972 > 33 bytes data, server => client 09:40:50.974057 '331 We are happy you popped in!\r\n' 09:40:50.974753 < 22 bytes data, client => server 09:40:50.974889 'PASS ftp@example.com\r\n' 09:40:50.975870 Received DATA (on stdin) 09:40:50.976019 > 30 bytes data, server => client 09:40:50.976099 '230 Welcome you silly person\r\n' 09:40:50.976837 < 5 bytes data, client => server 09:40:50.976975 'PWD\r\n' 09:40:50.979538 Received DATA (on stdin) 09:40:50.979703 > 30 bytes data, server => client 09:40:50.980266 '257 "/" is current directory\r\n' 09:40:50.981052 < 6 bytes data, client => server 09:40:50.981203 'EPSV\r\n' 09:40:50.999184 Received DATA (on stdin) 09:40:50.999352 > 38 bytes data, server => client 09:40:50.999538 '229 Entering Passive Mode (|||42329|)\n' 09:40:51.002692 < 8 bytes data, client => server 09:40:51.002833 'TYPE I\r\n' 09:40:51.004243 Received DATA (on stdin) 09:40:51.004401 > 33 bytes data, server => client 09:40:51.004595 '200 I modify TYPE as you wanted\r\n' 09:40:51.005259 < 21 bytes data, client => server 09:40:51.005405 'SIZE verifiedserver\r\n' 09:40:51.006299 Received DATA (on stdin) 09:40:51.006535 > 8 bytes data, server => client 09:40:51.006642 '213 17\r\n' 09:40:51.007294 < 21 bytes data, client => server 09:40:51.007519 'RETR verifiedserver\r\n' 09:40:51.008383 Received DATA (on stdin) 09:40:51.008612 > 29 bytes data, server => client 09:40:51.008703 '150 Binary junk (17 bytes).\r\n' 09:40:51.020002 Received DATA (on stdin) 09:40:51.020216 > 28 bytes data, server => client 09:40:51.020380 '226 File transfer complete\r\n' 09:40:51.050820 < 6 bytes data, client => server 09:40:51.050997 'QUIT\r\n' 09:40:51.052214 Received DATA (on stdin) 09:40:51.052369 > 18 bytes data, server => client 09:40:51.052527 '221 bye bye baby\r\n' 09:40:51.055580 ====> Client disconnect 09:40:51.056328 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:50.995793 Running IPv4 version 09:40:50.996313 Listening on port 42329 09:40:50.996837 Wrote pid 100636 to log/55/server/ftp_sockdata.pid 09:40:50.997043 Received PING (on stdin) 09:40:50.998002 Received PORT (on stdin) 09:40:51.002325 ====> Client connect 09:40:51.009723 Received DATA (on stdin) 09:40:51.009853 > 17 bytes data, server => client 09:40:51.009938 'WE ROOLZ: 77586\r\n' 09:40:51.010318 Received DISC (on stdin) 09:40:51.010599 ====> Client forcibly disconnected 09:40:51.011905 Received QUIT (on stdin) 09:40:51.012031 quits 09:40:51.012540 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 550 bluah you f00l REPLY SIZE 550 bluah you f00l Testnum 511 === End of file server.cmd === Start of file valgrind511 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind511 test 0510...[send HTTP POST using read callback, using chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind510 ./libtest/libtests lib510 http://127.0.0.1:43695/510 > log/59/stdout510 2> log/59/stderr510 510: protocolCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind522 ./libtest/libtests lib521 http://127.0.0.1/522 33511 > log/38/stdout522 2> log/38/stderr522 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind541 ./libtest/libtests lib541 ftp://127.0.0.1:39847/541 log/11/upload541 > log/11/stdout541 2> log/11/stderr541 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind503 ./libtest/libtests lib503 http://machine.503:41267/503 127.0.0.1:44417 > log/43/stdout503 2> log/43/stderr503 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind536 ./libtest/libtests lib536 http://127.0.0.1:45475 goingdirect.com:45475 goingdirect.com:45475:127.0.0.1 > log/20/stdout536 2> log/20/stderr536 FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 510 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind510 ./libtest/libtests lib510 http://127.0.0.1:43695/510 > log/59/stdout510 2> log/59/stderr510 === End of file commands.log === Start of file http_server.log 09:40:50.938836 ====> Client connect 09:40:50.939136 accept_connection 3 returned 4 09:40:50.939296 accept_connection 3 returned 0 09:40:50.939515 Read 93 bytes 09:40:50.939641 Process 93 bytes request 09:40:50.939728 Got request: GET /verifiedserver HTTP/1.1 09:40:50.939815 Are-we-friendly question received 09:40:50.940069 Wrote request (93 bytes) input to log/59/server.input 09:40:50.940327 Identifying ourselves as friends 09:40:50.943191 Response sent (56 bytes) and written to log/59/server.response 09:40:50.943305 special request received, no persistency 09:40:50.943373 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd Testnum 510 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind510 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind510 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind534 ./libtest/libtests lib533 ftp://non-existing-host.haxx.se/path/534 ftp://127.0.0.1:41867/path/534 > log/22/stdout534 2> log/22/stderr534 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind544 ./libtest/libtests lib544 http://127.0.0.1:42107/544 > log/3/stdout544 2> log/3/stderr544 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind542 ./libtest/libtests lib542 ftp://127.0.0.1:32769/542 > log/8/stdout542 2> log/8/stderr542 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind546 ./libtest/libtests lib533 ftp://127.0.0.1:33417/path/546 ftp://127.0.0.1:33417/path/546 > log/1/stdout546 2> log/1/stderr546 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind540 ./libtest/libtests lib540 http://test.remote.example.com/path/540 http://127.0.0.1:45579 silly:person custom.set.host.name > log/12/stdout540 2> log/12/stderr540 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind524 ./libtest/libtests lib524 ftp://127.0.0.1:45965/path/to/ > log/36/stdout524 2> log/36/stderr524 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind532 ./libtest/libtests lib526 ftp://127.0.0.1:37935/path/532 > log/24/stdout532 2> log/24/stderr532 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind551 ./libtest/libtests lib547 http://test.remote.example.com/path/551 http://127.0.0.1:34239 s1lly:pers0n > log/45/stdout551 2> log/45/stderr551 * starts no server test 0557...[curl_mprintf() testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind557 ./libtest/libtests lib557 nothing > log/16/stdout557 2> log/16/stderr557 557: stdout FAILED: --- log/16/check-expected 2025-07-18 09:40:52.548339231 +0000 +++ log/16/check-generated 2025-07-18 09:40:52.546602192 +0000 @@ -1,10 +0,0 @@ -All curl_mprintf() unsigned short tests OK![LF] -All curl_mprintf() signed short tests OK![LF] -All curl_mprintf() unsigned int tests OK![LF] -All curl_mprintf() signed int tests OK![LF] -All curl_mprintf() unsigned long tests OK![LF] -All curl_mprintf() signed long tests OK![LF] -All curl_mprintf() curl_off_t tests OK![LF] -All curl_mprintf() strings tests OK![LF] -All float strings tests OK![LF] -All curl_mprintf() octal & hexadecimal tests OK![LF] == Contents of files in the log/16/ dir after test 557 === Start of file check-expected All curl_mprintf() unsigned short tests OK![LF] All curl_mprintf() signed short tests OK![LF] All curl_mprintf() unsigned int tests OK![LF] All curl_mprintf() signed int tests OK![LF] All curl_mprintf() unsigned long tests OK![LF] All curl_mprintf() signed long tests OK![LF] All curl_mprintf() curl_off_t tests OK![LF] All curl_mprintf() strings tests OK![LF] All float strings tests OK![LF] All curl_mprintf() octal & hexadecimal tests OK![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind557 ./libtest/libtests lib557 nothing > log/16/stdout557 2> log/16/stderr557 === End of file commands.log === Start of file server.cmd Testnum 557 === End of file server.cmd === Start of file valgrind557 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind557 test 0535...[HTTP GET multi two files with FAILONERROR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind535 ./libtest/libtests lib533 http://127.0.0.1:34827/535 http://127.0.0.1:34827/5350001 > log/21/stdout535 2> log/21/stderr535 535: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 535 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind535 ./libtest/libtests lib533 http://127.0.0.1:34827/535 http://127.0.0.1:34827/5350001 > log/21/stdout535 2> log/21/stderr535 === End of file commands.log === Start of file http_server.log 09:40:51.538198 ====> Client connect 09:40:51.538642 accept_connection 3 returned 4 09:40:51.538807 accept_connection 3 returned 0 09:40:51.538914 Read 93 bytes 09:40:51.538988 Process 93 bytes request 09:40:51.539059 Got request: GET /verifiedserver HTTP/1.1 09:40:51.539123 Are-we-friendly question received 09:40:51.539323 Wrote request (93 bytes) input to log/21/server.input 09:40:51.539569 Identifying ourselves as friends 09:40:51.540325 Response sent (56 bytes) and written to log/21/server.response 09:40:51.540430 special request received, no persistency 09:40:51.540600 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 535 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind535 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind535 test 0531...[FTP PORT upload using multi interface and get 425 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind531 ./libtest/libtests lib525 ftp://127.0.0.1:34069/path/531 log/25/upload531 > log/25/stdout531 2> log/25/stderr531 531: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 531 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind531 ./libtest/libtests lib525 ftp://127.0.0.1:34069/path/531 log/25/upload531 > log/25/stdout531 2> log/25/stderr531 === End of file commands.log === Start of file ftp_server.log 09:40:51.336541 ====> Client connect 09:40:51.337870 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | |CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind533 ./libtest/libtests lib533 ftp://127.0.0.1:35595/path/533 ftp://127.0.0.1:35595/path/533 > log/23/stdout533 2> log/23/stderr533 |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.341339 < "USER anonymous" 09:40:51.342686 > "331 We are happy you popped in![CR][LF]" 09:40:51.346566 < "PASS ftp@example.com" 09:40:51.347862 > "230 Welcome you silly person[CR][LF]" 09:40:51.352097 < "PWD" 09:40:51.352493 > "257 "/" is current directory[CR][LF]" 09:40:51.361290 < "EPSV" 09:40:51.361610 ====> Passive DATA channel requested by client 09:40:51.362536 DATA sockfilt for passive data channel starting... 09:40:51.395528 DATA sockfilt for passive data channel started (pid 101588) 09:40:51.401298 DATA sockfilt for passive data channel listens on port 38955 09:40:51.402036 > "229 Entering Passive Mode (|||38955|)[LF]" 09:40:51.402320 Client has been notified that DATA conn will be accepted on port 38955 09:40:51.404407 Client connects to port 38955 09:40:51.404686 ====> Client established passive DATA connection on port 38955 09:40:51.405506 < "TYPE I" 09:40:51.407636 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.409279 < "SIZE verifiedserver" 09:40:51.409692 > "213 17[CR][LF]" 09:40:51.414865 < "RETR verifiedserver" 09:40:51.416702 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.417592 =====> Closing passive DATA connection... 09:40:51.421016 Server disconnects passive DATA connection 09:40:51.421367 Fancy that; client wants to DISC, too 09:40:51.422506 Server disconnected passive DATA connection 09:40:51.422897 DATA sockfilt for passive data channel quits (pid 101588) 09:40:51.428136 DATA sockfilt for passive data channel quit (pid 101588) 09:40:51.428395 =====> Closed passive DATA connection 09:40:51.429389 > "226 File transfer complete[CR][LF]" 09:40:51.459313 < "QUIT" 09:40:51.463912 > "221 bye bye baby[CR][LF]" 09:40:51.464644 MAIN sockfilt said DISC 09:40:51.465119 ====> Client disconnected 09:40:51.465674 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.589624 ====> Client connect 09:40:51.591916 Received DATA (on stdin) 09:40:51.592053 > 160 bytes data, server => client 09:40:51.592152 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.592246 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.592336 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.593185 < 16 bytes data, client => server 09:40:51.593335 'USER anonymous\r\n' 09:40:51.595722 Received DATA (on stdin) 09:40:51.595986 > 33 bytes data, server => client 09:40:51.597356 '331 We are happy you popped in!\r\n' 09:40:51.599250 < 22 bytes data, client => server 09:40:51.599526 'PASS ftp@example.com\r\n' 09:40:51.601092 Received DATA (on stdin) 09:40:51.601249 > 30 bytes data, server => client 09:40:51.601933 '230 Welcome you silly person\r\n' 09:40:51.602811 < 5 bytes data, client => server 09:40:51.602978 'PWD\r\n' 09:40:51.607887 Received DATA (on stdin) 09:40:51.608018 > 30 bytes data, server => client 09:40:51.608101 '257 "/" is current directory\r\n' 09:40:51.614125 < 6 bytes data, client => server 09:40:51.614279 'EPSV\r\n' 09:40:51.656352 Received DATA (on stdin) 09:40:51.656592 > 38 bytes data, server => client 09:40:51.656716 '229 Entering Passive Mode (|||38955|)\n' 09:40:51.658255 < 8 bytes data, client => server 09:40:51.658411 'TYPE I\r\n' 09:40:51.661369 Received DATA (on stdin) 09:40:51.661605 > 33 bytes data, server => client 09:40:51.661711 '200 I modify TYPE as you wanted\r\n' 09:40:51.662391 < 21 bytes data, client => server 09:40:51.662617 'SIZE verifiedserver\r\n' 09:40:51.663406 Received DATA (on stdin) 09:40:51.663662 > 8 bytes data, server => client 09:40:51.663762 '213 17\r\n' 09:40:51.667695 < 21 bytes data, client => server 09:40:51.667853 'RETR verifiedserver\r\n' 09:40:51.669135 Received DATA (on stdin) 09:40:51.669361 > 29 bytes data, server => client 09:40:51.669629 '150 Binary junk (17 bytes).\r\n' 09:40:51.682424 Received DATA (on stdin) 09:40:51.682642 > 28 bytes data, server => client 09:40:51.682835 '226 File transfer complete\r\n' 09:40:51.711909 < 6 bytes data, client => server 09:40:51.712107 'QUIT\r\n' 09:40:51.713380 Received DATA (on stdin) 09:40:51.713708 > 18 bytes data, server => client 09:40:51.713914 '221 bye bye baby\r\n' 09:40:51.718033 ====> Client disconnect 09:40:51.719820 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.644087 Running IPv4 version 09:40:51.648191 Listening on port 38955 09:40:51.648687 Wrote pid 101588 to log/25/server/ftp_sockdata.pid 09:40:51.648856 Received PING (on stdin) 09:40:51.650560 Received PORT (on stdin) 09:40:51.657833 ====> Client connect 09:40:51.670958 Received DATA (on stdin) 09:40:51.671106 > 17 bytes data, server => client 09:40:51.671187 'WE ROOLZ: 87701\r\n' 09:40:51.672073 ====> Client disconnect 09:40:51.675334 Received DISC (on stdin) 09:40:51.675602 Crikey! Client also wants to disconnect 09:40:51.675751 Received ACKD (on stdin) 09:40:51.676986 Received QUIT (on stdin) 09:40:51.677117 quits 09:40:51.677613 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY STOR 425 Permission Denied. File Exists. Testnum 531 === End of file server.cmd === Start of file upload531 Moooooooooooo don't upload this === End of file upload531 === Start of file valgrind531 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind531 test 0530...[multi_socket interface transfer with callbacks returning error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind530 ./libtest/libtests lib530 http://127.0.0.1:42323/file530 > log/27/stdout530 2> log/27/stderr530 libtests returned 1, when expecting 0 530: exit FAILED == Contents of files in the log/27/ dir after test 530 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind530 ./libtest/libtests lib530 http://127.0.0.1:42323/file530 > log/27/stdout530 2> log/27/stderr530 === End of file commands.log === Start of file http_server.log 09:40:51.544993 ====> Client connect 09:40:51.545263 accept_connection 3 returned 4 09:40:51.545405 accept_connection 3 returned 0 09:40:51.545688 Read 93 bytes 09:40:51.545782 Process 93 bytes request 09:40:51.545867 Got request: GET /verifiedserver HTTP/1.1 09:40:51.545948 Are-we-friendly question received 09:40:51.546160 Wrote request (93 bytes) input to log/27/server.input 09:40:51.546337 Identifying ourselves as friends 09:40:51.547070 Response sent (56 bytes) and written to log/27/server.response 09:40:51.547177 special request received, no persistency 09:40:51.547241 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 530 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind530 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind530 test 0528...[HTTP GET same file using different handles but same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind528 ./libtest/libtests lib526 http://127.0.0.1:36877/path/528 > log/29/stdout528 2> log/29/stderr528 528: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 528 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind528 ./libtest/libtests lib526 http://127.0.0.1:36877/path/528 > log/29/stdout528 2> log/29/stderr528 === End of file commands.log === Start of file http_server.log 09:40:51.518013 ====> Client connect 09:40:51.518367 accept_connection 3 returned 4 09:40:51.518608 accept_connection 3 returned 0 09:40:51.518760 Read 93 bytes 09:40:51.518850 Process 93 bytes request 09:40:51.518947 Got request: GET /verifiedserver HTTP/1.1 09:40:51.519035 Are-we-friendly question received 09:40:51.519282 Wrote request (93 bytes) input to log/29/server.input 09:40:51.519534 Identifying ourselves as friends 09:40:51.520262 Response sent (56 bytes) and written to log/29/server.response 09:40:51.520350 special request received, no persistency 09:40:51.520410 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 528 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind528 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind528 test 0523...[HTTP GET with proxy and CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind523 ./libtest/libtests lib523 http://www.example.com:999/523 http://127.0.0.1:37551 > log/37/stdout523 2> log/37/stderr523 523: stdout FAILED: --- log/37/check-expected 2025-07-18 09:40:52.729459959 +0000 +++ log/37/check-generated 2025-07-18 09:40:52.728602100 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/37/ dir after test 523 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind523 ./libtest/libtests lib523 http://www.example.com:999/523 http://127.0.0.1:37551 > log/37/stdout523 2> log/37/stderr523 === End of file commands.log === Start of file http_server.log 09:40:51.405858 ====> Client connect 09:40:51.406196 accept_connection 3 returned 4 09:40:51.406388 accept_connection 3 returned 0 09:40:51.406729 Read 93 bytes 09:40:51.406853 Process 93 bytes request 09:40:51.406949 Got request: GET /verifiedserver HTTP/1.1 09:40:51.407055 Are-we-friendly question received 09:40:51.407313 Wrote request (93 bytes) input to log/37/server.input 09:40:51.407597 Identifying ourselves as friends 09:40:51.411991 Response sent (56 bytes) and written to log/37/server.response 09:40:51.412164 special request received, no persistency 09:40:51.412271 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 523 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind523 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind523 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind566 ./libtest/libtests lib566 http://127.0.0.1:45607/566 log/32/ip566 > log/32/stdout566 2> log/32/stderr566 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind538 ./libtest/libtests lib504 ftp://127.0.0.1:38699/538 > log/15/stdout538 2> log/15/stderr538 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind545 ./libtest/libtests lib544 http://127.0.0.1:39659/545 > log/2/stdout545 2> log/2/stderr545 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind529 ./libtest/libtests lib525 ftp://127.0.0.1:34373/path/529 log/28/upload529 > log/28/stdout529 2> log/28/stderr529 test 0522...[HTTP GET with CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind522 ./libtest/libtests lib521 http://127.0.0.1/522 33511 > log/38/stdout522 2> log/38/stderr522 522: stdout FAILED: --- log/38/check-expected 2025-07-18 09:40:52.808552539 +0000 +++ log/38/check-generated 2025-07-18 09:40:52.807602060 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/38/ dir after test 522 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind522 ./libtest/libtests lib521 http://127.0.0.1/522 33511 > log/38/stdout522 2> log/38/stderr522 === End of file commands.log === Start of file http_server.log 09:40:51.460226 ====> Client connect 09:40:51.460771 accept_connection 3 returned 4 09:40:51.460978 accept_connection 3 returned 0 09:40:51.461141 Read 93 bytes 09:40:51.461258 Process 93 bytes request 09:40:51.461355 Got request: GET /verifiedserver HTTP/1.1 09:40:51.461542 Are-we-friendly question received 09:40:51.461867 Wrote request (93 bytes) input to log/38/server.input 09:40:51.462091 Identifying ourselves as friends 09:40:51.472279 Response sent (56 bytes) and written to log/38/server.response 09:40:51.472428 special request received, no persistency 09:40:51.472648 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 522 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind522 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind522 test 0520...[FTP RETR with FILETIME] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind520 ./libtest/libtests lib520 ftp://127.0.0.1:41781/520 > log/41/stdout520 2> log/41/stderr520 520: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 520 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind520 ./libtest/libtests lib520 ftp://127.0.0.1:41781/520 > log/41/stdout520 2> log/41/stderr520 === End of file commands.log === Start of file ftp_server.log 09:40:50.975899 ====> Client connect 09:40:50.977208 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:50.979896 < "USER anonymous" 09:40:50.980275 > "331 We are happy you popped in![CR][LF]" 09:40:50.982496 < "PASS ftp@example.com" 09:40:50.986970 > "230 Welcome you silly person[CR][LF]" 09:40:50.989087 < "PWD" 09:40:50.989479 > "257 "/" is current directory[CR][LF]" 09:40:50.991294 < "EPSV" 09:40:50.991532 ====> Passive DATA channel requested by client 09:40:50.991692 DATA sockfilt for passive data channel starting... 09:40:51.009007 DATA sockfilt for passive data channel started (pid 100926) 09:40:51.010065 DATA sockfilt for passive data channel listens on port 37361 09:40:51.010535 > "229 Entering Passive Mode (|||37361|)[LF]" 09:40:51.010850 Client has been notified that DATA conn will be accepted on port 37361 09:40:51.012290 Client connects to port 37361 09:40:51.012610 ====> Client established passive DATA connection on port 37361 09:40:51.013577 < "TYPE I" 09:40:51.014077 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.016808 < "SIZE verifiedserver" 09:40:51.017451 > "213 17[CR][LF]" 09:40:51.020607 < "RETR verifiedserver" 09:40:51.021159 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.021933 =====> Closing passive DATA connection... 09:40:51.022167 Server disconnects passive DATA connection 09:40:51.023663 Server disconnected passive DATA connection 09:40:51.024337 DATA sockfilt for passive data channel quits (pid 100926) 09:40:51.026708 DATA sockfilt for passive data channel quit (pid 100926) 09:40:51.027052 =====> Closed passive DATA connection 09:40:51.027417 > "226 File transfer complete[CR][LF]" 09:40:51.064148 < "QUIT" 09:40:51.064551 > "221 bye bye baby[CR][LF]" 09:40:51.071347 MAIN sockfilt said DISC 09:40:51.072346 ====> Client disconnected 09:40:51.072922 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:50.228905 ====> Client connect 09:40:50.231235 Received DATA (on stdin) 09:40:50.231390 > 160 bytes data, server => client 09:40:50.231649 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:50.231761 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:50.231887 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:50.232771 < 16 bytes data, client => server 09:40:50.232933 'USER anonymous\r\n' 09:40:50.234292 Received DATA (on stdin) 09:40:50.234426 > 33 bytes data, server => client 09:40:50.234618 '331 We are happy you popped in!\r\n' 09:40:50.235230 < 22 bytes data, client => server 09:40:50.235377 'PASS ftp@example.com\r\n' 09:40:50.241017 Received DATA (on stdin) 09:40:50.241171 > 30 bytes data, server => client 09:40:50.241270 '230 Welcome you silly person\r\n' 09:40:50.241956 < 5 bytes data, client => server 09:40:50.242110 'PWD\r\n' 09:40:50.243551 Received DATA (on stdin) 09:40:50.243692 > 30 bytes data, server => client 09:40:50.243777 '257 "/" is current directory\r\n' 09:40:50.247559 < 6 bytes data, client => server 09:40:50.247724 'EPSV\r\n' 09:40:50.264252 Received DATA (on stdin) 09:40:50.264424 > 38 bytes data, server => client 09:40:50.264627 '229 Entering Passive Mode (|||37361|)\n' 09:40:50.266612 < 8 bytes data, client => server 09:40:50.266901 'TYPE I\r\n' 09:40:50.267776 Received DATA (on stdin) 09:40:50.267921 > 33 bytes data, server => clienCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind561 ./libtest/libtests lib549 "ftp://www.example.com/moo/561;type=i" http://127.0.0.1:44647 ascii > log/7/stdout561 2> log/7/stderr561 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind562 ./libtest/libtests lib562 'ftp://127.0.0.1:23456/562;type=A' 41385 > log/60/stdout562 2> log/60/stderr562 t 09:40:50.268025 '200 I modify TYPE as you wanted\r\n' 09:40:50.269925 < 21 bytes data, client => server 09:40:50.270043 'SIZE verifiedserver\r\n' 09:40:50.271150 Received DATA (on stdin) 09:40:50.271285 > 8 bytes data, server => client 09:40:50.271376 '213 17\r\n' 09:40:50.273779 < 21 bytes data, client => server 09:40:50.273930 'RETR verifiedserver\r\n' 09:40:50.274870 Received DATA (on stdin) 09:40:50.275023 > 29 bytes data, server => client 09:40:50.275101 '150 Binary junk (17 bytes).\r\n' 09:40:50.281135 Received DATA (on stdin) 09:40:50.281319 > 28 bytes data, server => client 09:40:50.281417 '226 File transfer complete\r\n' 09:40:50.317207 < 6 bytes data, client => server 09:40:50.317373 'QUIT\r\n' 09:40:50.318247 Received DATA (on stdin) 09:40:50.318395 > 18 bytes data, server => client 09:40:50.318574 '221 bye bye baby\r\n' 09:40:50.324581 ====> Client disconnect 09:40:50.325568 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.260931 Running IPv4 version 09:40:51.261568 Listening on port 37361 09:40:51.262025 Wrote pid 100926 to log/41/server/ftp_sockdata.pid 09:40:51.262264 Received PING (on stdin) 09:40:51.263135 Received PORT (on stdin) 09:40:51.265697 ====> Client connect 09:40:51.276133 Received DATA (on stdin) 09:40:51.276270 > 17 bytes data, server => client 09:40:51.276352 'WE ROOLZ: 77417\r\n' 09:40:51.276764 Received DISC (on stdin) 09:40:51.276920 ====> Client forcibly disconnected 09:40:51.278303 Received QUIT (on stdin) 09:40:51.278426 quits 09:40:51.279010 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 213 20030405060708 Testnum 520 === End of file server.cmd === Start of file valgrind520 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind520 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind555 ./libtest/libtests lib555 http://test.remote.example.com/path/555 http://127.0.0.1:41285 testuser:testpass > log/18/stdout555 2> log/18/stderr555 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind539 ./libtest/libtests lib539 ftp://127.0.0.1:34087/path/to/the/file/539 ftp://127.0.0.1:34087/path/to/the/file/5390001 > log/13/stdout539 2> log/13/stderr539 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind526 ./libtest/libtests lib526 ftp://127.0.0.1:36895/path/526 > log/33/stdout526 2> log/33/stderr526 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind527 ./libtest/libtests lib526 ftp://127.0.0.1:40969/path/527 > log/31/stdout527 2> log/31/stderr527 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind554 ./libtest/libtests lib554 http://127.0.0.1:42899/554 > log/39/stdout554 2> log/39/stderr554 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind549 ./libtest/libtests lib549 ftp://www.example.com/moo/549 http://127.0.0.1:35945 > log/57/stdout549 2> log/57/stderr549 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind556 ./libtest/libtests lib556 http://127.0.0.1:44383 > log/17/stdout556 2> log/17/stderr556 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind553 ./libtest/libtests lib553 http://127.0.0.1:43913/path/553 > log/30/stdout553 2> log/30/stderr553 test 0546...[FTP RETR a non-existing file then a found one using the multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind546 ./libtest/libtests lib533 ftp://127.0.0.1:33417/path/546 ftp://127.0.0.1:33417/path/546 > log/1/stdout546 2> log/1/stderr546 546: stdout FAILED: --- log/1/check-expected 2025-07-18 09:40:52.921438462 +0000 +++ log/1/check-generated 2025-07-18 09:40:52.919602003 +0000 @@ -1,6 +0,0 @@ -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] == Contents of files in the log/1/ dir after test 546 === Start of file check-expected data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind546 ./libtest/libtests lib533 ftp://127.0.0.1:33417/path/546 ftp://127.0.0.1:33417/path/546 > log/1/stdout546 2> log/1/stderr546 === End of file commands.log === Start of file ftp_server.log 09:40:51.392716 ====> Client connect 09:40:51.394132 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.396812 < "USER anonymous" 09:40:51.397181 > "331 We are happy you popped in![CR][LF]" 09:40:51.399581 < "PASS ftp@example.com" 09:40:51.400536 > "230 Welcome you silly person[CR][LF]" 09:40:51.402498 < "PWD" 09:40:51.402925 > "257 "/" is current directory[CR][LF]" 09:40:51.404872 < "EPSV" 09:40:51.405143 ====> Passive DATA channel requested by client 09:40:51.405321 DATA sockfilt for passive data channel starting... 09:40:51.417917 DATA sockfilt for passive data channel started (pid 101649) 09:40:51.420062 DATA sockfilt for passive data channel listens on port 36485 09:40:51.420463 > "229 Entering Passive Mode (|||36485|)[LF]" 09:40:51.420687 Client has been notified that DATA conn will be accepted on port 36485 09:40:51.426387 Client connects to port 36485 09:40:51.426685 ====> Client established passive DATA connection on port 36485 09:40:51.427541 < "TYPE I" 09:40:51.429265 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.430021 < "SIZE verifiedserver" 09:40:51.431382 > "213 17[CR][LF]" 09:40:51.432590 < "RETR verifiedserver" 09:40:51.433370 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.436347 =====> Closing passive DATA connection... 09:40:51.436578 Server disconnects passive DATA connection 09:40:51.436899 Fancy that; client wants to DISC, too 09:40:51.437925 Server disconnected passive DATA connection 09:40:51.438168 DATA sockfilt for passive data channel quits (pid 101649) 09:40:51.440343 DATA sockfilt for passive data channel quit (pid 101649) 09:40:51.440707 =====> Closed passive DATA connection 09:40:51.441121 > "226 File transfer complete[CR][LF]" 09:40:51.479724 < "QUIT" 09:40:51.482807 > "221 bye bye baby[CR][LF]" 09:40:51.486168 MAIN sockfilt said DISC 09:40:51.488394 ====> Client disconnected 09:40:51.488997 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:50.645979 ====> Client connect 09:40:50.648161 Received DATA (on stdin) 09:40:50.648284 > 160 bytes data, server => client 09:40:50.648386 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:50.648600 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:50.648725 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:50.649524 < 16 bytes data, client => server 09:40:50.649662 'USER anonymous\r\n' 09:40:50.651302 Received DATA (on stdin) 09:40:50.651505 > 33 bytes data, server => client 09:40:50.651597 '331 We are happy you popped in!\r\n' 09:40:50.652107 < 22 bytes data, client => server 09:40:50.652232 'PASS ftp@example.com\r\n' 09:40:50.653706 Received DATA (on stdin) 09:40:50.653832 > 30 bytes data, server => client 09:40:50.654557 '230 Welcome you silly person\r\n' 09:40:50.655394 < 5 bytes data, client => server 09:40:50.655610 'PWD\r\n' 09:40:50.656910 Received DATA (on stdin) 09:40:50.657037 > 30 bytes data, server => client 09:40:50.657118 '257 "/" is current directory\r\n' 09:40:50.657815 < 6 bytes data, client => server 09:40:50.657933 'EPSV\r\n' 09:40:50.674761 Received DATA (on stdin) 09:40:50.674889 > 38 bytes data, server => client 09:40:50.674968 '229 Entering Passive Mode (|||36485|)\n' 09:40:50.679770 < 8 bytes data, client => server 09:40:50.679897 'TYPE I\r\n' 09:40:50.681669 Received DATA (on stdin) 09:40:50.681814 > 33 bytes data, server => client 09:40:50.681984 '200 I modify TYPE as you wanted\r\n' 09:40:50.682610 < 21 bytes data, client => server 09:40:50.682756 'SIZE verifiedserver\r\n' 09:40:50.684113 Received DATA (on stdin) 09:40:50.684250 > 8 bytes data, server => client 09:40:50.684425 '213 17\r\n' 09:40:50.685583 < 21 bytes data, client => server 09:40:50.685722 'RETR verifiedserver\r\n' 09:40:50.686742 Received DATA (on stdin) 09:40:50.686876 > 29 bytes data, server => client 09:40:50.687760 '150 Binary junk (17 bytes).\r\n' 09:40:50.695184 Received DATA (on stdin) 09:40:50.695323 > 28 bytes data, server => client 09:40:50.695412 '226 File transfer complete\r\n' 09:40:50.731515 < 6 bytes data, client => server 09:40:50.731743 'QUIT\r\n' 09:40:50.735543 Received DATA (on stdin) 09:40:50.735699 > 18 bytes data, server => client 09:40:50.735899 '221 bye bye baby\r\n' 09:40:50.739605 ====> Client disconnect 09:40:50.741548 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.669324 Running IPv4 version 09:40:51.669927 Listening on port 36485 09:40:51.670322 Wrote pid 101649 to log/1/server/ftp_sockdata.pid 09:40:51.670564 Received PING (on stdin) 09:40:51.672017 Received PORT (on stdin) 09:40:51.679508 ====> Client connect 09:40:51.687435 Received DATA (on stdin) 09:40:51.687637 > 17 bytes data, server => client 09:40:51.688373 'WE ROOLZ: 77379\r\n' 09:40:51.689221 ====> Client disconnect 09:40:51.690887 Received DISC (on stdin) 09:40:51.691038 Crikey! Client also wants to disconnect 09:40:51.691146 Received ACKD (on stdin) 09:40:51.692097 Received QUIT (on stdin) 09:40:51.692221 quits 09:40:51.692761 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 550 the file doesn't exist COUNT RETR 1 REPLY SIZE 500 Can't check for file existence COUNT SIZE 1 Testnum 546 === End of file server.cmd === Start of file valgrind546 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind550 ./libtest/libtests lib549 ftp://www.example.com/moo/550 http://127.0.0.1:34639 ascii > log/53/stdout550 2> log/53/stderr550 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind565 ./libtest/libtests lib510 http://127.0.0.1:46607/565 > log/9/stdout565 2> log/9/stderr565 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind547 ./libtest/libtests lib547 http://test.remote.example.com/path/547 http://127.0.0.1:38899 testuser:testpass > log/62/stdout547 2> log/62/stderr547 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind559 ./libtest/libtests lib559 http://127.0.0.1:36913/559 > log/10/stdout559 2> log/10/stderr559 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind548 ./libtest/libtests lib547 http://test.remote.example.com/path/548 http://127.0.0.1:44381 testuser:testpass > log/61/stdout548 2> log/61/stderr548 file valgrind546 test 0545...[HTTP POST binary with embedded zero and no trailing zero] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind545 ./libtest/libtests lib544 http://127.0.0.1:39659/545 > log/2/stdout545 2> log/2/stderr545 545: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 545 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind545 ./libtest/libtests lib544 http://127.0.0.1:39659/545 > log/2/stdout545 2> log/2/stderr545 === End of file commands.log === Start of file http_server.log 09:40:51.689933 ====> Client connect 09:40:51.690275 accept_connection 3 returned 4 09:40:51.690536 accept_connection 3 returned 0 09:40:51.690739 Read 93 bytes 09:40:51.690878 Process 93 bytes request 09:40:51.690985 Got request: GET /verifiedserver HTTP/1.1 09:40:51.691075 Are-we-friendly question received 09:40:51.691316 Wrote request (93 bytes) input to log/2/server.input 09:40:51.691646 Identifying ourselves as friends 09:40:51.692635 Response sent (56 bytes) and written to log/2/server.response 09:40:51.692769 special request received, no persistency 09:40:51.692850 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 545 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind545 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind545 test 0544...[HTTP POST text data using CURLOPT_COPYPOSTFIELDS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind544 ./libtest/libtests lib544 http://127.0.0.1:42107/544 > log/3/stdout544 2> log/3/stderr544 544: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 544 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind544 ./libtest/libtests lib544 http://127.0.0.1:42107/544 > log/3/stdout544 2> log/3/stderr544 === End of file commands.log === Start of file http_server.log 09:40:51.651198 ====> Client connect 09:40:51.651652 accept_connection 3 returned 4 09:40:51.651861 accept_connection 3 returned 0 09:40:51.651988 Read 93 bytes 09:40:51.652115 Process 93 bytes request 09:40:51.652228 Got request: GET /verifiedserver HTTP/1.1 09:40:51.652404 Are-we-friendly question received 09:40:51.652979 Wrote request (93 bytes) input to log/3/server.input 09:40:51.653187 Identifying ourselves as friends 09:40:51.654156 Response sent (56 bytes) and written to log/3/server.response 09:40:51.654296 special request received, no persistency 09:40:51.654366 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 544 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind544 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind544 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind552 ./libtest/libtests lib552 http://test.remote.example.com/path/552 http://s1lly:pers0n@127.0.0.1:34655/ > log/44/stdout552 2> log/44/stderr552 test 0561...[FTP RETR with CURLOPT_PROXY_TRANSFER_MODE, ASCII transfer and type=i] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind561 ./libtest/libtests lib549 "ftp://www.example.com/moo/561;type=i" http://127.0.0.1:44647 ascii > log/7/stdout561 2> log/7/stderr561 561: stdout FAILED: --- log/7/check-expected 2025-07-18 09:40:53.023585450 +0000 +++ log/7/check-generated 2025-07-18 09:40:53.022601951 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/7/ dir after test 561 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind561 ./libtest/libtests lib549 "ftp://www.example.com/moo/561;type=i" http://127.0.0.1:44647 ascii > log/7/stdout561 2> log/7/stderr561 === End of file commands.log === Start of file http_server.log 09:40:51.787034 ====> Client connect 09:40:51.787336 accept_connection 3 returned 4 09:40:51.787651 accept_connection 3 returned 0 09:40:51.788263 Read 93 bytes 09:40:51.788428 Process 93 bytes request 09:40:51.788617 Got request: GET /verifiedserver HTTP/1.1 09:40:51.788711 Are-we-friendly question received 09:40:51.788946 Wrote request (93 bytes) input to log/7/server.input 09:40:51.789122 Identifying ourselves as friends 09:40:51.793930 Response sent (56 bytes) and written to log/7/server.response 09:40:51.794044 special request received, no persistency 09:40:51.794118 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK * Request completely sent off < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 561 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind561 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind561 test 0542...[FTP a file with NOBODY yes and HEADER no] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind542 ./libtest/libtests lib542 ftp://127.0.0.1:32769/542 > log/8/stdout542 2> log/8/stderr542 542: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 542 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind542 ./libtest/libtests lib542 ftp://127.0.0.1:32769/542 > log/8/stdout542 2> log/8/stderr542 === End of file commands.log === Start of file ftp_server.log 09:40:51.357162 ====> Client connect 09:40:51.362019 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.363819 < "USER anonymous" 09:40:51.364236 > "331 We are happy you popped in![CR][LF]" 09:40:51.367609 < "PASS ftp@example.com" 09:40:51.368088 > "230 Welcome you silly person[CR][LF]" 09:40:51.371489 < "PWD" 09:40:51.371978 > "257 "/" is current directory[CR][LF]" 09:40:51.375619 < "EPSV" 09:40:51.375999 ====> Passive DATA channel requested by client 09:40:51.376223 DATA sockfilt for passive data channel starting... 09:40:51.393465 DATA sockfilt for passive data channel started (pid 101608) 09:40:51.394486 DATA sockfilt for passive data channel listens on port 37367 09:40:51.395090 > "229 Entering Passive Mode (|||37367|)[LF]" 09:40:51.395324 Client has been notified that DATA conn will be accepted on port 37367 09:40:51.396512 Client connects to port 37367 09:40:51.396873 ====> Client established passive DATA connection on port 37367 09:40:51.397632 < "TYPE I" 09:40:51.398079 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.404854 < "SIZE verifiedserver" 09:40:51.406009 > "213 17[CR][LF]" 09:40:51.408242 < "RETR verifiedserver" 09:40:51.408697 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.409446 =====> Closing passive DATA connection... 09:40:51.409699 Server disconnects passive DATA connection 09:40:51.411373 Server disconnected passive DATA connection 09:40:51.411648 DATA sockfilt for passive data channel quits (pid 101608) 09:40:51.413692 DATA sockfilt for passive data channel quit (pid 101608) 09:40:51.414035 =====> Closed passive DATA connection 09:40:51.414405 > "226 File transfer complete[CR][LF]" 09:40:51.452826 < "QUIT" 09:40:51.453950 > "221 bye bye baby[CR][LF]" 09:40:51.458128 MAIN sockfilt said DISC 09:40:51.459211 ====> Client disconnected 09:40:51.459836 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.610198 ====> Client connect 09:40:51.612107 Received DATA (on stdin) 09:40:51.612252 > 160 bytes data, server => client 09:40:51.612684 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.612821 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.612894 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.616368 < 16 bytes data, client => server 09:40:51.616610 'USER anonymous\r\n' 09:40:51.619564 Received DATA (on stdin) 09:40:51.619734 > 33 bytes data, server => client 09:40:51.619823 '331 We are happy you popped in!\r\n' 09:40:51.620527 < 22 bytes data, client => server 09:40:51.620675 'PASS ftp@example.com\r\n' 09:40:51.623560 Received DATA (on stdin) 09:40:51.623708 > 30 bytes data, server => client 09:40:51.623800 '230 Welcome you silly person\r\n' 09:40:51.624352 < 5 bytes data, client => server 09:40:51.624568 'PWD\r\n' 09:40:51.627569 Received DATA (on stdin) 09:40:51.627729 > 30 bytes data, server => client 09:40:51.627810 '257 "/" is current directory\r\n' 09:40:51.628603 < 6 bytes data, client => server 09:40:51.628744 'EPSV\r\n' 09:40:51.648742 Received DATA (on stdin) 09:40:51.648868 > 38 bytes data, server => client 09:40:51.648954 '229 Entering Passive Mode (|||37367|)\n' 09:40:51.650711 < 8 bytes data, client => server 09:40:51.650819 'TYPE I\r\n' 09:40:51.655572 Received DATA (on stdin) 09:40:51.655710 > 33 bytes data, server => client 09:40:51.655789 '200 I modify TYPE as you wanted\r\n' 09:40:51.657943 < 21 bytes data, client => server 09:40:51.658097 'SIZE verifiedserver\r\n' 09:40:51.659007 Received DATA (on stdin) 09:40:51.659152 > 8 bytes data, server => client 09:40:51.659303 '213 17\r\n' 09:40:51.661349 < 21 bytes data, client => server 09:40:51.661554 'RETR verifiedserver\r\n' 09:40:51.662354 Received DATA (on stdin) 09:40:51.662556 > 29 bytes data, server => client 09:40:51.662651 '150 Binary junk (17 bytes).\r\n' 09:40:51.668115 Received DATA (on stdin) 09:40:51.668274 > 28 bytes data, server => client 09:40:51.668368 '226 File transfer complete\r\n' 09:40:51.705850 < 6 bytes data, client => server 09:40:51.706026 'QUIT\r\n' 09:40:51.706877 Received DATA (on stdin) 09:40:51.707029 > 18 bytes data, server => client 09:40:51.707185 '221 bye bye baby\r\n' 09:40:51.711419 ====> Client disconnect 09:40:51.712262 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.645814 Running IPv4 version 09:40:51.646320 Listening on port 37367 09:40:51.646765 Wrote pid 101608 to log/8/server/ftp_sockdata.pid 09:40:51.646916 Received PING (on stdin) 09:40:51.647641 Received PORT (on stdin) 09:40:51.649946 ====> Client connect 09:40:51.663853 Received DATA (on stdin) 09:40:51.663972 > 17 bytes data, server => client 09:40:51.664052 'WE ROOLZ: 77502\r\n' 09:40:51.664419 Received DISC (on stdin) 09:40:51.664645 ====> Client forcibly disconnected 09:40:51.665674 Received QUIT (on stdin) 09:40:51.665794 quits 09:40:51.666225 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 542 === End of file server.cmd === Start of file valgrind542 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind542 test 0541...[FTP upload and upload same file again without rewind] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind541 ./libtest/libtests lib541 ftp://127.0.0.1:39847/541 log/11/upload541 > log/11/stdout541 2> log/11/stderr541 541: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 541 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind541 ./libtest/libtests lib541 ftp://127.0.0.1:39847/541 log/11/upload541 > log/11/stdout541 2> log/11/stderr541 === End of file commands.log === Start of file ftp_server.log 09:40:51.402553 ====> Client connect 09:40:51.404290 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.407101 < "USER anonymous" 09:40:51.408555 > "331 We are happy you popped in![CR][LF]" 09:40:51.409265 < "PASS ftp@example.com" 09:40:51.410004 > "230 Welcome you silly person[CR][LF]" 09:40:51.411544 < "PWD" 09:40:51.411970 > "257 "/" is current directory[CR][LF]" 09:40:51.413962 < "EPSV" 09:40:51.414236 ====> Passive DATA channel requested by client 09:40:51.414401 DATA sockfilt for passive data channel starting... 09:40:51.426369 DATA sockfilt for passive data channel started (pid 101665) 09:40:51.427447 DATA sockfilt for passive data channel listens on port 40649 09:40:51.427926 > "229 Entering Passive Mode (|||40649|)[LF]" 09:40:51.428132 Client has been notified that DATA conn will be accepted on port 40649 09:40:51.429676 Client connects to port 40649 09:40:51.430040 ====> Client established passive DATA connection on port 40649 09:40:51.431566 < "TYPE I" 09:40:51.432335 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.434005 < "SIZE verifiedserver" 09:40:51.435095 > "213 17[CR][LF]" 09:40:51.436510 < "RETR verifiedserver" 09:40:51.437214 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.437960 =====> Closing passive DATA connection... 09:40:51.438184 Server disconnects passive DATA connection 09:40:51.440657 Server disconnected passive DATA connection 09:40:51.440995 DATA sockfilt for passive data channel quits (pid 101665) 09:40:51.442831 DATA sockfilt for passive data channel quit (pid 101665) 09:40:51.443060 =====> Closed passive DATA connection 09:40:51.443943 > "226 File transfer complete[CR][LF]" 09:40:51.482310 < "QUIT" 09:40:51.483171 > "221 bye bye baby[CR][LF]" 09:40:51.491143 MAIN sockfilt said DISC 09:40:51.492041 ====> Client disconnected 09:40:51.492541 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.655754 ====> Client connect 09:40:51.657621 Received DATA (on stdin) 09:40:51.657768 > 160 bytes data, server => client 09:40:51.658297 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.658428 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.658682 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.659497 < 16 bytes data, client => server 09:40:51.659647 'USER anonymous\r\n' 09:40:51.661128 Received DATA (on stdin) 09:40:51.661254 > 33 bytes data, server => client 09:40:51.661414 '331 We are happy you popped in!\r\n' 09:40:51.661956 < 22 bytes data, client => server 09:40:51.662079 'PASS ftp@example.com\r\n' 09:40:51.663259 Received DATA (on stdin) 09:40:51.663403 > 30 bytes data, server => client 09:40:51.663960 '230 Welcome you silly person\r\n' 09:40:51.664563 < 5 bytes data, client => server 09:40:51.664700 'PWD\r\n' 09:40:51.665950 Received DATA (on stdin) 09:40:51.666103 > 30 bytes data, server => client 09:40:51.666183 '257 "/" is current directory\r\n' 09:40:51.666845 < 6 bytes data, client => server 09:40:51.666968 'EPSV\r\n' 09:40:51.682080 Received DATA (on stdin) 09:40:51.682207 > 38 bytes data, server => client 09:40:51.682291 '229 Entering Passive Mode (|||40649|)\n' 09:40:51.684421 < 8 bytes data, client => server 09:40:51.684642 'TYPE I\r\n' 09:40:51.685705 Received DATA (on stdin) 09:40:51.685838 > 33 bytes data, server => client 09:40:51.686345 '200 I modify TYPE as you wanted\r\n' 09:40:51.686974 < 21 bytes data, client => server 09:40:51.687100 'SIZE verifiedserver\r\n' 09:40:51.688054 Received DATA (on stdin) 09:40:51.688207 > 8 bytes data, server => client 09:40:51.688374 '213 17\r\n' 09:40:51.689427 < 21 bytes data, client => server 09:40:51.689655 'RETR verifiedserver\r\n' 09:40:51.690607 Received DATA (on stdin) 09:40:51.690741 > 29 bytes data, server => client 09:40:51.692102 '150 Binary junk (17 bytes).\r\n' 09:40:51.697066 Received DATA (on stdin) 09:40:51.697199 > 28 bytes data, server => client 09:40:51.697336 '226 File transfer complete\r\n' 09:40:51.734142 < 6 bytes data, client => server 09:40:51.734292 'QUIT\r\n' 09:40:51.740556 Received DATA (on stdin) 09:40:51.740708 > 18 bytes data, server => client 09:40:51.740792 '221 bye bye baby\r\n' 09:40:51.744379 ====> Client disconnect 09:40:51.745232 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.678373 Running IPv4 version 09:40:51.679069 Listening on port 40649 09:40:51.679556 Wrote pid 101665 to log/11/server/ftp_sockdata.pid 09:40:51.679733 Received PING (on stdin) 09:40:51.680591 Received PORT (on stdin) 09:40:51.683151 ====> Client connect 09:40:51.692419 Received DATA (on stdin) 09:40:51.692626 > 17 bytes data, server => client 09:40:51.692707 'WE ROOLZ: 77498\r\n' 09:40:51.692947 Received DISC (on stdin) 09:40:51.693097 ====> Client forcibly disconnected 09:40:51.695031 Received QUIT (on stdin) 09:40:51.695158 quits 09:40:51.695568 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 541 === End of file server.cmd === Start of file upload541 Contents of a file to verify ftp upload works? === End of file upload541 === Start of file valgrind541 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind541 test 0540...[HTTP proxy auth Digest multi API re-using connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind540 ./libtest/libtests lib540 http://test.remote.example.com/path/540 http://127.0.0.1:45579 silly:person custom.set.host.name > log/12/stdout540 2> log/12/stderr540 540: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 540 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind540 ./libtest/libtests lib540 http://test.remote.example.com/path/540 http://127.0.0.1:45579 silly:person custom.set.host.name > log/12/stdout540 2> log/12/stderr540 === End of file commands.log === Start of file http_server.log 09:40:51.647178 ====> Client connect 09:40:51.647619 accept_connection 3 returned 4 09:40:51.647796 accept_connection 3 returned 0 09:40:51.647921 Read 93 bytes 09:40:51.648015 Process 93 bytes request 09:40:51.648106 Got request: GET /verifiedserver HTTP/1.1 09:40:51.648178 Are-we-friendly question received 09:40:51.648395 Wrote request (93 bytes) input to log/12/server.input 09:40:51.648658 Identifying ourselves as friends 09:40:51.654694 Response sent (56 bytes) and written to log/12/server.response 09:40:51.654964 special request received, no persistency 09:40:51.655211 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 540 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind540 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind540 test 0538...[FTP multi-interface download, failed login: PASS not valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind538 ./libtest/libtests lib504 ftp://127.0.0.1:38699/538 > log/15/stdout538 2> log/15/stderr538 538: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 538 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind538 ./libtest/libtests lib504 ftp://127.0.0.1:38699/538 > log/15/stdout538 2> log/15/stderr538 === End of file commands.log === Start of file ftp_server.log 09:40:51.448129 ====> Client connect 09:40:51.452662 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.455616 < "USER anonymous" 09:40:51.456061 > "331 We are happy you popped in![CR][LF]" 09:40:51.460252 < "PASS ftp@example.com" 09:40:51.460547 > "230 Welcome you silly person[CR][LF]" 09:40:51.462567 < "PWD" 09:40:51.463003 > "257 "/" is current directory[CR][LF]" 09:40:51.466702 < "EPSV" 09:40:51.467091 ====> Passive DATA channel requested by client 09:40:51.467258 DATA sockfilt for passive data channel starting... 09:40:51.481508 DATA sockfilt for passive data channel started (pid 101765) 09:40:51.482806 DATA sockfilt for passive data channel listens on port 34713 09:40:51.484192 > "229 Entering Passive Mode (|||34713|)[LF]" 09:40:51.484432 Client has been notified that DATA conn will be accepted on port 34713 09:40:51.486675 Client connects to port 34713 09:40:51.487063 ====> Client established passive DATA connection on port 34713 09:40:51.488242 < "TYPE I" 09:40:51.488685 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.497058 < "SIZE verifiedserver" 09:40:51.500939 > "213 17[CR][LF]" 09:40:51.505858 < "RETR verifiedserver" 09:40:51.506965 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.512633 =====> Closing passive DATA connection... 09:40:51.514514 Server disconnects passive DATA connection 09:40:51.515284 Fancy that; client wants to DISC, too 09:40:51.516048 Server disconnected passive DATA connection 09:40:51.516296 DATA sockfilt for passive data channel quits (pid 101765) 09:40:51.521356 DATA sockfilt for passive data channel quit (pid 101765) 09:40:51.521601 =====> Closed passive DATA connection 09:40:51.521945 > "226 File transfer complete[CR][LF]" 09:40:51.554534 < "QUIT" 09:40:51.554985 > "221 bye bye baby[CR][LF]" 09:40:51.561277 MAIN sockfilt said DISC 09:40:51.562272 ====> Client disconnected 09:40:51.562867 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.701205 ====> Client connect 09:40:51.706747 Received DATA (on stdin) 09:40:51.706875 > 160 bytes data, server => client 09:40:51.706966 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.707036 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.707103 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.707846 < 16 bytes data, client => server 09:40:51.708001 'USER anonymous\r\n' 09:40:51.710837 Received DATA (on stdin) 09:40:51.710994 > 33 bytes data, server => client 09:40:51.711105 '331 We are happy you popped in!\r\n' 09:40:51.711765 < 22 bytes data, client => server 09:40:51.711907 'PASS ftp@example.com\r\n' 09:40:51.714657 Received DATA (on stdin) 09:40:51.714788 > 30 bytes data, server => client 09:40:51.714866 '230 Welcome you silly person\r\n' 09:40:51.715609 < 5 bytes data, client => server 09:40:51.715736 'PWD\r\n' 09:40:51.718575 Received DATA (on stdin) 09:40:51.718738 > 30 bytes data, server => client 09:40:51.718818 '257 "/" is current directory\r\n' 09:40:51.719690 < 6 bytes data, client => server 09:40:51.719834 'EPSV\r\n' 09:40:51.737399 Received DATA (on stdin) 09:40:51.737668 > 38 bytes data, server => client 09:40:51.738397 '229 Entering Passive Mode (|||34713|)\n' 09:40:51.740065 < 8 bytes data, client => server 09:40:51.740183 'TYPE I\r\n' 09:40:51.747106 Received DATA (on stdin) 09:40:51.747387 > 33 bytes data, server => client 09:40:51.747542 '200 I modify TYPE as you wanted\r\n' 09:40:51.748578 < 21 bytes data, client => server 09:40:51.748894 'SIZE verifiedserver\r\n' 09:40:51.751940 Received DATA (on stdin) 09:40:51.752077 > 8 bytes data, server => client 09:40:51.755646 '213 17\r\n' 09:40:51.758078 < 21 bytes data, client => server 09:40:51.758389 'RETR verifiedserver\r\n' 09:40:51.764552 Received DATA (on stdin) 09:40:51.764801 > 29 bytes data, server => client 09:40:51.765019 '150 Binary junk (17 bytes).\r\n' 09:40:51.775955 Received DATA (on stdin) 09:40:51.776083 > 28 bytes data, server => client 09:40:51.776174 '226 File transfer complete\r\n' 09:40:51.807238 < 6 bytes data, client => server 09:40:51.807387 'QUIT\r\n' 09:40:51.809073 Received DATA (on stdin) 09:40:51.809211 > 18 bytes data, server => client 09:40:51.809285 '221 bye bye baby\r\n' 09:40:51.814628 ====> Client disconnect 09:40:51.815336 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.733737 Running IPv4 version 09:40:51.734275 Listening on port 34713 09:40:51.734736 Wrote pid 101765 to log/15/server/ftp_sockdata.pid 09:40:51.734888 Received PING (on stdin) 09:40:51.735710 Received PORT (on stdin) 09:40:51.739754 ====> Client connect 09:40:51.766556 Received DATA (on stdin) 09:40:51.766696 > 17 bytes data, server => client 09:40:51.766797 'WE ROOLZ: 90579\r\n' 09:40:51.767787 ====> Client disconnect 09:40:51.768710 Received DISC (on stdin) 09:40:51.768839 Crikey! Client also wants to disconnect 09:40:51.769236 Received ACKD (on stdin) 09:40:51.770223 Received QUIT (on stdin) 09:40:51.770328 quits 09:40:51.770795 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 314 bluah you f00l Testnum 538 === End of file server.cmd === Start of file valgrind538 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind538 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind563 ./libtest/libtests lib562 "ftp://127.0.0.1:23456/563;type=A" 38901 > log/58/stdout563 2> log/58/stderr563 test 0536...[CURLINFO_USED_PROXY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind536 ./libtest/libtests lib536 http://127.0.0.1:45475 goingdirect.com:45475 goingdirect.com:45475:127.0.0.1 > log/20/stdout536 2> log/20/stderr536 536: stdout FAILED: --- log/20/check-expected 2025-07-18 09:40:53.126143639 +0000 +++ log/20/check-generated 2025-07-18 09:40:53.125151039 +0000 @@ -1,4 +0,0 @@ -hello[CR][LF] -This used the proxy[CR][LF] -hello[CR][LF] -This DID NOT use the proxy[CR][LF] == Contents of files in the log/20/ dir after test 536 === Start of file check-expected hello[CR][LF] This used the proxy[CR][LF] hello[CR][LF] This DID NOT use the proxy[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind536 ./libtest/libtests lib536 http://127.0.0.1:45475 goingdirect.com:45475 goingdirect.com:45475:127.0.0.1 > log/20/stdout536 2> log/20/stderr536 === End of file commands.log === Start of file http_server.log 09:40:51.544904 ====> Client connect 09:40:51.545189 accept_connection 3 returned 4 09:40:51.545342 accept_connection 3 returned 0 09:40:51.546939 Read 93 bytes 09:40:51.547087 Process 93 bytes request 09:40:51.547165 Got request: GET /verifiedserver HTTP/1.1 09:40:51.547232 Are-we-friendly question received 09:40:51.547524 Wrote request (93 bytes) input to log/20/server.input 09:40:51.547736 Identifying ourselves as friends 09:40:51.549726 Response sent (56 bytes) and written to log/20/server.response 09:40:51.549853 special request received, no persistency 09:40:51.549924 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 536 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind536 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind536 test 0534...[FTP RETR twice using multi: non-existing host and non-existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind534 ./libtest/libtests lib533 ftp://non-existing-host.haxx.se/path/534 ftp://127.0.0.1:41867/path/534 > log/22/stdout534 2> log/22/stderr534 534: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 534 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind534 ./libtest/libtests lib533 ftp://non-existing-host.haxx.se/path/534 ftp://127.0.0.1:41867/path/534 > log/22/stdout534 2> log/22/stderr534 === End of file commands.log === Start of file ftp_server.log 09:40:51.312351 ====> Client connect 09:40:51.313607 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.318347 < "USER anonymous" 09:40:51.320643 > "331 We are happy you popped in![CR][LF]" 09:40:51.325168 < "PASS ftp@example.com" 09:40:51.326947 > "230 Welcome you silly person[CR][LF]" 09:40:51.329213 < "PWD" 09:40:51.329586 > "257 "/" is current directory[CR][LF]" 09:40:51.334267 < "EPSV" 09:40:51.334546 ====> Passive DATA channel requested by client 09:40:51.334853 DATA sockfilt for passive data channel starting... 09:40:51.360058 DATA sockfilt for passive data channel started (pid 101545) 09:40:51.361095 DATA sockfilt for passive data channel listens on port 42445 09:40:51.361964 > "229 Entering Passive Mode (|||42445|)[LF]" 09:40:51.362222 Client has been notified that DATA conn will be accepted on port 42445 09:40:51.364714 Client connects to port 42445 09:40:51.365080 ====> Client established passive DATA connection on port 42445 09:40:51.366023 < "TYPE I" 09:40:51.366829 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.368562 < "SIZE verifiedserver" 09:40:51.369618 > "213 17[CR][LF]" 09:40:51.371473 < "RETR verifiedserver" 09:40:51.372272 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.373634 =====> Closing passive DATA connection... 09:40:51.374063 Server disconnects passive DATA connection 09:40:51.376327 Server disconnected passive DATA connection 09:40:51.376542 DATA sockfilt for passive data channel quits (pid 101545) 09:40:51.378557 DATA sockfilt for passive data channel quit (pid 101545) 09:40:51.378892 =====> Closed passive DATA connection 09:40:51.379248 > "226 File transfer complete[CR][LF]" 09:40:51.415964 < "QUIT" 09:40:51.417111 > "221 bye bye baby[CR][LF]" 09:40:51.422870 MAIN sockfilt said DISC 09:40:51.423256 ====> Client disconnected 09:40:51.423728 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.565314 ====> Client connect 09:40:51.569520 Received DATA (on stdin) 09:40:51.569688 > 160 bytes data, server => client 09:40:51.569799 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.569892 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.569973 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.570747 < 16 bytes data, client => server 09:40:51.570907 'USER anonymous\r\n' 09:40:51.573899 Received DATA (on stdin) 09:40:51.574078 > 33 bytes data, server => client 09:40:51.574750 '331 We are happy you popped in!\r\n' 09:40:51.577873 < 22 bytes data, client => server 09:40:51.578054 'PASS ftp@example.com\r\n' 09:40:51.581046 Received DATA (on stdin) 09:40:51.581210 > 30 bytes data, server => client 09:40:51.581316 '230 Welcome you silly person\r\n' 09:40:51.582090 < 5 bytes data, client => server 09:40:51.582244 'PWD\r\n' 09:40:51.586041 Received DATA (on stdin) 09:40:51.586207 > 30 bytes data, server => client 09:40:51.586305 '257 "/" is current directory\r\n' 09:40:51.587127 < 6 bytes data, client => server 09:40:51.587265 'EPSV\r\n' 09:40:51.615200 Received DATA (on stdin) 09:40:51.615336 > 38 bytes data, server => client 09:40:51.616191 '229 Entering Passive Mode (|||42445|)\n' 09:40:51.618037 < 8 bytes data, client => server 09:40:51.618181 'TYPE I\r\n' 09:40:51.620101 Received DATA (on stdin) 09:40:51.620246 > 33 bytes data, server => client 09:40:51.620841 '200 I modify TYPE as you wanted\r\n' 09:40:51.621566 < 21 bytes data, client => server 09:40:51.621708 'SIZE verifiedserver\r\n' 09:40:51.622786 Received DATA (on stdin) 09:40:51.623127 > 8 bytes data, server => client 09:40:51.623712 '213 17\r\n' 09:40:51.624338 < 21 bytes data, client => server 09:40:51.624551 'RETR verifiedserver\r\n' 09:40:51.625634 Received DATA (on stdin) 09:40:51.625788 > 29 bytes data, server => client 09:40:51.626359 '150 Binary junk (17 bytes).\r\n' 09:40:51.633317 Received DATA (on stdin) 09:40:51.633530 > 28 bytes data, server => client 09:40:51.633627 '226 File transfer complete\r\n' 09:40:51.668348 < 6 bytes data, client => server 09:40:51.668633 'QUIT\r\n' 09:40:51.670022 Received DATA (on stdin) 09:40:51.670168 > 18 bytes data, server => client 09:40:51.670351 '221 bye bye baby\r\n' 09:40:51.673593 ====> Client disconnect 09:40:51.676965 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.608330 Running IPv4 version 09:40:51.612819 Listening on port 42445 09:40:51.613239 Wrote pid 101545 to log/22/server/ftp_sockdata.pid 09:40:51.613409 Received PING (on stdin) 09:40:51.614157 Received PORT (on stdin) 09:40:51.617740 ====> Client connect 09:40:51.628104 Received DATA (on stdin) 09:40:51.628241 > 17 bytes data, server => client 09:40:51.628327 'WE ROOLZ: 77494\r\n' 09:40:51.628662 Received DISC (on stdin) 09:40:51.628804 ====> Client forcibly disconnected 09:40:51.630591 Received QUIT (on stdin) 09:40:51.630717 quits 09:40:51.631111 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 550 the file doesn't exist REPLY SIZE 500 Can't check for file existence Testnum 534 === End of file server.cmd === Start of file valgrind534 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind534 test 0533...[FTP RETR a non-existing file twice using the multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind533 ./libtest/libtests lib533 ftp://127.0.0.1:35595/path/533 ftp://127.0.0.1:35595/path/533 > log/23/stdout533 2> log/23/stderr533 533: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 533 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind533 ./libtest/libtests lib533 ftp://127.0.0.1:35595/path/533 ftp://127.0.0.1:35595/path/533 > log/23/stdout533 2> log/23/stderr533 === End of file commands.log === Start of file ftp_server.log 09:40:51.313137 ====> Client connect 09:40:51.318346 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.329184 < "USER anonymous" 09:40:51.329588 > "331 We are happy you popped in![CR][LF]" 09:40:51.333649 < "PASS ftp@example.com" 09:40:51.335664 > "230 Welcome you silly person[CR][LF]" 09:40:51.340929 < "PWD" 09:40:51.341508 > "257 "/" is current directory[CR][LF]" 09:40:51.347312 < "EPSV" 09:40:51.347697 ====> Passive DATA channel requested by client 09:40:51.348031 DATA sockfilt for passive data channel starting... 09:40:51.374459 DATA sockfilt for passive data channel started (pid 101568) 09:40:51.375500 DATA sockfilt for passive data channel listens on port 41041 09:40:51.376069 > "229 Entering Passive Mode (|||41041|)[LF]" 09:40:51.376325 Client has been notified that DATA conn will be accepted on port 41041 09:40:51.380508 Client connects to port 41041 09:40:51.380906 ====> Client established passive DATA connection on port 41041 09:40:51.382940 < "TYPE I" 09:40:51.384666 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.385542 < "SIZE verifiedserver" 09:40:51.389608 > "213 17[CR][LF]" 09:40:51.393522 < "RETR verifiedserver" 09:40:51.394155 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.394985 =====> Closing passive DATA connection... 09:40:51.395216 Server disconnects passive DATA connection 09:40:51.400227 Server disconnected passive DATA connection 09:40:51.400618 DATA sockfilt for passive data channel quits (pid 101568) 09:40:51.403698 DATA sockfilt for passive data channel quit (pid 101568) 09:40:51.404041 =====> Closed passive DATA connection 09:40:51.404376 > "226 File transfer complete[CR][LF]" 09:40:51.444862 < "QUIT" 09:40:51.445307 > "221 bye bye baby[CR][LF]" 09:40:51.454254 MAIN sockfilt said DISC 09:40:51.454641 ====> Client disconnected 09:40:51.455361 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.566184 ====> Client connect 09:40:51.575246 Received DATA (on stdin) 09:40:51.575414 > 160 bytes data, server => client 09:40:51.575724 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.575823 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.575906 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.581657 < 16 bytes data, client => server 09:40:51.581831 'USER anonymous\r\n' 09:40:51.584702 Received DATA (on stdin) 09:40:51.584873 > 33 bytes data, server => client 09:40:51.584961 '331 We are happy you popped in!\r\n' 09:40:51.586593 < 22 bytes data, client => server 09:40:51.586754 'PASS ftp@example.com\r\n' 09:40:51.587790 Received DATA (on stdin) 09:40:51.587919 > 30 bytes data, server => client 09:40:51.589756 '230 Welcome you silly person\r\n' 09:40:51.590394 < 5 bytes data, client => server 09:40:51.590608 'PWD\r\n' 09:40:51.595992 Received DATA (on stdin) 09:40:51.596283 > 30 bytes data, server => client 09:40:51.596382 '257 "/" is current directory\r\n' 09:40:51.600127 < 6 bytes data, client => server 09:40:51.600301 'EPSV\r\n' 09:40:51.631571 Received DATA (on stdin) 09:40:51.631761 > 38 bytes data, server => client 09:40:51.631861 '229 Entering Passive Mode (|||41041|)\n' 09:40:51.635719 < 8 bytes data, client => server 09:40:51.635845 'TYPE I\r\n' 09:40:51.637007 Received DATA (on stdin) 09:40:51.637137 > 33 bytes data, server => client 09:40:51CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind525 ./libtest/libtests lib525 ftp://127.0.0.1:39447/path/525 log/35/upload525 > log/35/stdout525 2> log/35/stderr525 .637294 '200 I modify TYPE as you wanted\r\n' 09:40:51.637966 < 21 bytes data, client => server 09:40:51.638102 'SIZE verifiedserver\r\n' 09:40:51.643838 Received DATA (on stdin) 09:40:51.643984 > 8 bytes data, server => client 09:40:51.644064 '213 17\r\n' 09:40:51.644860 < 21 bytes data, client => server 09:40:51.645009 'RETR verifiedserver\r\n' 09:40:51.649152 Received DATA (on stdin) 09:40:51.649294 > 29 bytes data, server => client 09:40:51.649395 '150 Binary junk (17 bytes).\r\n' 09:40:51.658436 Received DATA (on stdin) 09:40:51.658664 > 28 bytes data, server => client 09:40:51.658770 '226 File transfer complete\r\n' 09:40:51.697620 < 6 bytes data, client => server 09:40:51.697798 'QUIT\r\n' 09:40:51.700558 Received DATA (on stdin) 09:40:51.700715 > 18 bytes data, server => client 09:40:51.700799 '221 bye bye baby\r\n' 09:40:51.704770 ====> Client disconnect 09:40:51.709363 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.626333 Running IPv4 version 09:40:51.627076 Listening on port 41041 09:40:51.627666 Wrote pid 101568 to log/23/server/ftp_sockdata.pid 09:40:51.627869 Received PING (on stdin) 09:40:51.628662 Received PORT (on stdin) 09:40:51.633907 ====> Client connect 09:40:51.649859 Received DATA (on stdin) 09:40:51.650000 > 17 bytes data, server => client 09:40:51.650089 'WE ROOLZ: 77500\r\n' 09:40:51.650347 Received DISC (on stdin) 09:40:51.650592 ====> Client forcibly disconnected 09:40:51.655853 Received QUIT (on stdin) 09:40:51.656006 quits 09:40:51.656396 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 550 the file doesn't exist REPLY SIZE 500 Can't check for file existence Testnum 533 === End of file server.cmd === Start of file valgrind533 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind533 test 0532...[FTP RETR same file using reset handles between each transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind532 ./libtest/libtests lib526 ftp://127.0.0.1:37935/path/532 > log/24/stdout532 2> log/24/stderr532 532: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 532 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind532 ./libtest/libtests lib526 ftp://127.0.0.1:37935/path/532 > log/24/stdout532 2> log/24/stderr532 === End of file commands.log === Start of file ftp_server.log 09:40:51.256265 ====> Client connect 09:40:51.258995 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.261296 < "USER anonymous" 09:40:51.263503 > "331 We are happy you popped in![CR][LF]" 09:40:51.264542 < "PASS ftp@example.com" 09:40:51.265414 > "230 Welcome you silly person[CR][LF]" 09:40:51.267587 < "PWD" 09:40:51.268065 > "257 "/" is current directory[CR][LF]" 09:40:51.270196 < "EPSV" 09:40:51.270466 ====> Passive DATA channel requested by client 09:40:51.270634 DATA sockfilt for passive data channel starting... 09:40:51.286475 DATA sockfilt for passive data channel started (pid 101444) 09:40:51.287660 DATA sockfilt for passive data channel listens on port 37365 09:40:51.288201 > "229 Entering Passive Mode (|||37365|)[LF]" 09:40:51.288459 Client has been notified that DATA conn will be accepted on port 37365 09:40:51.294929 Client connects to port 37365 09:40:51.295338 ====> Client established passive DATA connection on port 37365 09:40:51.296286 < "TYPE I" 09:40:51.296809 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.300090 < "SIZE verifiedserver" 09:40:51.300994 > "213 17[CR][LF]" 09:40:51.307200 < "RETR verifiedserver" 09:40:51.311922 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.312691 =====> Closing passive DATA connection... 09:40:51.313051 Server disconnects passive DATA connection 09:40:51.314710 Server disconnected passive DATA connection 09:40:51.315089 DATA sockfilt for passive data channel quits (pid 101444) 09:40:51.319159 DATA sockfilt for passive data channel quit (pid 101444) 09:40:51.319533 =====> Closed passive DATA connection 09:40:51.320196 > "226 File transfer complete[CR][LF]" 09:40:51.351558 < "QUIT" 09:40:51.353851 > "221 bye bye baby[CR][LF]" 09:40:51.358602 MAIN sockfilt said DISC 09:40:51.359014 ====> Client disconnected 09:40:51.359513 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.509139 ====> Client connect 09:40:51.511610 Received DATA (on stdin) 09:40:51.511765 > 160 bytes data, server => client 09:40:51.511956 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.512077 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.512158 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.514012 < 16 bytes data, client => server 09:40:51.514182 'USER anonymous\r\n' 09:40:51.515532 Received DATA (on stdin) 09:40:51.515814 > 33 bytes data, server => client 09:40:51.516005 '331 We are happy you popped in!\r\n' 09:40:51.516831 < 22 bytes data, client => server 09:40:51.516977 'PASS ftp@example.com\r\n' 09:40:51.518753 Received DATA (on stdin) 09:40:51.518909 > 30 bytes data, server => client 09:40:51.519416 '230 Welcome you silly person\r\n' 09:40:51.520156 < 5 bytes data, client => server 09:40:51.520290 'PWD\r\n' 09:40:51.522152 Received DATA (on stdin) 09:40:51.522297 > 30 bytes data, server => client 09:40:51.522380 '257 "/" is current directory\r\n' 09:40:51.523088 < 6 bytes data, client => server 09:40:51.523229 'EPSV\r\n' 09:40:51.542568 Received DATA (on stdin) 09:40:51.542725 > 38 bytes data, server => client 09:40:51.542814 '229 Entering Passive Mode (|||37365|)\n' 09:40:51.544888 < 8 bytes data, client => server 09:40:51.545062 'TYPE I\r\n' 09:40:51.550881 Received DATA (on stdin) 09:40:51.551027 > 33 bytes data, server => client 09:40:51.551122 '200 I modify TYPE as you wanted\r\n' 09:40:51.552675 < 21 bytes data, client => server 09:40:51.552840 'SIZE verifiedserver\r\n' 09:40:51.558631 Received DATA (on stdin) 09:40:51.558816 > 8 bytes data, server => client 09:40:51.558925 '213 17\r\n' 09:40:51.559678 < 21 bytes data, client => server 09:40:51.559835 'RETR verifiedserver\r\n' 09:40:51.561352 Received DATA (on stdin) 09:40:51.561583 > 29 bytes data, server => client 09:40:51.561785 '150 Binary junk (17 bytes).\r\n' 09:40:51.576596 Received DATA (on stdin) 09:40:51.576770 > 28 bytes data, server => client 09:40:51.576887 '226 File transfer complete\r\n' 09:40:51.604306 < 6 bytes data, client => server 09:40:51.604540 'QUIT\r\n' 09:40:51.606740 Received DATA (on stdin) 09:40:51.606907 > 18 bytes data, server => client 09:40:51.607098 '221 bye bye baby\r\n' 09:40:51.611592 ====> Client disconnect 09:40:51.613563 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.538531 Running IPv4 version 09:40:51.539125 Listening on port 37365 09:40:51.539607 Wrote pid 101444 to log/24/server/ftp_sockdata.pid 09:40:51.539849 Received PING (on stdin) 09:40:51.540729 Received PORT (on stdin) 09:40:51.545278 ====> Client connect 09:40:51.567019 Received DATA (on stdin) 09:40:51.567163 > 17 bytes data, server => client 09:40:51.567254 'WE ROOLZ: 77469\r\n' 09:40:51.567870 Received DISC (on stdin) 09:40:51.568055 ====> Client forcibly disconnected 09:40:51.569119 Received QUIT (on stdin) 09:40:51.569256 quits 09:40:51.569749 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 532 === End of file server.cmd === Start of file valgrind532 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind532 test 0529...[FTP PORT upload using multi interface (weird cleanup function sequence)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind529 ./libtest/libtests lib525 ftp://127.0.0.1:34373/path/529 log/28/upload529 > log/28/stdout529 2> log/28/stderr529 529: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 529 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind529 ./libtest/libtests lib525 ftp://127.0.0.1:34373/path/529 log/28/upload529 > log/28/stdout529 2> log/28/stderr529 === End of file commands.log === Start of file ftp_server.log 09:40:51.450898 ====> Client connect 09:40:51.454980 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.457628 < "USER anonymous" 09:40:51.458484 > "331 We are happy you popped in![CR][LF]" 09:40:51.463111 < "PASS ftp@example.com" 09:40:51.465944 > "230 Welcome you silly person[CR][LF]" 09:40:51.468015 < "PWD" 09:40:51.468441 > "257 "/" is current directory[CR][LF]" 09:40:51.471661 < "EPSV" 09:40:51.472065 ====> Passive DATA channel requested by client 09:40:51.472287 DATA sockfilt for passive data channel starting... 09:40:51.500209 DATA sockfilt for passive data channel started (pid 101777) 09:40:51.501384 DATA sockfilt for passive data channel listens on port 45801 09:40:51.501991 > "229 Entering Passive Mode (|||45801|)[LF]" 09:40:51.502267 Client has been notified that DATA conn will be accepted on port 45801 09:40:51.505347 Client connects to port 45801 09:40:51.505664 ====> Client established passive DATA connection on port 45801 09:40:51.507655 < "TYPE I" 09:40:51.509945 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.513223 < "SIZE verifiedserver" 09:40:51.516010 > "213 17[CR][LF]" 09:40:51.517270 < "RETR verifiedserver" 09:40:51.517627 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.518370 =====> Closing passive DATA connection... 09:40:51.518577 Server disconnects passive DATA connection 09:40:51.521680 Server disconnected passive DATA connection 09:40:51.522049 DATA sockfilt for passive data channel quits (pid 101777) 09:40:51.525641 DATA sockfilt for passive data channel quit (pid 101777) 09:40:51.526056 =====> Closed passive DATA connection 09:40:51.527000 > "226 File transfer complete[CR][LF]" 09:40:51.563680 < "QUIT" 09:40:51.564180 > "221 bye bye baby[CR][LF]" 09:40:51.569379 MAIN sockfilt said DISC 09:40:51.573876 ====> Client disconnected 09:40:51.574435 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:50.703830 ====> Client connect 09:40:50.706961 Received DATA (on stdin) 09:40:50.707122 > 160 bytes data, server => client 09:40:50.709038 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:50.709180 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:50.709274 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:50.710191 < 16 bytes data, client => server 09:40:50.710341 'USER anonymous\r\n' 09:40:50.714706 Received DATA (on stdin) 09:40:50.714872 > 33 bytes data, server => client 09:40:50.714963 '331 We are happy you popped in!\r\n' 09:40:50.715959 < 22 bytes data, client => server 09:40:50.716100 'PASS ftp@example.com\r\n' 09:40:50.717214 Received DATA (on stdin) 09:40:50.717365 > 30 bytes data, server => client 09:40:50.720013 '230 Welcome you silly person\r\n' 09:40:50.721023 < 5 bytes data, client => server 09:40:50.721169 'PWD\r\n' 09:40:50.723551 Received DATA (on stdin) 09:40:50.723714 > 30 bytes data, server => client 09:40:50.723820 '257 "/" is current directory\r\n' 09:40:50.724612 < 6 bytes data, client => server 09:40:50.724763 'EPSV\r\n' 09:40:50.756571 Received DATA (on stdin) 09:40:50.756745 > 38 bytes data, server => client 09:40:50.756852 '229 Entering Passive Mode (|||45801|)\n' 09:40:50.758432 < 8 bytes data, client => server 09:40:50.758664 'TYPE I\r\n' 09:40:50.763989 Received DATA (on stdin) 09:40:50.764130 > 33 bytes data, server => client 09:40:50.764221 '200 I modify TYPE as you wanted\r\n' 09:40:50.766076 < 21 bytes data, client => server 09:40:50.766224 'SIZE verifiedserver\r\n' 09:40:50.768584 Received DATA (on stdin) 09:40:50.768748 > 8 bytes data, server => client 09:40:50.768940 '213 17\r\n' 09:40:50.770212 < 21 bytes data, client => server 09:40:50.770344 'RETR verifiedserver\r\n' 09:40:50.773404 Received DATA (on stdin) 09:40:50.773635 > 29 bytes data, server => client 09:40:50.773752 '150 Binary junk (17 bytes).\r\n' 09:40:50.780046 Received DATA (on stdin) 09:40:50.780187 > 28 bytes data, server => client 09:40:50.780375 '226 File transfer complete\r\n' 09:40:50.816611 < 6 bytes data, client => server 09:40:50.816770 'QUIT\r\n' 09:40:50.818683 Received DATA (on stdin) 09:40:50.818914 > 18 bytes data, server => client 09:40:50.819005 '221 bye bye baby\r\n' 09:40:50.822759 ====> Client disconnect 09:40:50.823419 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.749643 Running IPv4 version 09:40:51.750371 Listening on port 45801 09:40:51.753108 Wrote pid 101777 to log/28/server/ftp_sockdata.pid 09:40:51.753279 Received PING (on stdin) 09:40:51.754404 Received PORT (on stdin) 09:40:51.758751 ====> Client connect 09:40:51.772554 Received DATA (on stdin) 09:40:51.772725 > 17 bytes data, server => client 09:40:51.772825 'WE ROOLZ: 77437\r\n' 09:40:51.773127 Received DISC (on stdin) 09:40:51.773332 ====> Client forcibly disconnected 09:40:51.777657 Received QUIT (on stdin) 09:40:51.777819 quits 09:40:51.778214 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 529 === End of file server.cmd === Start of file upload529 Moooooooooooo upload this === End of file upload529 === Start of file valgrind529 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind529 test 0566...[HTTP GET with CURLINFO_CONTENT_LENGTH_DOWNLOAD and 0 bytes transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind566 ./libtest/libtests lib566 http://127.0.0.1:45607/566 log/32/ip566 > log/32/stdout566 2> log/32/stderr566 566: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 566 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind566 ./libtest/libtests lib566 http://127.0.0.1:45607/566 log/32/ip566 > log/32/stdout566 2> log/32/stderr566 === End of file commands.log === Start of file http_server.log 09:40:51.952000 ====> Client connect 09:40:51.952297 accept_connection 3 returned 4 09:40:51.952605 accept_connection 3 returned 0 09:40:51.953572 Read 93 bytes 09:40:51.953708 Process 93 bytes request 09:40:51.953795 Got request: GET /verifiedserver HTTP/1.1 09:40:51.953875 Are-we-friendly question received 09:40:51.954091 Wrote request (93 bytes) input to log/32/server.input 09:40:51.954271 Identifying ourselves as friends 09:40:51.961578 Response sent (56 bytes) and written to log/32/server.response 09:40:51.961750 special request received, no persistency 09:40:51.961842 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 566 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind566 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind566 test 0524...[FTP upload with target URL ending with slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind524 ./libtest/libtests lib524 ftp://127.0.0.1:45965/path/to/ > log/36/stdout524 2> log/36/stderr524 524: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 524 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind524 ./libtest/libtests lib524 ftp://127.0.0.1:45965/path/to/ > log/36/stdout524 2> log/36/stderr524 === End of file commands.log === Start of file ftp_server.log 09:40:51.123244 ====> Client connect 09:40:51.131399 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.135441 < "USER anonymous" 09:40:51.136291 > "331 We are happy you popped in![CR][LF]" 09:40:51.138286 < "PASS ftp@example.com" 09:40:51.138707 > "230 Welcome you silly person[CR][LF]" 09:40:51.140713 < "PWD" 09:40:51.142268 > "257 "/" is current directory[CR][LF]" 09:40:51.144008 < "EPSV" 09:40:51.144323 ====> Passive DATA channel requested by client 09:40:51.144517 DATA sockfilt for passive data channel starting... 09:40:51.201971 DATA sockfilt for passive data channel started (pid 101160) 09:40:51.205569 DATA sockfilt for passive data channel listens on port 33665 09:40:51.207215 > "229 Entering Passive Mode (|||33665|)[LF]" 09:40:51.207477 Client has been notified that DATA conn will be accepted on port 33665 09:40:51.209484 Client connects to port 33665 09:40:51.209888 ====> Client established passive DATA connection on port 33665 09:40:51.210836 < "TYPE I" 09:40:51.211278 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.214343 < "SIZE verifiedserver" 09:40:51.214857 > "213 17[CR][LF]" 09:40:51.217603 < "RETR verifiedserver" 09:40:51.218138 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.220195 =====> Closing passive DATA connection... 09:40:51.220422 Server disconnects passive DATA connection 09:40:51.221859 Server disconnected passive DATA connection 09:40:51.222118 DATA sockfilt for passive data channel quits (pid 101160) 09:40:51.224121 DATA sockfilt for passive data channel quit (pid 101160) 09:40:51.224441 =====> Closed passive DATA connection 09:40:51.224855 > "226 File transfer complete[CR][LF]" 09:40:51.263495 < "QUIT" 09:40:51.266077 > "221 bye bye baby[CR][LF]" 09:40:51.274097 MAIN sockfilt said DISC 09:40:51.274410 ====> Client disconnected 09:40:51.274946 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.375626 ====> Client connect 09:40:51.379089 Received DATA (on stdin) 09:40:51.379252 > 160 bytes data, server => client 09:40:51.386060 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.386336 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.386629 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.387851 < 16 bytes data, client => server 09:40:51.388165 'USER anonymous\r\n' 09:40:51.389613 Received DATA (on stdin) 09:40:51.389771 > 33 bytes data, server => client 09:40:51.390294 '331 We are happy you popped in!\r\n' 09:40:51.391136 < 22 bytes data, client => server 09:40:51.391280 'PASS ftp@example.com\r\n' 09:40:51.392880 Received DATA (on stdin) 09:40:51.393028 > 30 bytes data, server => client 09:40:51.393119 '230 Welcome you silly person\r\n' 09:40:51.393735 < 5 bytes data, client => server 09:40:51.393863 'PWD\r\n' 09:40:51.394876 Received DATA (on stdin) 09:40:51.395007 > 30 bytes data, server => client 09:40:51.395167 '257 "/" is current directory\r\n' 09:40:51.396837 < 6 bytes data, client => server 09:40:51.396980 'EPSV\r\n' 09:40:51.460376 Received DATA (on stdin) 09:40:51.460624 > 38 bytes data, server => client 09:40:51.461529 '229 Entering Passive Mode (|||33665|)\n' 09:40:51.463051 < 8 bytes data, client => server 09:40:51.463188 'TYPE I\r\n' 09:40:51.465016 Received DATA (on stdin) 09:40:51.465167 > 33 bytes data, server => client 09:40:51.465257 '200 I modify TYPE as you wanted\r\n' 09:40:51.465867 < 21 bytes data, client => server 09:40:51.466003 'SIZE verifiedserver\r\n' 09:40:51.469692 Received DATA (on stdin) 09:40:51.469833 > 8 bytes data, server => client 09:40:51.469907 '213 17\r\n' 09:40:51.470485 < 21 bytes data, client => server 09:40:51.470616 'RETR verifiedserver\r\n' 09:40:51.472537 Received DATA (on stdin) 09:40:51.472671 > 29 bytes data, server => client 09:40:51.472766 '150 Binary junk (17 bytes).\r\n' 09:40:51.478867 Received DATA (on stdin) 09:40:51.478982 > 28 bytes data, server => client 09:40:51.479059 '226 File transfer complete\r\n' 09:40:51.515324 < 6 bytes data, client => server 09:40:51.515617 'QUIT\r\n' 09:40:51.520135 Received DATA (on stdin) 09:40:51.520267 > 18 bytes data, server => client 09:40:51.520356 '221 bye bye baby\r\n' 09:40:51.523826 ====> Client disconnect 09:40:51.528942 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.454065 Running IPv4 version 09:40:51.454694 Listening on port 33665 09:40:51.455094 Wrote pid 101160 to log/36/server/ftp_sockdata.pid 09:40:51.455285 Received PING (on stdin) 09:40:51.458621 Received PORT (on stdin) 09:40:51.462833 ====> Client connect 09:40:51.472192 Received DATA (on stdin) 09:40:51.472332 > 17 bytes data, server => client 09:40:51.473094 'WE ROOLZ: 82698\r\n' 09:40:51.474368 Received DISC (on stdin) 09:40:51.474584 ====> Client forcibly disconnected 09:40:51.476092 Received QUIT (on stdin) 09:40:51.476215 quits 09:40:51.476725 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 524 === End of file server.cmd === Start of file valgrind524 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind524 test 0503...[simple multi http:// through proxytunnel with authentication info] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind503 ./libtest/libtests lib503 http://machine.503:41267/503 127.0.0.1:44417 > log/43/stdout503 2> log/43/stderr503 503: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 503 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind503 ./libtest/libtests lib503 http://machine.503:41267/503 127.0.0.1:44417 > log/43/stdout503 2> log/43/stderr503 === End of file commands.log === Start of file http2_server.log 09:40:51.299842 ====> Client connect 09:40:51.300237 accept_connection 3 returned 4 09:40:51.303401 accept_connection 3 returned 0 09:40:51.303693 Read 93 bytes 09:40:51.303810 Process 93 bytes request 09:40:51.303916 Got request: GET /verifiedserver HTTP/1.1 09:40:51.304010 Are-we-friendly question received 09:40:51.304264 Wrote request (93 bytes) input to log/43/proxy.input 09:40:51.304596 Identifying ourselves as friends 09:40:51.305434 Response sent (56 bytes) and written to log/43/proxy.response 09:40:51.308702 special request received, no persistency 09:40:51.308789 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:44417... * Connected to 127.0.0.1 (127.0.0.1) port 44417 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44417 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 77906 === End of file http2_verify.out === Start of file http_server.log 09:40:50.847117 ====> Client connect 09:40:50.847636 accept_connection 3 returned 4 09:40:50.847850 accept_connection 3 returned 0 09:40:50.847987 Read 93 bytes 09:40:50.848099 Process 93 bytes request 09:40:50.848199 Got request: GET /verifiedserver HTTP/1.1 09:40:50.848302 Are-we-friendly question received 09:40:50.848661 Wrote request (93 bytes) input to log/43/server.input 09:40:50.848976 Identifying ourselves as friends 09:40:50.857152 Response sent (56 bytes) and written to log/43/server.response 09:40:50.857302 special request received, no persistency 09:40:50.857394 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77906 === End of file proxy.response === Start of file server.cmd connection-monitor Testnum 503 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file test503.txt foo bar bar foo moo === End of file test503.txt === Start of file valgrind503 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind503 test 0551...[HTTP proxy auth Digest with POST data from read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind551 ./libtest/libtests lib547 http://test.remote.example.com/path/551 http://127.0.0.1:34239 s1lly:pers0n > log/45/stdout551 2> log/45/stderr551 551: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 551 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind551 ./libtest/libtests lib547 http://test.remote.example.com/path/551 http://127.0.0.1:34239 s1lly:pers0n > log/45/stdout551 2> log/45/stderr551 === End of file commands.log === Start of file http_server.log 09:40:50.674887 ====> Client connect 09:40:50.675142 accept_connection 3 returned 4 09:40:50.675299 accept_connection 3 returned 0 09:40:50.675428 Read 93 bytes 09:40:50.675653 Process 93 bytes request 09:40:50.675739 Got request: GET /verifiedserver HTTP/1.1 09:40:50.675816 Are-we-friendly question received 09:40:50.676046 Wrote request (93 bytes) input to log/45/server.input 09:40:50.676244 Identifying ourselves as friends 09:40:50.676836 Response sent (56 bytes) and written to log/45/server.response 09:40:50.676949 special request received, no persistency 09:40:50.677019 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 551 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind551 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind551 test 0513...[send HTTP POST using read callback that returns CURL_READFUNC_ABORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind513 ./libtest/libtests lib513 http://127.0.0.1:34903/513 > log/51/stdout513 2> log/51/stderr513 libtests returned 1, when expecting 42 513: exit FAILED == Contents of files in the log/51/ dir after test 513 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind513 ./libtest/libtests lib513 http://127.0.0.1:34903/513 > log/51/stdout513 2> log/51/stderr513 === End of file commands.log === Start of file http_server.log 09:40:50.883676 ====> Client connect 09:40:50.884007 accept_connection 3 returned 4 09:40:50.884183 accept_connection 3 returned 0 09:40:50.885118 Read 93 bytes 09:40:50.885271 Process 93 bytes request 09:40:50.885416 Got request: GET /verifiedserver HTTP/1.1 09:40:50.885810 Are-we-friendly question received 09:40:50.886321 Wrote request (93 bytes) input to log/51/server.input 09:40:50.886713 Identifying ourselves as friends 09:40:50.888524 Response sent (56 bytes) and written to log/51/server.response 09:40:50.888655 special request received, no persistency 09:40:50.888732 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 513 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind513 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind513 test 0565...[send HTTP POST using read callback, chunked transfer-encoding and Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind565 ./libtest/libtests lib510 http://127.0.0.1:46607/565 > log/9/stdout565 2> log/9/stderr565 565: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 565 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind565 ./libtest/libtests lib510 http://127.0.0.1:46607/565 > log/9/stdout565 2> log/9/stderr565 === End of file commands.log === Start of file http_server.log 09:40:52.065126 ====> Client connect 09:40:52.065873 accept_connection 3 returned 4 09:40:52.066063 accept_connection 3 returned 0 09:40:52.066217 Read 93 bytes 09:40:52.066325 Process 93 bytes request 09:40:52.066432 Got request: GET /verifiedserver HTTP/1.1 09:40:52.066611 Are-we-friendly question received 09:40:52.066847 Wrote request (93 bytes) input to log/9/server.input 09:40:52.067028 Identifying ourselves as friends 09:40:52.067898 Response sent (56 bytes) and written to log/9/server.response 09:40:52.068028 special request received, no persistency 09:40:52.068133 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 565 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind565 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind565 test 0559...[use tiny CURLOPT_BUFFERSIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind559 ./libtest/libtests lib559 http://127.0.0.1:36913/559 > log/10/stdout559 2> log/10/stderr559 559: data FAILED: --- log/10/check-expected 2025-07-18 09:40:53.341630409 +0000 +++ log/10/check-generated 2025-07-18 09:40:53.340601790 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[LF] -ETag: "21025-dc7-39462498"[LF] -Accept-Ranges: bytes[LF] -Content-Length: 2049[LF] -Connection: close[LF] -Content-Type: text/html[LF] -Silly-header: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] -[LF] -ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] == Contents of files in the log/10/ dir after test 559 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[LF] ETag: "21025-dc7-39462498"[LF] Accept-Ranges: bytes[LF] Content-Length: 2049[LF] Connection: close[LF] Content-Type: text/html[LF] Silly-header: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] [LF] ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind559 ./libtest/libtests lib559 http://127.0.0.1:36913/559 > log/10/stdout559 2> log/10/stderr559 === End of file commands.log === Start of file http_server.log 09:40:51.887877 ====> Client connect 09:40:51.888227 accept_connection 3 returned 4 09:40:51.888436 accept_connection 3 returned 0 09:40:51.888750 Read 93 bytes 09:40:51.888862 Process 93 bytes request 09:40:51.888956 Got request: GET /verifiedserver HTTP/1.1 09:40:51.889043 Are-we-friendly question received 09:40:51.889272 Wrote request (93 bytes) input to log/10/server.input 09:40:51.893652 Identifying ourselves as friends 09:40:51.894645 Response sent (56 bytes) and written to log/10/server.response 09:40:51.894776 special request received, no persistency 09:40:51.894861 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 559 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind559 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind559 test 0539...[Two FTP fetches using different CURLOPT_FTP_FILEMETHOD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind539 ./libtest/libtests lib539 ftp://127.0.0.1:34087/path/to/the/file/539 ftp://127.0.0.1:34087/path/to/the/file/5390001 > log/13/stdout539 2> log/13/stderr539 539: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 539 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind539 ./libtest/libtests lib539 ftp://127.0.0.1:34087/path/to/the/file/539 ftp://127.0.0.1:34087/path/to/the/file/5390001 > log/13/stdout539 2> log/13/stderr539 === End of file commands.log === Start of file ftp_server.log 09:40:51.394397 ====> Client connect 09:40:51.395629 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.404695 < "USER anonymous" 09:40:51.405165 > "331 We are happy you popped in![CR][LF]" 09:40:51.410218 < "PASS ftp@example.com" 09:40:51.410581 > "230 Welcome you silly person[CR][LF]" 09:40:51.412390 < "PWD" 09:40:51.412901 > "257 "/" is current directory[CR][LF]" 09:40:51.415832 < "EPSV" 09:40:51.416138 ====> Passive DATA channel requested by client 09:40:51.416311 DATA sockfilt for passive data channel starting... 09:40:51.448880 DATA sockfilt for passive data channel started (pid 101668) 09:40:51.450010 DATA sockfilt for passive data channel listens on port 40297 09:40:51.450452 > "229 Entering Passive Mode (|||40297|)[LF]" 09:40:51.450716 Client has been notified that DATA conn will be accepted on port 40297 09:40:51.460531 Client connects to port 40297 09:40:51.460931 ====> Client established passive DATA connection on port 40297 09:40:51.465999 < "TYPE I" 09:40:51.466439 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.471859 < "SIZE verifiedserver" 09:40:51.475957 > "213 17[CR][LF]" 09:40:51.480658 < "RETR verifiedserver" 09:40:51.482204 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.488596 =====> Closing passive DATA connection... 09:40:51.488944 Server disconnects passive DATA connection 09:40:51.495641 Server disconnected passive DATA connection 09:40:51.496394 DATA sockfilt for passive data channel quits (pid 101668) 09:40:51.506972 DATA sockfilt for passive data channel quit (pid 101668) 09:40:51.507236 =====> Closed passive DATA connection 09:40:51.507544 > "226 File transfer complete[CR][LF]" 09:40:51.529484 < "QUIT" 09:40:51.530574 > "221 bye bye baby[CR][LF]" 09:40:51.541885 MAIN sockfilt said DISC 09:40:51.542242 ====> Client disconnected 09:40:51.542970 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:50.647647 ====> Client connect 09:40:50.652608 Received DATA (on stdin) 09:40:50.652805 > 160 bytes data, server => client 09:40:50.653019 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:50.653114 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:50.653199 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:50.660548 < 16 bytes data, client => server 09:40:50.660717 'USER anonymous\r\n' 09:40:50.660810 Received DATA (on stdin) 09:40:50.660883 > 33 bytes data, server => client 09:40:50.660964 '331 We are happy you popped in!\r\n' 09:40:50.661624 < 22 bytes data, client => server 09:40:50.661760 'PASS ftp@example.com\r\n' 09:40:50.664696 Received DATA (on stdin) 09:40:50.664821 > 30 bytes data, server => client 09:40:50.664901 '230 Welcome you silly person\r\n' 09:40:50.666896 < 5 bytes data, client => server 09:40:50.667027 'PWD\r\n' 09:40:50.667122 Received DATA (on stdin) 09:40:50.667203 > 30 bytes data, server => client 09:40:50.667277 '257 "/" is current directory\r\n' 09:40:50.667974 < 6 bytes data, client => server 09:40:50.668114 'EPSV\r\n' 09:40:50.707564 Received DATA (on stdin) 09:40:50.707746 > 38 bytes data, server => client 09:40:50.707838 '229 Entering Passive Mode (|||40297|)\n' 09:40:50.713596 < 8 bytes data, client => server 09:40:50.713751 'TYPE I\r\n' 09:40:50.723564 Received DATA (on stdin) 09:40:50.723751 > 33 bytes data, server => client 09:40:50.723852 '200 I modify TYPE as you wanted\r\n' 09:40:50.724718 < 21 bytes data, client => server 09:40:50.724873 'SIZE verifiedserver\r\n' 09:40:50.725995 Received DATA (on stdin) 09:40:50.726141 > 8 bytes data, server => client 09:40:50.729999 '213 17\r\n' 09:40:50.733615 < 21 bytes data, client => server 09:40:50.733776 'RETR verifiedserver\r\n' 09:40:50.734857 Received DATA (on stdin) 09:40:50.735002 > 29 bytes data, server => client 09:40:50.735180 '150 Binary junk (17 bytes).\r\n' 09:40:50.761648 Received DATA (on stdin) 09:40:50.761790 > 28 bytes data, server => client 09:40:50.761875 '226 File transfer complete\r\n' 09:40:50.782225 < 6 bytes data, client => server 09:40:50.782392 'QUIT\r\n' 09:40:50.783929 Received DATA (on stdin) 09:40:50.784071 > 18 bytes data, server => client 09:40:50.786540 '221 bye bye baby\r\n' 09:40:50.790326 ====> Client disconnect 09:40:50.797020 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.701079 Running IPv4 version 09:40:51.701710 Listening on port 40297 09:40:51.702069 Wrote pid 101668 to log/13/server/ftp_sockdata.pid 09:40:51.702224 Received PING (on stdin) 09:40:51.703018 Received PORT (on stdin) 09:40:51.713952 ====> Client connect 09:40:51.736559 Received DATA (on stdin) 09:40:51.736793 > 17 bytes data, server => client 09:40:51.746632 'WE ROOLZ: 79551\r\n' 09:40:51.747328 Received DISC (on stdin) 09:40:51.747575 ====> Client forcibly disconnected 09:40:51.754701 Received QUIT (on stdin) 09:40:51.755101 quits 09:40:51.755813 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 539 === End of file server.cmd === Start of file valgrind539 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind539 test 0556...[send and recv HTTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind556 ./libtest/libtests lib556 http://127.0.0.1:44383 > log/17/stdout556 2> log/17/stderr556 556: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 556 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind556 ./libtest/libtests lib556 http://127.0.0.1:44383 > log/17/stdout556 2> log/17/stderr556 === End of file commands.log === Start of file http_server.log 09:40:51.915808 ====> Client connect 09:40:51.916115 accept_connection 3 returned 4 09:40:51.916286 accept_connection 3 returned 0 09:40:51.917207 Read 93 bytes 09:40:51.917348 Process 93 bytes request 09:40:51.917504 Got request: GET /verifiedserver HTTP/1.1 09:40:51.917600 Are-we-friendly question received 09:40:51.917849 Wrote request (93 bytes) input to log/17/server.input 09:40:51.918032 Identifying ourselves as friends 09:40:51.919799 Response sent (56 bytes) and written to log/17/server.response 09:40:51.919914 special request received, no persistency 09:40:51.919980 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 556 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind556 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind556 test 0555...[HTTP proxy auth NTLM with POST data from read callback multi-if] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind555 ./libtest/libtests lib555 http://test.remote.example.com/path/555 http://127.0.0.1:41285 testuser:testpass > log/18/stdout555 2> log/18/stderr555 555: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 555 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind555 ./libtest/libtests lib555 http://test.remote.example.com/path/555 http://127.0.0.1:41285 testuser:testpass > log/18/stdout555 2> log/18/stderr555 === End of file commands.log === Start of file http_server.log 09:40:51.819048 ====> Client connect 09:40:51.819374 accept_connection 3 returned 4 09:40:51.819706 accept_connection 3 returned 0 09:40:51.821073 Read 93 bytes 09:40:51.821309 Process 93 bytes request 09:40:51.821414 Got request: GET /verifiedserver HTTP/1.1 09:40:51.821578 Are-we-friendly question received 09:40:51.821872 Wrote request (93 bytes) input to log/18/server.input 09:40:51.822153 Identifying ourselves as friends 09:40:51.822809 Response sent (56 bytes) and written to log/18/server.response 09:40:51.822910 special request received, no persistency 09:40:51.822975 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 555 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind555 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: vCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind567 ./libtest/libtests lib567 rtsp://127.0.0.1:33305/567 > log/4/stdout567 2> log/4/stderr567 algrind: Cannot continue -- exiting now. Sorry. === End of file valgrind555 test 0553...[HTTP post with huge request headers and post data from callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind553 ./libtest/libtests lib553 http://127.0.0.1:43913/path/553 > log/30/stdout553 2> log/30/stderr553 553: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 553 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind553 ./libtest/libtests lib553 http://127.0.0.1:43913/path/553 > log/30/stdout553 2> log/30/stderr553 === End of file commands.log === Start of file http_server.log 09:40:51.884144 ====> Client connect 09:40:51.884628 accept_connection 3 returned 4 09:40:51.884834 accept_connection 3 returned 0 09:40:51.884983 Read 93 bytes 09:40:51.885097 Process 93 bytes request 09:40:51.885207 Got request: GET /verifiedserver HTTP/1.1 09:40:51.885302 Are-we-friendly question received 09:40:51.885649 Wrote request (93 bytes) input to log/30/server.input 09:40:51.885897 Identifying ourselves as friends 09:40:51.886799 Response sent (56 bytes) and written to log/30/server.response 09:40:51.886947 special request received, no persistency 09:40:51.887058 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 553 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind553 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind553 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/31/server/ftp_server.pid" --logfile "log/31/ftp_server.log" --logdir "log/31" --portfile "log/31/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40969 (log/31/server/ftp_server.port) RUN: FTP server is PID 100730 port 40969 * pid ftp => 100730 100730 test 0527...[FTP RETR same file using different handles but same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind527 ./libtest/libtests lib526 ftp://127.0.0.1:40969/path/527 > log/31/stdout527 2> log/31/stderr527 527: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 527 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind527 ./libtest/libtests lib526 ftp://127.0.0.1:40969/path/527 > log/31/stdout527 2> log/31/stderr527 === End of file commands.log === Start of file ftp_server.log 09:40:51.294016 FTP server listens on port IPv4/40969 09:40:51.298043 logged pid 100730 in log/31/server/ftp_server.pid 09:40:51.298335 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.537425 Running IPv4 version 09:40:51.545112 Listening on port 40969 09:40:51.545711 Wrote pid 101433 to log/31/server/ftp_sockctrl.pid 09:40:51.546064 Wrote port 40969 to log/31/server/ftp_server.port 09:40:51.546223 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 527 === End of file server.cmd === Start of file valgrind527 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind527 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/33/server/ftp_server.pid" --logfile "log/33/ftp_server.log" --logdir "log/33" --portfile "log/33/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36895 (log/33/server/ftp_server.port) RUN: FTP server is PID 100684 port 36895 * pid ftp => 100684 100684 test 0526...[FTP RETR same file using different handles but same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind526 ./libtest/libtests lib526 ftp://127.0.0.1:36895/path/526 > log/33/stdout526 2> log/33/stderr526 526: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 526 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind526 ./libtest/libtests lib526 ftp://127.0.0.1:36895/path/526 > log/33/stdout526 2> log/33/stderr526 === End of file commands.log === Start of file ftp_server.log 09:40:51.338302 FTP server listens on port IPv4/36895 09:40:51.339363 logged pid 100684 in log/33/server/ftp_server.pid 09:40:51.339619 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.585666 Running IPv4 version 09:40:51.586243 Listening on port 36895 09:40:51.590806 Wrote pid 101498 to log/33/server/ftp_sockctrl.pid 09:40:51.591129 Wrote port 36895 to log/33/server/ftp_server.port 09:40:51.591302 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 526 === End of file server.cmd === Start of file valgrind526 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind526 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/35/server/ftp_server.pid" --logfile "log/35/ftp_server.log" --logdir "log/35" --portfile "log/35/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39447 (log/35/server/ftp_server.port) RUN: FTP server is PID 100686 port 39447 * pid ftp => 100686 100686 test 0525...[FTP PORT upload using multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind525 ./libtest/libtests lib525 ftp://127.0.0.1:39447/path/525 log/35/upload525 > log/35/stdout525 2> log/35/stderr525 525: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 525 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind525 ./libtest/libtests lib525 ftp://127.0.0.1:39447/path/525 log/35/upload525 > log/35/stdout525 2> log/35/stderr525 === End of file commands.log === Start of file ftp_server.log 09:40:51.486157 FTP server listens on port IPv4/39447 09:40:51.487071 logged pid 100686 in log/35/server/ftp_server.pid 09:40:51.487319 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.737771 Running IPv4 version 09:40:51.738293 Listening on port 39447 09:40:51.738785 Wrote pid 101771 to log/35/server/ftp_sockctrl.pid 09:40:51.739085 Wrote port 39447 to log/35/server/ftp_server.port 09:40:51.739219 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 525 === End of file server.cmd === Start of file upload525 Moooooooooooo upload this === End of file upload525 === Start of file valgrind525 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind525 test 0554...[HTTP multi-part formpost using read callback for the file part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind554 ./libtest/libtests lib554 http://127.0.0.1:42899/554 > log/39/stdout554 2> log/39/stderr554 554: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 554 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind554 ./libtest/libtests lib554 http://127.0.0.1:42899/554 > log/39/stdout554 2> log/39/stderr554 === End of file commands.log === Start of file http_server.log 09:40:51.856129 ====> Client connect 09:40:51.856400 accept_connection 3 returned 4 09:40:51.856710 accept_connection 3 returned 0 09:40:51.856847 Read 93 bytes 09:40:51.856923 Process 93 bytes request 09:40:51.857061 Got request: GET /verifiedserver HTTP/1.1 09:40:51.857198 Are-we-friendly question received 09:40:51.857665 Wrote request (93 bytes) input to log/39/server.input 09:40:51.857852 Identifying ourselves as friends 09:40:51.858608 Response sent (56 bytes) and written to log/39/server.response 09:40:51.858713 special request received, no persistency 09:40:51.858775 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 554 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind554 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind554 test 0552...[HTTP proxy auth Digest with 70K POST data from read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind552 ./libtest/libtests lib552 http://test.remote.example.com/path/552 http://s1lly:pers0n@127.0.0.1:34655/ > log/44/stdout552 2> log/44/stderr552 552: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 552 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind552 ./libtest/libtests lib552 http://test.remote.example.com/path/552 http://s1lly:pers0n@127.0.0.1:34655/ > log/44/stdout552 2> log/44/stderr552 === End of file commands.log === Start of file http_server.log 09:40:51.681246 ====> Client connect 09:40:51.681725 accept_connection 3 returned 4 09:40:51.683102 accept_connection 3 returned 0 09:40:51.683260 Read 93 bytes 09:40:51.683358 Process 93 bytes request 09:40:51.683552 Got request: GET /verifiedserver HTTP/1.1 09:40:51.683664 Are-we-friendly question received 09:40:51.683904 Wrote request (93 bytes) input to log/44/server.input 09:40:51.684093 Identifying ourselves as friends 09:40:51.684893 Response sent (56 bytes) and written to log/44/server.response 09:40:51.685013 special request received, no persistency 09:40:51.685090 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 552 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind552 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind552 test 0514...[First set options to POST and then to make HEAD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind514 ./libtest/libtests lib514 http://127.0.0.1:42667/514 > log/49/stdout514 2> log/49/stderr514 514: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 514 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind514 ./libtest/libtests lib514 http://127.0.0.1:42667/514 > log/49/stdout514 2> log/49/stderr514 === End of file commands.log === Start of file http_server.log 09:40:51.018731 ====> Client connect 09:40:51.019105 accept_connection 3 returned 4 09:40:51.019289 accept_connection 3 returned 0 09:40:51.019433 Read 93 bytes 09:40:51.019645 Process 93 bytes request 09:40:51.019747 Got request: GET /verifiedserver HTTP/1.1 09:40:51.019834 Are-we-friendly question received 09:40:51.020111 Wrote request (93 bytes) input to log/49/server.input 09:40:51.020376 Identifying ourselves as friends 09:40:51.025763 Response sent (56 bytes) and written to log/49/server.response 09:40:51.025905 special request received, no persistency 09:40:51.026020 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 514 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind514 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind514 test 0550...[FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE and ASCII transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind550 ./libtest/libtests lib549 ftp://www.example.com/moo/550 http://127.0.0.1:34639 ascii > log/53/stdout550 2> log/53/stderr550 550: stdout FAILED: --- log/53/check-expected 2025-07-18 09:40:53.555490961 +0000 +++ log/53/check-generated 2025-07-18 09:40:53.554601682 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/53/ dir after test 550 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind550 ./libtest/libtests lib549 ftp://www.example.com/moo/550 http://127.0.0.1:34639 ascii > log/53/stdout550 2> log/53/stderr550 === End of file commands.log === Start of file http_server.log 09:40:51.685403 ====> Client connect 09:40:51.685858 accept_connection 3 returned 4 09:40:51.686042 accept_connection 3 returned 0 09:40:51.686752 Read 93 bytes 09:40:51.686899 Process 93 bytes request 09:40:51.686983 Got request: GET /verifiedserver HTTP/1.1 09:40:51.687076 Are-we-friendly question received 09:40:51.687326 Wrote request (93 bytes) input to log/53/server.input 09:40:51.687612 Identifying ourselves as friends 09:40:51.688159 Response sent (56 bytes) and written to log/53/server.response 09:40:51.688288 special request received, no persistency 09:40:51.688354 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 550 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind550 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind550 test 0549...[FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind549 ./libtest/libtests lib549 ftp://www.example.com/moo/549 http://127.0.0.1:35945 > log/57/stdout549 2> log/57/stderr549 549: stdout FAILED: --- log/57/check-expected 2025-07-18 09:40:53.608704074 +0000 +++ log/57/check-generated 2025-07-18 09:40:53.607601655 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/57/ dir after test 549 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind549 ./libtest/libtests lib549 ftp://www.example.com/moo/549 http://127.0.0.1:35945 > log/57/stdout549 2> log/57/stderr549 === End of file commands.log === Start of file http_server.log 09:40:51.813030 ====> Client connect 09:40:51.813390 accept_connection 3 returned 4 09:40:51.813758 accept_connection 3 returned 0 09:40:51.813924 Read 93 bytes 09:40:51.814032 Process 93 bytes request 09:40:51.814150 Got request: GET /verifiedserver HTTP/1.1 09:40:51.814251 Are-we-friendly question received 09:40:51.814621 Wrote request (93 bytes) input to log/57/server.input 09:40:51.814855 Identifying ourselves as friends 09:40:51.822762 Response sent (56 bytes) and written to log/57/server.response 09:40:51.822912 special request received, no persistency 09:40:51.823005 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 549 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind549 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind549 setenv ftp_proxy = http://127.0.0.1:46727/ test 0563...[FTP type=A URL and CURLOPT_PORT set and proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind563 ./libtest/libtests lib562 "ftp://127.0.0.1:23456/563;type=A" 38901 > log/58/stdout563 2> log/58/stderr563 563: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 563 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind563 ./libtest/libtests lib562 "ftp://127.0.0.1:23456/563;type=A" 38901 > log/58/stdout563 2> log/58/stderr563 === End of file commands.log === Start of file ftp_server.log 09:40:51.976404 ====> Client connect 09:40:51.978237 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.981969 < "USER anonymous" 09:40:51.983512 > "331 We are happy you popped in![CR][LF]" 09:40:51.985118 < "PASS ftp@example.com" 09:40:51.985867 > "230 Welcome you silly person[CR][LF]" 09:40:51.987815 < "PWD" 09:40:51.988997 > "257 "/" is current directory[CR][LF]" 09:40:51.990885 < "EPSV" 09:40:51.991193 ====> Passive DATA channel requested by client 09:40:51.991388 DATA sockfilt for passive data channel starting... 09:40:52.005382 DATA sockfilt for passive data channel started (pid 102611) 09:40:52.006590 DATA sockfilt for passive data channel listens on port 43553 09:40:52.007162 > "229 Entering Passive Mode (|||43553|)[LF]" 09:40:52.007436 Client has been notified that DATA conn will be accepted on port 43553 09:40:52.009949 Client connects to port 43553 09:40:52.010277 ====> Client established passive DATA connection on port 43553 09:40:52.011659 < "TYPE I" 09:40:52.012679 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:52.015148 < "SIZE verifiedserver" 09:40:52.016614 > "213 17[CR][LF]" 09:40:52.018724 < "RETR verifiedserver" 09:40:52.019371 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:52.021899 =====> Closing passive DATA connection... 09:40:52.022614 Server disconnects passive DATA connection 09:40:52.025324 Fancy that; client wants to DISC, too 09:40:52.026910 Server disconnected passive DATA connection 09:40:52.027544 DATA sockfilt for passive data channel quits (pid 102611) 09:40:52.031815 DATA sockfilt for passive data channel quit (pid 102611) 09:40:52.032467 =====> Closed passive DATA connection 09:40:52.032929 > "226 File transfer complete[CR][LF]" 09:40:52.064006 < "QUIT" 09:40:52.065195 > "221 bye bye baby[CR][LF]" 09:40:52.069193 MAIN sockfilt said DISC 09:40:52.070332 ====> Client disconnected 09:40:52.070967 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:52.229299 ====> Client connect 09:40:52.232824 Received DATA (on stdin) 09:40:52.232974 > 160 bytes data, server => client 09:40:52.233073 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:52.233156 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:52.233243 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:52.234539 < 16 bytes data, client => server 09:40:52.234881 'USER anonymous\r\n' 09:40:52.236092 Received DATA (on stdin) 09:40:52.236245 > 33 bytes data, server => client 09:40:52.236551 '331 We are happy you popped in!\r\n' 09:40:52.237957 < 22 bytes data, client => server 09:40:52.238092 'PASS ftp@example.com\r\n' 09:40:52.239169 Received DATA (on stdin) 09:40:52.239311 > 30 bytes data, server => client 09:40:52.239888 '230 Welcome you silly person\r\n' 09:40:52.240566 < 5 bytes data, client => server 09:40:52.240704 'PWD\r\n' 09:40:52.241953 Received DATA (on stdin) 09:40:52.242087 > 30 bytes data, server => client 09:40:52.242256 '257 "/" is current directory\r\n' 09:40:52.243831 < 6 bytes data, client => server 09:40:52.244006 'EPSV\r\n' 09:40:52.261419 Received DATA (on stdin) 09:40:52.261657 > 38 bytes data, server => client 09:40:52.261752 '229 Entering Passive Mode (|||43553|)\n' 09:40:52.264341 < 8 bytes data, client => server 09:40:52.264546 'TYPE I\r\n' 09:40:52.265909 Received DATA (on stdin) 09:40:52.266115 > 33 bytes data, server => client 09:40:52.266813 '200 I modify TYPE as you wanted\r\n' 09:40:52.267719 < 21 bytes data, client => server 09:40:52.267938 'SIZE verifiedserver\r\n' 09:40:52.269315 Received DATA (on stdin) 09:40:52.269600 > 8 bytes data, server => client 09:40:52.269868 '213 17\r\n' 09:40:52.271659 < 21 bytes data, client => server 09:40:52.271918 'RETR verifiedserver\r\n' 09:40:52.273603 Received DATA (on stdin) 09:40:52.273753 > 29 bytes data, server => client 09:40:52.273825 '150 Binary junk (17 bytes).\r\n' 09:40:52.287044 Received DATA (on stdin) 09:40:52.287191 > 28 bytes data, server => client 09:40:52.287280 '226 File transfer complete\r\n' 09:40:52.316519 < 6 bytes data, client => server 09:40:52.316704 'QUIT\r\n' 09:40:52.318082 Received DATA (on stdin) 09:40:52.318224 > 18 bytes data, server => client 09:40:52.318403 '221 bye bye baby\r\n' 09:40:52.322564 ====> Client disconnect 09:40:52.323296 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:52.256958 Running IPv4 version 09:40:52.257714 Listening on port 43553 09:40:52.258386 Wrote pid 102611 to log/58/server/ftp_sockdata.pid 09:40:52.258744 Received PING (on stdin) 09:40:52.259613 Received PORT (on stdin) 09:40:52.262944 ====> Client connect 09:40:52.274155 Received DATA (on stdin) 09:40:52.274316 > 17 bytes data, server => client 09:40:52.276651 'WE ROOLZ: 77973\r\n' 09:40:52.277663 ====> Client disconnect 09:40:52.278510 Received DISC (on stdin) 09:40:52.278683 Crikey! Client also wants to disconnect 09:40:52.279985 Received ACKD (on stdin) 09:40:52.282709 Received QUIT (on stdin) 09:40:52.282836 quits 09:40:52.283637 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:40:51.935801 ====> Client connect 09:40:51.936081 accept_connection 3 returned 4 09:40:51.936250 accept_connection 3 returned 0 09:40:51.937036 Read 93 bytes 09:40:51.937190 Process 93 bytes request 09:40:51.937293 Got request: GET /verifiedserver HTTP/1.1 09:40:51.937382 Are-we-friendly question received 09:40:51.937723 Wrote request (93 bytes) input to log/58/server.input 09:40:51.937945 Identifying ourselves as friends 09:40:51.938690 Response sent (56 bytes) and written to log/58/server.response 09:40:51.938817 special request received, no persistency 09:40:51.938886 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 563 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind563 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind563 test 0562...[FTP a type=A URL and CURLOPT_PORT set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind562 ./libtest/libtests lib562 'ftp://127.0.0.1:23456/562;type=A' 41385 > log/60/stdout562 2> log/60/stderr562 562: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 562 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind562 ./libtest/libtests lib562 'ftp://127.0.0.1:23456/562;type=A' 41385 > log/60/stdout562 2> log/60/stderr562 === End of file commands.log === Start of file ftp_server.log 09:40:51.613364 ====> Client connect 09:40:51.615951 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.619071 < "USER anonymous" 09:40:51.620247 > "331 We are happy you popped in![CR][LF]" 09:40:51.622403 < "PASS ftp@example.com" 09:40:51.623483 > "230 Welcome you silly person[CR][LF]" 09:40:51.625391 < "PWD" 09:40:51.626588 > "257 "/" is current directory[CR][LF]" 09:40:51.628622 < "EPSV" 09:40:51.629096 ====> Passive DATA channel requested by client 09:40:51.629304 DATA sockfilt for passive data channel starting... 09:40:51.653894 DATA sockfilt for passive data channel started (pid 102002) 09:40:51.655357 DATA sockfilt for passive data channel listens on port 42295 09:40:51.656190 > "229 Entering Passive Mode (|||42295|)[LF]" 09:40:51.656514 Client has been notified that DATA conn will be accepted on port 42295 09:40:51.661326 Client connects to port 42295 09:40:51.661657 ====> Client established passive DATA connection on port 42295 09:40:51.662568 < "TYPE I" 09:40:51.663182 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.665155 < "SIZE verifiedserver" 09:40:51.666846 > "213 17[CR][LF]" 09:40:51.667521 < "RETR verifiedserver" 09:40:51.668315 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.669079 =====> Closing passive DATA connection... 09:40:51.669292 Server disconnects passive DATA connection 09:40:51.671617 Server disconnected passive DATA connection 09:40:51.672001 DATA sockfilt for passive data channel quits (pid 102002) 09:40:51.674194 DATA sockfilt for passive data channel quit (pid 102002) 09:40:51.674433 =====> Closed passive DATA connection 09:40:51.675161 > "226 File transfer complete[CR][LF]" 09:40:51.713052 < "QUIT" 09:40:51.714604 > "221 bye bye baby[CR][LF]" 09:40:51.718229 MAIN sockfilt said DISC 09:40:51.719107 ====> Client disconnected 09:40:51.719636 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.866387 ====> Client connect 09:40:51.868913 Received DATA (on stdin) 09:40:51.869082 > 160 bytes data, server => client 09:40:51.869277 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.869410 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.870697 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.871680 < 16 bytes data, client => server 09:40:51.871823 'USER anonymous\r\n' 09:40:51.873162 Received DATA (on stdin) 09:40:51.873307 > 33 bytes data, server => client 09:40:51.873561 '331 We are happy you popped in!\r\n' 09:40:51.875393 < 22 bytes data, client => server 09:40:51.875613 'PASS ftp@example.com\r\n' 09:40:51.876757 Received DATA (on stdin) 09:40:51.876984 > 30 bytes data, server => client 09:40:51.877567 '230 Welcome you silly person\r\n' 09:40:51.878226 < 5 bytes data, client => server 09:40:51.878380 'PWD\r\n' 09:40:51.879565 Received DATA (on stdin) 09:40:51.879718 > 30 bytes data, server => client 09:40:51.879902 '257 "/" is current directory\r\n' 09:40:51.881414 < 6 bytes data, client => server 09:40:51.881679 'EPSV\r\n' 09:40:51.910540 Received DATA (on stdin) 09:40:51.910678 > 38 bytes data, server => client 09:40:51.910747 '229 Entering Passive Mode (|||42295|)\n' 09:40:51.914520 < 8 bytes data, client => server 09:40:51.914805 'TYPE I\r\n' 09:40:51.917199 Received DATA (on stdin) 09:40:51.917324 > 33 bytes data, server => client 09:40:51.917400 '200 I modify TYPE as you wanted\r\n' 09:40:51.918029 < 21 bytes data, client => server 09:40:51.918174 'SIZE verifiedserver\r\n' 09:40:51.919224 Received DATA (on stdin) 09:40:51.919354 > 8 bytes data, server => client 09:40:51.919572 '213 17\r\n' 09:40:51.920166 < 21 bytes data, client => server 09:40:51.920296 'RETR verifiedserver\r\n' 09:40:51.921683 Received DATA (on stdin) 09:40:51.921829 > 29 bytes data, server => client 09:40:51.923202 '150 Binary junk (17 bytes).\r\n' 09:40:51.928495 Received DATA (on stdin) 09:40:51.928648 > 28 bytes data, server => client 09:40:51.929159 '226 File transfer complete\r\n' 09:40:51.965206 < 6 bytes data, client => server 09:40:51.965557 'QUIT\r\n' 09:40:51.967206 Received DATA (on stdin) 09:40:51.967396 > 18 bytes data, server => client 09:40:51.967802 '221 bye bye baby\r\n' 09:40:51.971620 ====> Client disconnect 09:40:51.972250 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.906184 Running IPv4 version 09:40:51.906753 Listening on port 42295 09:40:51.907150 Wrote pid 102002 to log/60/server/ftp_sockdata.pid 09:40:51.907309 Received PING (on stdin) 09:40:51.908398 Received PORT (on stdin) 09:40:51.913635 ====> Client connect 09:40:51.923599 Received DATA (on stdin) 09:40:51.923737 > 17 bytes data, server => client 09:40:51.923810 'WE ROOLZ: 78622\r\n' 09:40:51.924042 Received DISC (on stdin) 09:40:51.924183 ====> Client forcibly disconnected 09:40:51.926032 Received QUIT (on stdin) 09:40:51.926283 quits 09:40:51.926794 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 562 === End of file server.cmd === Start of file valgrind562 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind562 test 0548...[HTTP proxy auth NTLM with POST data from CURLOPT_POSTFIELDS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind548 ./libtest/libtests lib547 http://test.remote.example.com/path/548 http://127.0.0.1:44381 testuser:testpass > log/61/stdout548 2> log/61/stderr548 548: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 548 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind548 ./libtest/libtests lib547 http://test.remote.example.com/path/548 http://127.0.0.1:44381 testuser:testpass > log/61/stdout548 2> log/61/stderr548 === End of file commands.log === Start of file http_server.log 09:40:51.702309 ====> Client connect 09:40:51.702738 accept_connection 3 returned 4 09:40:51.702904 accept_connection 3 returned 0 09:40:51.703041 Read 93 bytes 09:40:51.703132 Process 93 bytes request 09:40:51.703223 Got request: GET /verifiedserver HTTP/1.1 09:40:51.703303 Are-we-friendly question received 09:40:51.703641 Wrote request (93 bytes) input to log/61/server.input 09:40:51.703862 Identifying ourselves as friends 09:40:51.704611 Response sent (56 bytes) and written to log/61/server.response 09:40:51.704718 special request received, no persistency 09:40:51.704782 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 548 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind548 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind548 test 0547...[HTTP proxy auth NTLM with POST data from read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind568 ./libtest/libtests lib568 rtsp://127.0.0.1:38317/568 log/56/file568.txt > log/56/stdout568 2> log/56/stderr568 d.supp --num-callers=16 --log-file=log/62/valgrind547 ./libtest/libtests lib547 http://test.remote.example.com/path/547 http://127.0.0.1:38899 testuser:testpass > log/62/stdout547 2> log/62/stderr547 547: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 547 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind547 ./libtest/libtests lib547 http://test.remote.example.com/path/547 http://127.0.0.1:38899 testuser:testpass > log/62/stdout547 2> log/62/stderr547 === End of file commands.log === Start of file http_server.log 09:40:51.692135 ====> Client connect 09:40:51.692602 accept_connection 3 returned 4 09:40:51.692793 accept_connection 3 returned 0 09:40:51.692923 Read 93 bytes 09:40:51.693017 Process 93 bytes request 09:40:51.693103 Got request: GET /verifiedserver HTTP/1.1 09:40:51.693181 Are-we-friendly question received 09:40:51.693543 Wrote request (93 bytes) input to log/62/server.input 09:40:51.693749 Identifying ourselves as friends 09:40:51.694614 Response sent (56 bytes) and written to log/62/server.response 09:40:51.694723 special request received, no persistency 09:40:51.694798 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 547 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind547 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind547 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/4/server/rtsp_server.pid" --portfile "log/4/server/rtsp_server.port" --logfile "log/4/rtsp_server.log" --logdir "log/4" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 101717 port 33305 * pid rtsp => 101717 101717 test 0567...[simple RTSP OPTIONS command] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind567 ./libtest/libtests lib567 rtsp://127.0.0.1:33305/567 > log/4/stdout567 2> log/4/stderr567 567: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 567 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind567 ./libtest/libtests lib567 rtsp://127.0.0.1:33305/567 > log/4/stdout567 2> log/4/stderr567 === End of file commands.log === Start of file rtsp_server.log 09:40:51.011974 Running IPv4 version on port 33305 09:40:51.013006 Wrote pid 101717 to log/4/server/rtsp_server.pid 09:40:51.013380 Wrote port 33305 to log/4/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 567 === End of file server.cmd === Start of file valgrind567 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind567 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/56/server/rtsp_server.pid" --portfile "log/56/server/rtsp_server.port" --logfile "log/56/rtsp_server.log" --logdir "log/56" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 102012 port 38317 * pid rtsp => 102012 102012 test 0568...[RTSP Announce (PUT and POST style) test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind568 ./libtest/libtests lib568 rtsp://127.0.0.1:38317/568 log/56/file568.txt > log/56/stdout568 2> log/56/stderr568 568: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 568 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind568 ./libtest/libtests lib568 rtsp://127.0.0.1:38317/568 log/56/file568.txt > log/56/stdout568 2> log/56/stderr568 === End of file commands.log === Start of file file568.txt v=0 o=mhandley 2890844526 2890845468 IN IP4 126.16.64.4 s=SDP Seminar i=A Seminar on the session description protocol u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps e=mjh@isi.edu (Mark Handley) c=IN IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 3456 RTP/AVP 0 m=video 2232 RTP/AVP 31 === End of file file568.txt === CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind569 ./libtest/libtests lib569 rtsp://127.0.0.1:33051/569 log/19/idfile569.txt > log/19/stdout569 2> log/19/stderr569 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind573 ./libtest/libtests lib573 http://127.0.0.1:35093/573 > log/41/stdout573 2> log/41/stderr573 Start of file rtsp_server.log 09:40:52.264097 Running IPv4 version on port 38317 09:40:52.265326 Wrote pid 102012 to log/56/server/rtsp_server.pid 09:40:52.269244 Wrote port 38317 to log/56/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 568 === End of file server.cmd === Start of file valgrind568 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind568 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/19/server/rtsp_server.pid" --portfile "log/19/server/rtsp_server.port" --logfile "log/19/rtsp_server.log" --logdir "log/19" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 102051 port 33051 * pid rtsp => 102051 102051 test 0569...[RTSP Session ID parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind569 ./libtest/libtests lib569 rtsp://127.0.0.1:33051/569 log/19/idfile569.txt > log/19/stdout569 2> log/19/stderr569 569: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 569 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind569 ./libtest/libtests lib569 rtsp://127.0.0.1:33051/569 log/19/idfile569.txt > log/19/stdout569 2> log/19/stderr569 === End of file commands.log === Start of file rtsp_server.log 09:40:51.173158 Running IPv4 version on port 33051 09:40:51.175057 Wrote pid 102051 to log/19/server/rtsp_server.pid 09:40:51.175620 Wrote port 33051 to log/19/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 569 === End of file server.cmd === Start of file valgrind569 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind569 test 0573...[verify connect time with multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind573 ./libtest/libtests lib573 http://127.0.0.1:35093/573 > log/41/stdout573 2> log/41/stderr573 573: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 573 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind573 ./libtest/libtests lib573 http://127.0.0.1:35093/573 > log/41/stdout573 2> log/41/stderr573 === End of file commands.log === Start of file http_server.log 09:40:53.417699 ====> Client connect 09:40:53.418033 accept_connection 3 returned 4 09:40:53.418204 accept_connection 3 returned 0 09:40:53.418924 Read 93 bytes 09:40:53.419076 Process 93 bytes request 09:40:53.419173 Got request: GET /verifiedserver HTTP/1.1 09:40:53.419252 Are-we-friendly question received 09:40:53.419923 Wrote request (93 bytes) input to log/41/server.input 09:40:53.420149 Identifying ourselves as friends 09:40:53.421942 Response sent (56 bytes) and written to log/41/server.response 09:40:53.422064 special request received, no persistency 09:40:53.422139 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 573 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind573 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note thacannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind564 ./libtest/libtests lib564 ftp://127.0.0.1:37853/path/564 127.0.0.1:38543 > log/46/stdout564 2> log/46/stderr564 t if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind573 cannot find sshd startnew: ./server/servers socksd --port 0 --pidfile log/46/server/socks_server.pid --portfile log/46/server/socks_server.port --reqfile log/46/socksd-request.log --logfile log/46/socks_server.log --backend 127.0.0.1 --config log/46/server.cmd RUN: SOCKS server is now running PID 102446 * pid socks => 102446 102446 test 0564...[FTP RETR a file over a SOCKS proxy using the multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind564 ./libtest/libtests lib564 ftp://127.0.0.1:37853/path/564 127.0.0.1:38543 > log/46/stdout564 2> log/46/stderr564 564: stdout FAILED: --- log/46/check-expected 2025-07-18 09:40:54.228033901 +0000 +++ log/46/check-generated 2025-07-18 09:40:54.227577921 +0000 @@ -1,6 +0,0 @@ -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] == Contents of files in the log/46/ dir after test 564 === Start of file check-expected data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind564 ./libtest/libtests lib564 ftp://127.0.0.1:37853/path/564 127.0.0.1:38543 > log/46/stdout564 2> log/46/stderr564 === End of file commands.log === Start of file ftp_server.log 09:40:51.716404 ====> Client connect 09:40:51.718015 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:51.725077 < "USER anonymous" 09:40:51.729166 > "331 We are happy you popped in![CR][LF]" 09:40:51.734946 < "PASS ftp@example.com" 09:40:51.737907 > "230 Welcome you silly person[CR][LF]" 09:40:51.744037 < "PWD" 09:40:51.747032 > "257 "/" is current directory[CR][LF]" 09:40:51.748064 < "EPSV" 09:40:51.748419 ====> Passive DATA channel requested by client 09:40:51.748657 DATA sockfilt for passive data channel starting... 09:40:51.781513 DATA sockfilt for passive data channel started (pid 102217) 09:40:51.784691 DATA sockfilt for passive data channel listens on port 41967 09:40:51.787981 > "229 Entering Passive Mode (|||41967|)[LF]" 09:40:51.788292 Client has been notified that DATA conn will be accepted on port 41967 09:40:51.790966 Client connects to port 41967 09:40:51.791304 ====> Client established passive DATA connection on port 41967 09:40:51.794602 < "TYPE I" 09:40:51.795195 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:51.800320 < "SIZE verifiedserver" 09:40:51.800962 > "213 17[CR][LF]" 09:40:51.803847 < "RETR verifiedserver" 09:40:51.804326 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:51.806636 =====> Closing passive DATA connection... 09:40:51.806994 Server disconnects passive DATA connection 09:40:51.808941 Server disconnected passive DATA connection 09:40:51.809240 DATA sockfilt for passive data channel quits (pid 102217) 09:40:51.811370 DATA sockfilt for passive data channel quit (pid 102217) 09:40:51.811822 =====> Closed passive DATA connection 09:40:51.812253 > "226 File transfer complete[CR][LF]" 09:40:51.853643 < "QUIT" 09:40:51.858277 > "221 bye bye baby[CR][LF]" 09:40:51.859866 MAIN sockfilt said DISC 09:40:51.860217 ====> Client disconnected 09:40:51.860824 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:51.969367 ====> Client connect 09:40:51.975855 Received DATA (on stdin) 09:40:51.976040 > 160 bytes data, server => client 09:40:51.976163 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:51.976280 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:51.976383 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:51.977538 < 16 bytes data, client => server 09:40:51.977701 'USER anonymous\r\n' 09:40:51.979221 Received DATA (on stdin) 09:40:51.979381 > 33 bytes data, server => client 09:40:51.986606 '331 We are happy you popped in!\r\n' 09:40:51.987736 < 22 bytes data, client => server 09:40:51.987896 'PASS ftp@example.com\r\n' 09:40:51.989080 Received DATA (on stdin) 09:40:51.989224 > 30 bytes data, server => client 09:40:51.992104 '230 Welcome you silly person\r\n' 09:40:51.996638 < 5 bytes data, client => server 09:40:51.996812 'PWD\r\n' 09:40:51.998334 Received DATA (on stdin) 09:40:51.998585 > 30 bytes data, server => client 09:40:51.998796 '257 "/" is current directory\r\n' 09:40:51.999957 < 6 bytes data, client => server 09:40:52.000316 'EPSV\r\n' 09:40:52.038928 Received DATA (on stdin) 09:40:52.039089 > 38 bytes data, server => client 09:40:52.042649 '229 Entering Passive Mode (|||41967|)\n' 09:40:52.045555 < 8 bytes data, client => server 09:40:52.045710 'TYPE I\r\n' 09:40:52.049240 Received DATA (on stdin) 09:40:52.049384 > 33 bytes data, server => client 09:40:52.049592 '200 I modify TYPE as you wanted\r\n' 09:40:52.053003 < 21 bytes data, client => server 09:40:52.053184 'SIZE verifiedserver\r\n' 09:40:52.055567 Received DATA (on stdin) 09:40:52.055733 > 8 bytes data, server => client 09:40:52.055829 '213 17\r\n' 09:40:52.056567 < 21 bytes data, client => server 09:40:52.056721 'RETR verifiedserver\r\n' 09:40:52.058977 Received DATA (on stdin) 09:40:52.059181 > 29 bytes data, server => client 09:40:52.059261 '150 Binary junk (17 bytes).\r\n' 09:40:52.066298 Received DATA (on stdin) 09:40:52.066429 > 28 bytes data, server => client 09:40:52.066615 '226 File transfer complete\r\n' 09:40:52.105728 < 6 bytes data, client => server 09:40:52.105924 'QUIT\r\n' 09:40:52.108033 Received DATA (on stdin) 09:40:52.108186 > 18 bytes data, server => client 09:40:52.112361 '221 bye bye baby\r\n' 09:40:52.113114 ====> Client disconnect 09:40:52.115564 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:51.033427 Running IPv4 version 09:40:51.034168 Listening on port 41967 09:40:51.034694 Wrote pid 102217 to log/46/server/ftp_sockdata.pid 09:40:51.034879 Received PING (on stdin) 09:40:51.037581 Received PORT (on stdin) 09:40:51.043868 ====> Client connect 09:40:51.058401 Received DATA (on stdin) 09:40:51.058662 > 17 bytes data, server => client 09:40:51.061036 'WE ROOLZ: 78258\r\n' 09:40:51.061934 Received DISC (on stdin) 09:40:51.062106 ====> Client forcibly disconnected 09:40:51.063201 Received QUIT (on stdin) 09:40:51.063317 quits 09:40:51.063808 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 564 === End of file server.cmd === Start of file socks_server.log 09:40:51.216125 Running IPv4 version 09:40:51.219347 Listening on port 38543 09:40:51.220339 Wrote pid 102446 to log/46/server/socks_server.pid 09:40:51.223596 Wrote port 38543 to log/46/server/socks_server.port === End of file socks_server.log === Start of file valgrind564 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, cannot find sshd cannot find sshd cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind570 ./libtest/libtests lib570 rtsp://127.0.0.1:35761/570 > log/64/stdout570 2> log/64/stderr570 cannot find sshd cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind574 ./libtest/libtests lib574 ftp://127.0.0.1:42737/fully_simulated/UNIX/*.txt > log/51/stdout574 2> log/51/stderr574 cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind571 ./libtest/libtests lib571 rtsp://127.0.0.1:40815/571 log/63/protofile571.txt > log/63/stdout571 2> log/63/stderr571 openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind564 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/64/server/rtsp_server.pid" --portfile "log/64/server/rtsp_server.port" --logfile "log/64/rtsp_server.log" --logdir "log/64" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 102580 port 35761 * pid rtsp => 102580 102580 test 0570...[RTSP CSeq and Session Mismatch checks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind570 ./libtest/libtests lib570 rtsp://127.0.0.1:35761/570 > log/64/stdout570 2> log/64/stderr570 570: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 570 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind570 ./libtest/libtests lib570 rtsp://127.0.0.1:35761/570 > log/64/stdout570 2> log/64/stderr570 === End of file commands.log === Start of file rtsp_server.log 09:40:52.637620 Running IPv4 version on port 35761 09:40:52.638854 Wrote pid 102580 to log/64/server/rtsp_server.pid 09:40:52.639358 Wrote port 35761 to log/64/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 570 === End of file server.cmd === Start of file valgrind570 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind570 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind572 ./libtest/libtests lib572 rtsp://127.0.0.1:46535/572 log/59/file572.txt > log/59/stdout572 2> log/59/stderr572 cannot find sshd test 0574...[FTP wildcard download - changed fnmatch, 2x perform (Unix LIST response)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind574 ./libtest/libtests lib574 ftp://127.0.0.1:42737/fully_simulated/UNIX/*.txt > log/51/stdout574 2> log/51/stderr574 574: stdout FAILED: --- log/51/check-expected 2025-07-18 09:40:54.596601154 +0000 +++ log/51/check-generated 2025-07-18 09:40:54.595601155 +0000 @@ -1,10 +0,0 @@ -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] == Contents of files in the log/51/ dir after test 574 === Start of file check-expected This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind574 ./libtest/libtests lib574 ftp://127.0.0.1:42737/fully_simulated/UNIX/*.txt > log/51/stdout574 2> log/51/stderr574 === End of file commands.log === Start of file ftp_server.log 09:40:53.471861 ====> Client connect 09:40:53.473239 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:53.475635 < "USER anonymous" 09:40:53.476106 > "331 We are happy you popped in![CR][LF]" 09:40:53.477680 < "PASS ftp@example.com" 09:40:53.478154 > "230 Welcome you silly person[CR][LF]" 09:40:53.479572 < "PWD" 09:40:53.480031 > "257 "/" is current directory[CR][LF]" 09:40:53.481848 < "EPSV" 09:40:53.482152 ====> Passive DATA channel requested by client 09:40:53.482355 DATA sockfilt for passive data channel starting... 09:40:53.494310 DATA sockfilt for passive data channel started (pid 104226) 09:40:53.495262 DATA sockfilt for passive data channel listens on port 33367 09:40:53.495730 > "229 Entering Passive Mode (|||33367|)[LF]" 09:40:53.496009 Client has been notified that DATA conn will be accepted on port 33367 09:40:53.497348 Client connects to port 33367 09:40:53.497610 ====> Client established passive DATA connection on port 33367 09:40:53.498376 < "TYPE I" 09:40:53.498859 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:53.501009 < "SIZE verifiedserver" 09:40:53.502296 > "213 17[CR][LF]" 09:40:53.504457 < "RETR verifiedserver" 09:40:53.505386 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:53.507071 =====> Closing passive DATA connection... 09:40:53.507976 Server disconnects passive DATA connection 09:40:53.508358 Fancy that; client wants to DISC, too 09:40:53.508959 Server disconnected passive DATA connection 09:40:53.509231 DATA sockfilt for passive data channel quits (pid 104226) 09:40:53.511362 DATA sockfilt for passive data channel quit (pid 104226) 09:40:53.511631 =====> Closed passive DATA connection 09:40:53.512874 > "226 File transfer complete[CR][LF]" 09:40:53.548673 < "QUIT" 09:40:53.550235 > "221 bye bye baby[CR][LF]" 09:40:53.554135 MAIN sockfilt said DISC 09:40:53.555001 ====> Client disconnected 09:40:53.555497 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:53.724867 ====> Client connect 09:40:53.726938 Received DATA (on stdin) 09:40:53.727105 > 160 bytes data, server => client 09:40:53.727194 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:53.727280 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:53.727357 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:53.728138 < 16 bytes data, client => server 09:40:53.728280 'USER anonymous\r\n' 09:40:53.729838 Received DATA (on stdin) 09:40:53.730002 > 33 bytes data, server => client 09:40:53.730091 '331 We are happy you popped in!\r\n' 09:40:53.730888 < 22 bytes data, client => server 09:40:53.731032 'PASS ftp@example.com\r\n' 09:40:53.731878 Received DATA (on stdin) 09:40:53.732028 > 30 bytes data, server => client 09:40:53.732114 '230 Welcome you silly person\r\n' 09:40:53.732789 < 5 bytes data, client => server 09:40:53.732924 'PWD\r\n' 09:40:53.733767 Received DATA (on stdin) 09:40:53.733919 > 30 bytes data, server => client 09:40:53.734001 '257 "/" is current directory\r\n' 09:40:53.734725 < 6 bytes data, client => server 09:40:53.734861 'EPSV\r\n' 09:40:53.749409 Received DATA (on stdin) 09:40:53.749640 > 38 bytes data, server => client 09:40:53.749744 '229 Entering Passive Mode (|||33367|)\n' 09:40:53.751058 < 8 bytes data, client => server 09:40:53.751199 'TYPE I\r\n' 09:40:53.752549 Received DATA (on stdin) 09:40:53.752722 > 33 bytes data, server => client 09:40:53.752820 '200 I modify TYPE as you wanted\r\n' 09:40:53.753749 < 21 bytes data, client => server 09:40:53.753938 'SIZE verifiedserver\r\n' 09:40:53.755187 Received DATA (on stdin) 09:40:53.755345 > 8 bytes data, server => client 09:40:53.755590 '213 17\r\n' 09:40:53.756893 < 21 bytes data, client => server 09:40:53.757359 'RETR verifiedserver\r\n' 09:40:53.758694 Received DATA (on stdin) 09:40:53.758857 > 29 bytes data, server => client 09:40:53.759577 '150 Binary junk (17 bytes).\r\n' 09:40:53.765763 Received DATA (on stdin) 09:40:53.766160 > 28 bytes data, server => client 09:40:53.767288 '226 File transfer complete\r\n' 09:40:53.801512 < 6 bytes data, client => server 09:40:53.801704 'QUIT\r\n' 09:40:53.803084 Received DATA (on stdin) 09:40:53.803231 > 18 bytes data, server => client 09:40:53.803508 '221 bye bye baby\r\n' 09:40:53.807564 ====> Client disconnect 09:40:53.808140 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:53.746401 Running IPv4 version 09:40:53.747101 Listening on port 33367 09:40:53.747529 Wrote pid 104226 to log/51/server/ftp_sockdata.pid 09:40:53.747712 Received PING (on stdin) 09:40:53.748371 Received PORT (on stdin) 09:40:53.750796 ====> Client connect 09:40:53.759593 Received DATA (on stdin) 09:40:53.759727 > 17 bytes data, server => client 09:40:53.760340 'WE ROOLZ: 77543\r\n' 09:40:53.761290 ====> Client disconnect 09:40:53.762050 Received DISC (on stdin) 09:40:53.762234 Crikey! Client also wants to disconnect 09:40:53.762391 Received ACKD (on stdin) 09:40:53.763267 Received QUIT (on stdin) 09:40:53.763415 quits 09:40:53.763918 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 574 === End of file server.cmd === Start of file valgrind574 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) cannot find sshd cannot find sshd cannot find sshd cannot find sshd valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind574 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/59/server/rtsp_server.pid" --portfile "log/59/server/rtsp_server.port" --logfile "log/59/rtsp_server.log" --logdir "log/59" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 103627 port 46535 * pid rtsp => 103627 103627 test 0572...[RTSP GET_PARAMETER (Put/Heartbeat/Post)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind572 ./libtest/libtests lib572 rtsp://127.0.0.1:46535/572 log/59/file572.txt > log/59/stdout572 2> log/59/stderr572 572: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 572 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind572 ./libtest/libtests lib572 rtsp://127.0.0.1:46535/572 log/59/file572.txt > log/59/stdout572 2> log/59/stderr572 === End of file commands.log === Start of file file572.txt scale speed === End of file file572.txt === Start of file rtsp_server.log 09:40:52.047756 Running IPv4 version on port 46535 09:40:52.048865 Wrote pid 103627 to log/59/server/rtsp_server.pid 09:40:52.049338 Wrote port 46535 to log/59/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 572 === End of file server.cmd === Start of file valgrind572 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind572 cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind578 ./libtest/libtests lib578 http://127.0.0.1:38843/578 log/60/ip578 > log/60/stdout578 2> log/60/stderr578 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/63/server/rtsp_server.pid" --portfile "log/63/server/rtsp_server.port" --logfile "log/63/rtsp_server.log" --logdir "log/63" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 103047 port 40815 * pid rtsp => 103047 103047 test 0571...[RTSP RTP Interleaving Test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind571 ./libtest/libtests lib571 rtsp://127.0.0.1:40815/571 log/63/protofile571.txt > log/63/stdout571 2> log/63/stderr571 571: stdout FAILED: --- log/63/check-expected 2025-07-18 09:40:54.727656408 +0000 +++ log/63/check-generated 2025-07-18 09:40:54.726601088 +0000 @@ -1,20 +0,0 @@ -RTP: message size 10, channel 1[LF] -RTP: message size 500, channel 0[LF] -RTP: message size 196, channel 0[LF] -RTP: message size 124, channel 0[LF] -RTP: message size 824, channel 0[LF] -RTP: message size 12, channel 0[LF] -RTP: message size 10, channel 1[LF] -RTP: message size 50, channel 0[LF] -RTP: message size 798, channel 0[LF] -RTP: message size 42, channel 0[LF] -RTP: message size 30, channel 1[LF] -RTP: message size 2048, channel 0[LF] -RTP: message size 85, channel 0[LF] -RTP: message size 24, channel 1[LF] -RTP: message size 13, channel 0[LF] -RTP: message size 33, channel 0[LF] -RTP: message size 127, channel 0[LF] -RTP: message size 35, channel 1[LF] -RTP PAYLOAD END CORRUPTED (11), [$][LF] -RTP: message size 63, channel 0[LF] == Contents of files in the log/63/ dir after test 571 === Start of file check-expected RTP: message size 10, channel 1[LF] RTP: message size 500, channel 0[LF] RTP: message size 196, channel 0[LF] RTP: message size 124, channel 0[LF] RTP: message size 824, channel 0[LF] RTP: message size 12, channel 0[LF] RTP: message size 10, channel 1[LF] RTP: message size 50, channel 0[LF] RTP: message size 798, channel 0[LF] RTP: message size 42, channel 0[LF] RTP: message size 30, channel 1[LF] RTP: message size 2048, channel 0[LF] RTP: message size 85, channel 0[LF] RTP: message size 24, channel 1[LF] RTP: message size 13, channel 0[LF] RTP: message size 33, channel 0[LF] RTP: message size 127, channel 0[LF] RTP: message size 35, channel 1[LF] RTP PAYLOAD END CORRUPTED (11), [$][LF] RTP: message size 63, channel 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind571 ./libtest/libtests lib571 rtsp://127.0.0.1:40815/571 log/63/protofile571.txt > log/63/stdout571 2> log/63/stderr571 === End of file commands.log === Start of file rtsp_server.log 09:40:52.810245 Running IPv4 version on port 40815 09:40:52.811417 Wrote pid 103047 to log/63/server/rtsp_server.pid 09:40:52.811941 Wrote port 40815 to log/63/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd rtp: part 2 channel 1 size 10 rtp: part 2 channel 0 size 500 rtp: part 2 channel 0 size 196 rtp: part 2 channel 0 size 124 rtp: part 2 channel 0 size 824 rtp: part 2 channel 0 size 18 size_err -6 rtp: part 3 channel 1 size 10 rtp: part 3 channel 0 size 50 rtp: part 4 channel 0 size 798 rtp: part 4 channel 0 size 42 rtp: part 4 channel 1 size 30 rtp: part 4 channel 0 size 2048 rtp: part 4 channel 0 size 85 rtp: part 4 channel 1 size 24 rtp: part 4 channel 0 size 17 size_err -4 rtp: part 4 channel 0 size 33 rtp: part 4 channel 0 size 127 rtp: part 4 channel 1 size 24 size_err 11 rtp: part 4 channel 0 size 37 rtp: part 4 channel 0 size 63 Testnum 571 === End of file server.cmd === Start of file valgrind571 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind571 cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind581 ./libtest/libtests lib507 http://127.0.0.1:34639/581 > log/53/stdout581 2> log/53/stderr581 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind589 ./libtest/libtests lib589 http://127.0.0.1:43913/589 > log/30/stdout589 2> log/30/stderr589 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind579 ./libtest/libtests lib579 http://127.0.0.1:46727/579 log/58/ip579 > log/58/stdout579 2> log/58/stderr579 cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind584 ./libtest/libtests lib589 http://127.0.0.1:42899/584 > log/39/stdout584 2> log/39/stderr584 cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind575 ./libtest/libtests lib575 ftp://127.0.0.1:38963/fully_simulated/UNIX/* > log/62/stdout575 2> log/62/stderr575 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind585 ./libtest/libtests lib500 http://127.0.0.1:43179/585 > log/35/stdout585 2> log/35/stderr585 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind580 ./libtest/libtests lib507 http://127.0.0.1:35945/580 > log/57/stdout580 2> log/57/stderr580 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind587 ./libtest/libtests lib554 http://127.0.0.1:36559/587 > log/33/stdout587 2> log/33/stderr587 test 0578...[HTTP POST lower than MAX_INITIAL_POST_SIZE with progress callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind578 ./libtest/libtests lib578 http://127.0.0.1:38843/578 log/60/ip578 > log/60/stdout578 2> log/60/stderr578 578: data FAILED: --- log/60/check-expected 2025-07-18 09:40:54.981600959 +0000 +++ log/60/check-generated 2025-07-18 09:40:54.980600960 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] --foo-[LF] == Contents of files in the log/60/ dir after test 578 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind578 ./libtest/libtests lib578 http://127.0.0.1:38843/578 log/60/ip578 > log/60/stdout578 2> log/60/stderr578 === End of file commands.log === Start of file http_server.log 09:40:54.232950 ====> Client connect 09:40:54.233363 accept_connection 3 returned 4 09:40:54.233933 accept_connection 3 returned 0 09:40:54.234087 Read 93 bytes 09:40:54.234207 Process 93 bytes request 09:40:54.234345 Got request: GET /verifiedserver HTTP/1.1 09:40:54.234535 Are-we-friendly question received 09:40:54.234807 Wrote request (93 bytes) input to log/60/server.input 09:40:54.234997 Identifying ourselves as friends 09:40:54.236773 Response sent (56 bytes) and written to log/60/server.response 09:40:54.236892 special request received, no persistency 09:40:54.236960 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 578 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind578 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind578 test 0589...[make an HTTP MIME POST set to NULL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind589 ./libtest/libtests lib589 http://127.0.0.1:43913/589 > log/30/stdout589 2> log/30/stderr589 589: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 589 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind589 ./libtest/libtests lib589 http://127.0.0.1:43913/589 > log/30/stdout589 2> log/30/stderr589 === End of file commands.log === Start of file http_server.log 09:40:54.479842 ====> Client connect 09:40:54.480126 accept_connection 3 returned 4 09:40:54.480281 accept_connection 3 returned 0 09:40:54.480406 Read 93 bytes 09:40:54.480656 Process 93 bytes request 09:40:54.480759 Got request: GET /verifiedserver HTTP/1.1 09:40:54.480826 Are-we-friendly question received 09:40:54.481041 Wrote request (93 bytes) input to log/30/server.input 09:40:54.481220 Identifying ourselves as friends 09:40:54.481879 Response sent (56 bytes) and written to log/30/server.response 09:40:54.481975 special request received, no persistency 09:40:54.482035 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 589 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind589 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind589 test 0585...[socketCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind592 ./libtest/libtests lib591 ftp://127.0.0.1:34087/path/592 8 log/13/upload592 > log/13/stdout592 2> log/13/stderr592 cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind593 ./libtest/libtests lib591 ftp://127.0.0.1:32859/path/593 8 log/10/upload593 > log/10/stdout593 2> log/10/stderr593 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind576 ./libtest/libtests lib576 ftp://127.0.0.1:39979/fully_simulated/UNIX/* > log/4/stdout576 2> log/4/stderr576 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind590 ./libtest/libtests lib590 http://test.remote.example.com/path/590 http://127.0.0.1:41285 > log/18/stdout590 2> log/18/stderr590 open/close callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind585 ./libtest/libtests lib500 http://127.0.0.1:43179/585 > log/35/stdout585 2> log/35/stderr585 585: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 585 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind585 ./libtest/libtests lib500 http://127.0.0.1:43179/585 > log/35/stdout585 2> log/35/stderr585 === End of file commands.log === Start of file http_server.log 09:40:54.411411 ====> Client connect 09:40:54.411908 accept_connection 3 returned 4 09:40:54.412103 accept_connection 3 returned 0 09:40:54.412253 Read 93 bytes 09:40:54.412372 Process 93 bytes request 09:40:54.412554 Got request: GET /verifiedserver HTTP/1.1 09:40:54.412668 Are-we-friendly question received 09:40:54.412964 Wrote request (93 bytes) input to log/35/server.input 09:40:54.413184 Identifying ourselves as friends 09:40:54.414097 Response sent (56 bytes) and written to log/35/server.response 09:40:54.414215 special request received, no persistency 09:40:54.414297 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 585 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind585 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind585 test 0584...[CURLOPT_MIMEPOST first set then set to NULL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind584 ./libtest/libtests lib589 http://127.0.0.1:42899/584 > log/39/stdout584 2> log/39/stderr584 584: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 584 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind584 ./libtest/libtests lib589 http://127.0.0.1:42899/584 > log/39/stdout584 2> log/39/stderr584 === End of file commands.log === Start of file http_server.log 09:40:54.432895 ====> Client connect 09:40:54.433240 accept_connection 3 returned 4 09:40:54.433417 accept_connection 3 returned 0 09:40:54.433717 Read 93 bytes 09:40:54.433851 Process 93 bytes request 09:40:54.433970 Got request: GET /verifiedserver HTTP/1.1 09:40:54.434072 Are-we-friendly question received 09:40:54.434379 Wrote request (93 bytes) input to log/39/server.input 09:40:54.434686 Identifying ourselves as friends 09:40:54.435417 Response sent (56 bytes) and written to log/39/server.response 09:40:54.435645 special request received, no persistency 09:40:54.435733 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 584 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind584 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind584 test 0581...[multi interface, multiple Content-Type: headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind581 ./libtest/libtests lib507 http://127.0.0.1:34639/581 > log/53/stdout581 2> log/53/stderr581 581: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 581 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind581 ./libtest/libtests lib507 http://127.0.0.1:34639/581 > log/53/stdout581 2> log/53/stderr581 === End of file commands.log ==cannot find sshd = Start of file http_server.log 09:40:54.330855 ====> Client connect 09:40:54.331198 accept_connection 3 returned 4 09:40:54.331379 accept_connection 3 returned 0 09:40:54.332543 Read 93 bytes 09:40:54.332702 Process 93 bytes request 09:40:54.332793 Got request: GET /verifiedserver HTTP/1.1 09:40:54.332878 Are-we-friendly question received 09:40:54.333137 Wrote request (93 bytes) input to log/53/server.input 09:40:54.333349 Identifying ourselves as friends 09:40:54.334033 Response sent (56 bytes) and written to log/53/server.response 09:40:54.334141 special request received, no persistency 09:40:54.334214 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 581 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind581 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind581 test 0580...[multi interface, multiple Location: headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind580 ./libtest/libtests lib507 http://127.0.0.1:35945/580 > log/57/stdout580 2> log/57/stderr580 580: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 580 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind580 ./libtest/libtests lib507 http://127.0.0.1:35945/580 > log/57/stdout580 2> log/57/stderr580 === End of file commands.log === Start of file http_server.log 09:40:54.303156 ====> Client connect 09:40:54.303725 accept_connection 3 returned 4 09:40:54.303976 accept_connection 3 returned 0 09:40:54.305038 Read 93 bytes 09:40:54.305199 Process 93 bytes request 09:40:54.305316 Got request: GET /verifiedserver HTTP/1.1 09:40:54.305418 Are-we-friendly question received 09:40:54.305825 Wrote request (93 bytes) input to log/57/server.input 09:40:54.306053 Identifying ourselves as friends 09:40:54.310865 Response sent (56 bytes) and written to log/57/server.response 09:40:54.310994 special request received, no persistency 09:40:54.311073 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 580 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind580 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind580 cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind597 ./libtest/libtests lib597 ftp://127.0.0.1:33177 > log/43/stdout597 2> log/43/stderr597 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind588 ./libtest/libtests lib525 ftp://127.0.0.1:40969/path/588 log/31/upload588 > log/31/stdout588 2> log/31/stderr588 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind598 ./libtest/libtests lib598 http://127.0.0.1:35697/598 > log/19/stdout598 2> log/19/stderr598 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind599 ./libtest/libtests lib599 http://127.0.0.1:44255/599 log/36/ip599 > log/36/stdout599 2> log/36/stderr599 test 0579...[small chunked HTTP POSTs with digest auth. and progress callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind579 ./libtest/libtests lib579 http://127.0.0.1:46727/579 log/58/ip579 > log/58/stdout579 2> log/58/stderr579 579: data FAILED: --- log/58/check-expected 2025-07-18 09:40:55.263697496 +0000 +++ log/58/check-generated 2025-07-18 09:40:55.262600817 +0000 @@ -1,17 +0,0 @@ -HTTP/1.1 100 Continue[CR][LF] -Server: Microsoft-IIS/5.0[CR][LF] -Date: Sun, 03 Apr 2005 14:57:45 GMT[CR][LF] -X-Powered-By: ASP.NET[CR][LF] -[CR][LF] -HTTP/1.1 401 authentication please swsbounce[CR][LF] -Server: Microsoft-IIS/6.0[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 0[CR][LF] -[CR][LF] -HTTP/1.1 200 A OK[CR][LF] -Server: Microsoft-IIS/6.0[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 3[CR][LF] -[CR][LF] -ok[LF] == Contents of files in the log/58/ dir after test 579 === Start of file check-expected HTTP/1.1 100 Continue[CR][LF] Server: Microsoft-IIS/5.0[CR][LF] Date: Sun, 03 Apr 2005 14:57:45 GMT[CR][LF] X-Powered-By: ASP.NET[CR][LF] [CR][LF] HTTP/1.1 401 authentication please swsbounce[CR][LF] Server: Microsoft-IIS/6.0[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 0[CR][LF] [CR][LF] HTTP/1.1 200 A OK[CR][LF] Server: Microsoft-IIS/6.0[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 3[CR][LF] [CR][LF] ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind579 ./libtest/libtests lib579 http://127.0.0.1:46727/579 log/58/ip579 > log/58/stdout579 2> log/58/stderr579 === End of file commands.log === Start of file http_server.log 09:40:54.292386 ====> Client connect 09:40:54.292850 accept_connection 3 returned 4 09:40:54.293022 accept_connection 3 returned 0 09:40:54.293173 Read 93 bytes 09:40:54.293273 Process 93 bytes request 09:40:54.293366 Got request: GET /verifiedserver HTTP/1.1 09:40:54.296276 Are-we-friendly question received 09:40:54.296677 Wrote request (93 bytes) input to log/58/server.input 09:40:54.296897 Identifying ourselves as friends 09:40:54.298032 Response sent (56 bytes) and written to log/58/server.response 09:40:54.298154 special request received, no persistency 09:40:54.298230 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 579 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind579 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind579 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind586 ./libtest/libtests lib500 ftp://127.0.0.1:36539/586 > log/56/stdout586 2> log/56/stderr586 test 0575...[FTP wildcard download - dup_handle and multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind575 ./libtest/libtests lib575 ftp://127.0.0.1:38963/fully_simulated/UNIX/* > log/62/stdout575 2> log/62/stderr575 575: stdout FAILED: --- log/62/check-expected 2025-07-18 09:40:55.333416381 +0000 +++ log/62/check-generated 2025-07-18 09:40:55.331600782 +0000 @@ -1,15 +0,0 @@ -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] == Contents of files in the log/62/ dir after test 575 === Start of file check-expected This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind575 ./libtest/libtests lib575 ftp://127.0.0.1:38963/fully_simulated/UNIX/* > log/62/stdout575 2> log/62/stderr575 === End of file commands.log === Start of file ftp_server.log 09:40:53.955895 ====> Client connect 09:40:53.960736 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:53.963835 < "USER anonymous" 09:40:53.964252 > "331 We are happy you popped in![CR][LF]" 09:40:53.974578 < "PASS ftp@example.com" 09:40:53.977957 > "230 Welcome you silly person[CR][LF]" 09:40:53.980170 < "PWD" 09:40:53.980638 > "257 "/" is current directory[CR][LF]" 09:40:53.984051 < "EPSV" 09:40:53.984362 ====> Passive DATA channel requested by client 09:40:53.984572 DATA sockfilt for passive data channel starting... 09:40:53.997214 DATA sockfilt for passive data channel started (pid 104620) 09:40:53.998145 DATA sockfilt for passive data channel listens on port 39301 09:40:53.998571 > "229 Entering Passive Mode (|||39301|)[LF]" 09:40:53.998902 Client has been notified that DATA conn will be accepted on port 39301 09:40:54.001337 Client connects to port 39301 09:40:54.001654 ====> Client established passive DATA connection on port 39301 09:40:54.002550 < "TYPE I" 09:40:54.003073 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.005247 < "SIZE verifiedserver" 09:40:54.006626 > "213 17[CR][LF]" 09:40:54.007841 < "RETR verifiedserver" 09:40:54.008821 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.010478 =====> Closing passive DATA connection... 09:40:54.010686 Server disconnects passive DATA connection 09:40:54.012636 Fancy that; client wants to DISC, too 09:40:54.013405 Server disconnected passive DATA connection 09:40:54.013609 DATA sockfilt for passive data channel quits (pid 104620) 09:40:54.015496 DATA sockfilt for passive data channel quit (pid 104620) 09:40:54.015737 =====> Closed passive DATA connection 09:40:54.018913 > "226 File transfer complete[CR][LF]" 09:40:54.052859 < "QUIT" 09:40:54.053955 > "221 bye bye baby[CR][LF]" 09:40:54.059883 MAIN sockfilt said DISC 09:40:54.060210 ====> Client disconnected 09:40:54.060663 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.207843 ====> Client connect 09:40:54.214929 Received DATA (on stdin) 09:40:54.215060 > 160 bytes data, server => client 09:40:54.215173 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.215262 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.215348 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.216304 < 16 bytes data, client => server 09:40:54.216530 'USER anonymous\r\n' 09:40:54.218309 Received DATA (on stdin) 09:40:54.218434 > 33 bytes data, server => client 09:40:54.218617 '331 We are happy you popped in!\r\n' 09:40:54.227405 < 22 bytes data, client => server 09:40:54.227636 'PASS ftp@example.com\r\n' 09:40:54.228770 Received DATA (on stdin) 09:40:54.229028 > 30 bytes data, server => client 09:40:54.232028 '230 Welcome you silly person\r\n' 09:40:54.233026 < 5 bytes data, client => server 09:40:54.233163 'PWD\r\n' 09:40:54.234756 Received DATA (on stdin) 09:40:54.234890 > 30 bytes data, server => client 09:40:54.234985 '257 "/" is current directory\r\n' 09:40:54.235715 < 6 bytes data, client => server 09:40:54.235865 'EPSV\r\n' 09:40:54.252956 Received DATA (on stdin) 09:40:54.253105 > 38 bytes data, server => client 09:40:54.253194 '229 Entering Passive Mode (|||39301|)\n' 09:40:54.254706 < 8 bytes data, client => server 09:40:54.254829 'TYPE I\r\n' 09:40:54.257118 Received DATA (on stdin) 09:40:54.257263 > 33 bytes data, server => client 09:40:54.257359 '200 I modify TYPE as you wanted\r\n' 09:40:54.258126 < 21 bytes data, client => server 09:40:54.258278 'SIZE verifiedserver\r\n' 09:40:54.259389 Received DATA (on stdin) 09:40:54.259614 > 8 bytes data, server => client 09:40:54.259819 '213 17\r\n' 09:40:54.260798 < 21 bytes data, client => server 09:40:54.260927 'RETR verifiedserver\r\n' 09:40:54.262055 Received DATA (on stdin) 09:40:54.262248 > 29 bytes data, server => client 09:40:54.263158 '150 Binary junk (17 bytes).\r\n' 09:40:54.269851 Received DATA (on stdin) 09:40:54.269980 > 28 bytes data, server => client 09:40:54.271425 '226 File transfer complete\r\n' 09:40:54.305837 < 6 bytes data, client => server 09:40:54.306014 'QUIT\r\n' 09:40:54.306955 Received DATA (on stdin) 09:40:54.307069 > 18 bytes data, server => client 09:40:54.307231 '221 bye bye baby\r\n' 09:40:54.308569 ====> Client disconnect 09:40:54.314736 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:53.249546 Running IPv4 version 09:40:53.250008 Listening on port 39301 09:40:53.250390 Wrote pid 104620 to log/62/server/ftp_sockdata.pid 09:40:53.250650 Received PING (on stdin) 09:40:53.251292 Received PORT (on stdin) 09:40:53.254353 ====> Client connect 09:40:53.262906 Received DATA (on stdin) 09:40:53.263044 > 17 bytes data, server => client 09:40:53.264612 'WE ROOLZ: 78462\r\n' 09:40:53.265423 ====> Client disconnect 09:40:53.266073 Received DISC (on stdin) 09:40:53.266188 Crikey! Client also wants to disconnect 09:40:53.266671 Received ACKD (on stdin) 09:40:53.267636 Received QUIT (on stdin) 09:40:53.267766 quits 09:40:53.268222 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 575 === End of file server.cmd === Start of file valgrind575 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind595 ./libtest/libtests lib500 ftp://127.0.0.1:36293/595 log/9/ip595 > log/9/stdout595 2> log/9/stderr595 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind577 ./libtest/libtests lib567 rtsp://127.0.0.1:41295/577 > log/61/stdout577 2> log/61/stderr577 was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind575 test 0576...[FTP wildcard - skip/parser_correctness/CURLOPT_FNMATCH_FUNCTION (Unix)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind576 ./libtest/libtests lib576 ftp://127.0.0.1:39979/fully_simulated/UNIX/* > log/4/stdout576 2> log/4/stderr576 576: stdout FAILED: --- log/4/check-expected 2025-07-18 09:40:55.411724181 +0000 +++ log/4/check-generated 2025-07-18 09:40:55.409600742 +0000 @@ -1,152 +0,0 @@ -=============================================================[LF] -Remains: 14[LF] -Filename: .[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 20480B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 5:12[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 13[LF] -Filename: ..[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 20480B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 23 3:12[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 12[LF] -Filename: chmod1[LF] -Permissions: r--r--r-- (parsed => 444)[LF] -Size: 38B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 11 10:00[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 444[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 11[LF] -Filename: chmod2[LF] -Permissions: rw-rw-rw- (parsed => 666)[LF] -Size: 38B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Feb 1 8:00[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 666[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 10[LF] -Filename: chmod3[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 38B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Feb 1 8:00[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 777[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 9[LF] -Filename: chmod4[LF] -Permissions: --S--S--t (parsed => 7001)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: May 4 4:31[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 8[LF] -Filename: chmod5[LF] -Permissions: --s--s--T (parsed => 7110)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: May 4 4:31[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 7[LF] -Filename: empty_file.dat[LF] -Permissions: rw-r--r-- (parsed => 644)[LF] -Size: 0B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 11:01[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 6[LF] -Filename: file.txt[LF] -Permissions: rw-r--r-- (parsed => 644)[LF] -Size: 35B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 11:01[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This is content of file "file.txt"[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 5[LF] -Filename: link[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 0B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 6 4:42[LF] -Filetype: symlink[LF] -Target: file.txt[LF] -=============================================================[LF] -Remains: 4[LF] -Filename: link_absolute[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 0B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 6 4:45[LF] -Filetype: symlink[LF] -Target: /data/ftp/file.txt[LF] -=============================================================[LF] -Remains: 3[LF] -Filename: .NeXT[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 23 2:05[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 2[LF] -Filename: someothertext.txt[LF] -Permissions: rw-r--r-- (parsed => 644)[LF] -Size: 47B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 11:01[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -# THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 1[LF] -Filename: weirddir.txt[LF] -Permissions: rwxr-xrwx (parsed => 757)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 23 3:12[LF] -Filetype: directory[LF] -=============================================================[LF] == Contents of files in the log/4/ dir after test 576 === Start of file check-expected =============================================================[LF] Remains: 14[LF] Filename: .[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 20480B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 5:12[LF] Filetype: directory[LF] =============================================================[LF] Remains: 13[LF] Filename: ..[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 20480B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 23 3:12[LF] Filetype: directory[LF] =============================================================[LF] Remains: 12[LF] Filename: chmod1[LF] Permissions: r--r--r-- (parsed => 444)[LF] Size: 38B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 11 10:00[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 444[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 11[LF] Filename: chmod2[LF] Permissions: rw-rw-rw- (parsed => 666)[LF] Size: 38B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Feb 1 8:00[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 666[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 10[LF] Filename: chmod3[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 38B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Feb 1 8:00[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 777[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 9[LF] Filename: chmod4[LF] Permissions: --S--S--t (parsed => 7001)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: May 4 4:31[LF] Filetype: directory[LF] =============================================================[LF] Remains: 8[LF] Filename: chmod5[LF] Permissions: --s--s--T (parsed => 7110)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: May 4 4:31[LF] Filetype: directory[LF] =============================================================[LF] Remains: 7[LF] Filename: empty_file.dat[LF] Permissions: rw-r--r-- (parsed => 644)[LF] Size: 0B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 11:01[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 6[LF] Filename: file.txt[LF] Permissions: rw-r--r-- (parsed => 644)[LF] Size: 35B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 11:01[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This is content of file "file.txt"[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 5[LF] Filename: link[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 0B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 6 4:42[LF] Filetype: symlink[LF] Target: file.txt[LF] =============================================================[LF] Remains: 4[LF] Filename: link_absolute[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 0B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 6 4:45[LF] Filetype: symlink[LF] Target: /data/ftp/file.txt[LF] =============================================================[LF] Remains: 3[LF] Filename: .NeXT[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 23 2:05[LF] Filetype: directory[LF] =============================================================[LF] Remains: 2[LF] Filename: someothertext.txt[LF] Permissions: rw-r--r-- (parsed => 644)[LF] Size: 47B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 11:01[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] # THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 1[LF] Filename: weirddir.txt[LF] Permissions: rwxr-xrwx (parsed => 757)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 23 3:12[LF] Filetype: directory[LF] =============================================================[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind576 ./libtest/libtests lib576 ftp://127.0.0.1:39979/fully_simulated/UNIX/* > log/4/stdout576 2> log/4/stderr576 === End of file commands.log === Start of file ftp_server.log 09:40:53.993888 ====> Client connect 09:40:53.998399 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.002646 < "USER anonymous" 09:40:54.003146 > "331 We are happy you popped in![CR][LF]" 09:40:54.006627 < "PASS ftp@example.com" 09:40:54.007107 > "230 Welcome you silly person[CR][LF]" 09:40:54.010548 < "PWD" 09:40:54.010987 > "257 "/" is current directory[CR][LF]" 09:40:54.013045 < "EPSV" 09:40:54.013334 ====> Passive DATA channel requested by client 09:40:54.013547 DATA sockfilt for passive data channel starting... 09:40:54.033351 DATA sockfilt for passive data channel started (pid 104661) 09:40:54.034822 DATA sockfilt for passive data channel listens on port 44751 09:40:54.035464 > "229 Entering Passive Mode (|||44751|)[LF]" 09:40:54.035978 Client has been notified that DATA conn will be accepted on port 44751 09:40:54.038381 Client connects to port 44751 09:40:54.038734 ====> Client established passive DATA connection on port 44751 09:40:54.041925 < "TYPE I" 09:40:54.042426 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.045083 < "SIZE verifiedserver" 09:40:54.046725 > "213 17[CR][LF]" 09:40:54.048087 < "RETR verifiedserver" 09:40:54.049124 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.051399 =====> Closing passive DATA connection... 09:40:54.051666 Server disconnects passive DATA connection 09:40:54.052174 Fancy that; client wants to DISC, too 09:40:54.052528 Server disconnected passive DATA connection 09:40:54.052872 DATA sockfilt for passive data channel quits (pid 104661) 09:40:54.054956 DATA sockfilt for passive data channel quit (pid 104661) 09:40:54.055196 =====> Closed passive DATA connection 09:40:54.055990 > "226 File transfer complete[CR][LF]" 09:40:54.094183 < "QUIT" 09:40:54.094888 > "221 bye bye baby[CR][LF]" 09:40:54.097400 MAIN sockfilt said DISC 09:40:54.098601 ====> Client disconnected 09:40:54.099229 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.247001 ====> Client connect 09:40:54.252616 Received DATA (on stdin) 09:40:54.252795 > 160 bytes data, server => client 09:40:54.252902 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.253007 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.253101 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.255196 < 16 bytes data, client => server 09:40:54.255349 'USER anonymous\r\n' 09:40:54.258610 Received DATA (on stdin) 09:40:54.258762 > 33 bytes data, server => client 09:40:54.258846 '331 We are happy you popped in!\r\n' 09:40:54.259568 < 22 bytes data, client => server 09:40:54.259712 'PASS ftp@example.com\r\n' 09:40:54.262540 Received DATA (on stdin) 09:40:54.262704 > 30 bytes data, server => client 09:40:54.262790 '230 Welcome you silly person\r\n' 09:40:54.263426 < 5 bytes data, client => server 09:40:54.263647 'PWD\r\n' 09:40:54.265086 Received DATA (on stdin) 09:40:54.265220 > 30 bytes data, server => client 09:40:54.265308 '257 "/" is current directory\r\n' 09:40:54.265998 < 6 bytes data, client => server 09:40:54.266129 'EPSV\r\n' 09:40:54.289209 Received DATA (on stdin) 09:40:54.289426 > 38 bytes data, server => client 09:40:54.289633 '229 Entering Passive Mode (|||44751|)\n' 09:40:54.291148 < 8 bytes data, client => server 09:40:54.291334 'TYPE I\r\n' 09:40:54.296546 Received DATA (on stdin) 09:40:54.296714 > 33 bytes data, server => client 09:40:54.296810 '200 I modify TYPE as you wanted\r\n' 09:40:54.297748 < 21 bytes data, client => server 09:40:54.297933 'SIZE verifiedserver\r\n' 09:40:54.299279 Received DATA (on stdin) 09:40:54.299437 > 8 bytes data, server => client 09:40:54.299717 '213 17\r\n' 09:40:54.300937 < 21 bytes data, client => server 09:40:54.301079 'RETR verifiedserver\r\n' 09:40:54.302316 Received DATA (on stdin) 09:40:54.302546 > 29 bytes data, server => client 09:40:54.303573 '150 Binary junk (17 bytes).\r\n' 09:40:54.309219 Received DATA (on stdin) 09:40:54.309374 > 28 bytes data, server => cCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind596 ./libtest/libtests lib500 ftp://127.0.0.1:41719/596 log/45/ip596 activeftp > log/45/stdout596 2> log/45/stderr596 lient 09:40:54.310004 '226 File transfer complete\r\n' 09:40:54.346753 < 6 bytes data, client => server 09:40:54.346918 'QUIT\r\n' 09:40:54.349303 Received DATA (on stdin) 09:40:54.349658 > 18 bytes data, server => client 09:40:54.349762 '221 bye bye baby\r\n' 09:40:54.350714 ====> Client disconnect 09:40:54.351703 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.283169 Running IPv4 version 09:40:54.284068 Listening on port 44751 09:40:54.286249 Wrote pid 104661 to log/4/server/ftp_sockdata.pid 09:40:54.286554 Received PING (on stdin) 09:40:54.287735 Received PORT (on stdin) 09:40:54.291594 ====> Client connect 09:40:54.303346 Received DATA (on stdin) 09:40:54.303702 > 17 bytes data, server => client 09:40:54.303842 'WE ROOLZ: 77399\r\n' 09:40:54.304684 ====> Client disconnect 09:40:54.305910 Received DISC (on stdin) 09:40:54.306034 Crikey! Client also wants to disconnect 09:40:54.306217 Received ACKD (on stdin) 09:40:54.306932 Received QUIT (on stdin) 09:40:54.307066 quits 09:40:54.307528 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 576 === End of file server.cmd === Start of file valgrind576 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind576 test 0595...[verify close callbacks with passive FTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind595 ./libtest/libtests lib500 ftp://127.0.0.1:36293/595 log/9/ip595 > log/9/stdout595 2> log/9/stderr595 595: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 595 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind595 ./libtest/libtests lib500 ftp://127.0.0.1:36293/595 log/9/ip595 > log/9/stdout595 2> log/9/stderr595 === End of file commands.log === Start of file ftp_server.log 09:40:54.362291 ====> Client connect 09:40:54.365034 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.367156 < "USER anonymous" 09:40:54.368184 > "331 We are happy you popped in![CR][LF]" 09:40:54.370217 < "PASS ftp@example.com" 09:40:54.371575 > "230 Welcome you silly person[CR][LF]" 09:40:54.373056 < "PWD" 09:40:54.373572 > "257 "/" is current directory[CR][LF]" 09:40:54.375940 < "EPSV" 09:40:54.376261 ====> Passive DATA channel requested by client 09:40:54.376459 DATA sockfilt for passive data channel starting... 09:40:54.393332 DATA sockfilt for passive data channel started (pid 104951) 09:40:54.394415 DATA sockfilt for passive data channel listens on port 41443 09:40:54.395048 > "229 Entering Passive Mode (|||41443|)[LF]" 09:40:54.395309 Client has been notified that DATA conn will be accepted on port 41443 09:40:54.398191 Client connects to port 41443 09:40:54.398505 ====> Client established passive DATA connection on port 41443 09:40:54.399363 < "TYPE I" 09:40:54.399724 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.401224 < "SIZE verifiedserver" 09:40:54.401624 > "213 17[CR][LF]" 09:40:54.405851 < "RETR verifiedserver" 09:40:54.407087 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.407715 =====> Closing passive DATA connection... 09:40:54.408021 Server disconnects passive DATA connection 09:40:54.409966 Server disconnected passive DATA connection 09:40:54.410273 DATA sockfilt for passive data channel quits (pid 104951) 09:40:54.412549 DATA sockfilt for passive data channel quit (pid 104951) 09:40:54.412879 =====> Closed passive DATA connection 09:40:54.413627 > "226 File transfer complete[CR][LF]" 09:40:54.451100 < "QUIT" 09:40:54.451438 > "221 bye bye baby[CR][LF]" 09:40:54.459887 MAIN sockfilt said DISC 09:40:54.460266 ====> Client disconnected 09:40:54.460877 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:53.615301 ====> Client connect 09:40:53.617501 Received DATA (on stdin) 09:40:53.617673 > 160 bytes data, server => client 09:40:53.617873 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:53.618014 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:53.618097 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:53.619184 < 16 bytes data, client => server 09:40:53.619307 'USER anonymous\r\n' 09:40:53.621535 Received DATA (on stdin) 09:40:53.621689 > 33 bytes data, server => client 09:40:53.622178 '331 We are happy you popped in!\r\n' 09:40:53.623051 < 22 bytes data, client => server 09:40:53.623206 'PASS ftp@example.com\r\n' 09:40:53.624541 Received DATA (on stdin) 09:40:53.624698 > 30 bytes data, server => client 09:40:53.624875 '230 Welcome you silly person\r\n' 09:40:53.625613 < 5 bytes data, client => server 09:40:53.625837 'PWD\r\n' 09:40:53.627706 Received DATA (on stdin) 09:40:53.627882 > 30 bytes data, server => client 09:40:53.628012 '257 "/" is current directory\r\n' 09:40:53.628814 < 6 bytes data, client => server 09:40:53.628964 'EPSV\r\n' 09:40:53.649557 Received DATA (on stdin) 09:40:53.649719 > 38 bytes data, server => client 09:40:53.649816 '229 Entering Passive Mode (|||41443|)\n' 09:40:53.651829 < 8 bytes data, client => server 09:40:53.651969 'TYPE I\r\n' 09:40:53.653420 Received DATA (on stdin) 09:40:53.653652 > 33 bytes data, server => client 09:40:53.653745 '200 I modify TYPE as you wanted\r\n' 09:40:53.654331 < 21 bytes data, client => server 09:40:53.654558 'SIZE verifiedserver\r\n' 09:40:53.655321 Received DATA (on stdin) 09:40:53.655550 > 8 bytes data, server => client 09:40:53.655659 '213 17\r\n' 09:40:53.658912 < 21 bytes data, client => server 09:40:53.659055 'RETR verifiedserver\r\n' 09:40:53.659987 Received DATA (on stdin) 09:40:53.660168 > 29 bytes data, server => client 09:40:53.660351 '150 Binary junk (17 bytes).\r\n' 09:40:53.666942 Received DATA (on stdin) 09:40:53.667084 > 28 bytes data, server => client 09:40:53.667755 '226 File transfer complete\r\n' 09:40:53.703882 < 6 bytes data, client => server 09:40:53.704043 'QUIT\r\n' 09:40:53.706783 Received DATA (on stdin) 09:40:53.706932 > 18 bytes data, server => client 09:40:53.707007 '221 bye bye baby\r\n' 09:40:53.712213 ====> Client disconnect 09:40:53.714925 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.645232 Running IPv4 version 09:40:54.645930 Listening on port 41443 09:40:54.646359 Wrote pid 104951 to log/9/server/ftp_sockdata.pid 09:40:54.646671 Received PING (on stdin) 09:40:54.647528 Received PORT (on stdin) 09:40:54.651128 ====> Client connect 09:40:54.662168 Received DATA (on stdin) 09:40:54.662388 > 17 bytes data, server => client 09:40:54.662555 'WE ROOLZ: 77386\r\n' 09:40:54.662953 Received DISC (on stdin) 09:40:54.663128 ====> Client forcibly disconnected 09:40:54.664243 Received QUIT (on stdin) 09:40:54.664370 quits 09:40:54.664928 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 595 === End of file server.cmd === Start of file valgrind595 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind595 test 0593...[FTP multi PORT upload, no data conn and no transient neg. reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind593 ./libtest/libtests lib591 ftp://127.0.0.1:32859/path/593 8 log/10/upload593 > log/10/stdout593 2> log/10/stderr593 593: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 593 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind593 ./libtest/libtests lib591 ftp://127.0.0.1:32859/path/593 8 log/10/upload593 > log/10/stdout593 2> log/10/stderr593 === End of file commands.log === Start of file ftp_server.log 09:40:54.328006 ====> Client connect 09:40:54.330985 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.333812 < "USER anonymous" 09:40:54.334262 > "331 We are happy you popped in![CR][LF]" 09:40:54.336627 < "PASS ftp@example.com" 09:40:54.337430 > "230 Welcome you silly person[CR][LF]" 09:40:54.339283 < "PWD" 09:40:54.339639 > "257 "/" is current directory[CR][LF]" 09:40:54.341658 < "EPSV" 09:40:54.342024 ====> Passive DATA channel requested by client 09:40:54.342216 DATA sockfilt for passive data channel starting... 09:40:54.360462 DATA sockfilt for passive data channel started (pid 104941) 09:40:54.361642 DATA sockfilt for passive data channel listens on port 42723 09:40:54.362216 > "229 Entering Passive Mode (|||42723|)[LF]" 09:40:54.362432 Client has been notified that DATA conn will be accepted on port 42723 09:40:54.366065 Client connects to port 42723 09:40:54.366389 ====> Client established passive DATA connection on port 42723 09:40:54.367403 < "TYPE I" 09:40:54.369948 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.371916 < "SIZE verifiedserver" 09:40:54.372470 > "213 17[CR][LF]" 09:40:54.374117 < "RETR verifiedserver" 09:40:54.374592 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.375356 =====> Closing passive DATA connection... 09:40:54.375586 Server disconnects passive DATA connection 09:40:54.380948 Server disconnected passive DATA connection 09:40:54.381234 DATA sockfilt for passive data channel quits (pid 104941) 09:40:54.383850 DATA sockfilt for passive data channel quit (pid 104941) 09:40:54.384095 =====> Closed passive DATA connection 09:40:54.385080 > "226 File transfer complete[CR][LF]" 09:40:54.422487 < "QUIT" 09:40:54.422892 > "221 bye bye baby[CR][LF]" 09:40:54.427613 MAIN sockfilt said DISC 09:40:54.428571 ====> Client disconnected 09:40:54.429255 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.581023 ====> Client connect 09:40:54.582973 Received DATA (on stdin) 09:40:54.583128 > 160 bytes data, server => client 09:40:54.585061 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.585217 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.585315 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.586124 < 16 bytes data, client => server 09:40:54.586304 'USER anonymous\r\n' 09:40:54.588402 Received DATA (on stdin) 09:40:54.588633 > 33 bytes data, server => client 09:40:54.588805 '331 We are happy you popped in!\r\n' 09:40:54.589600 < 22 bytes data, client => server 09:40:54.589745 'PASS ftp@example.com\r\n' 09:40:54.590781 Received DATA (on stdin) 09:40:54.590923 > 30 bytes data, server => client 09:40:54.591428 '230 Welcome you silly person\r\n' 09:40:54.592156 < 5 bytes data, client => server 09:40:54.592335 'PWD\r\n' 09:40:54.593718 Received DATA (on stdin) 09:40:54.593846 > 30 bytes data, server => client 09:40:54.593929 '257 "/" is current directory\r\n' 09:40:54.594634 < 6 bytes data, client => server 09:40:54.594785 'EPSV\r\n' 09:40:54.615895 Received DATA (on stdin) 09:40:54.616081 > 38 bytes data, server => client 09:40:54.616171 '229 Entering Passive Mode (|||42723|)\n' 09:40:54.617797 < 8 bytes data, client => server 09:40:54.617948 'TYPE I\r\n' 09:40:54.621572 Received DATA (on stdin) 09:40:54.621743 > 33 bytes data, server => client 09:40:54.624002 '200 I modify TYPE as you wanted\r\n' 09:40:54.625034 < 21 bytes data, client => server 09:40:54.625215 'SIZE verifiedserver\r\n' 09:40:54.626184 Received DATA (on stdin) 09:40:54.626359 > 8 bytes data, server => client 09:40:54.626531 '213 17\r\n' 09:40:54.627237 < 21 bytes data, client => server 09:40:54.627391 'RETR verifiedserver\r\n' 09:40:54.628287 Received DATA (on stdin) 09:40:54.628513 > 29 bytes data, server => client 09:40:54.628654 '150 Binary junk (17 bytes).\r\n' 09:40:54.638122 Received DATA (on stdin) 09:40:54.638265 > 28 bytes data, server => client 09:40:54.638422 '226 File transfer complete\r\n' 09:40:54.675329 < 6 bytes data, client => server 09:40:54.675549 'QUIT\r\n' 09:40:54.676903 Received DATA (on stdin) 09:40:54.677032 > 18 bytes data, server => client 09:40:54.677118 '221 bye bye baby\r\n' 09:40:54.681020 ====> Client disconnect 09:40:54.681763 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.607840 Running IPv4 version 09:40:54.612530 Listening on port 42723 09:40:54.613024 Wrote pid 104941 to log/10/server/ftp_sockdata.pid 09:40:54.613300 Received PING (on stdin) 09:40:54.614647 Received PORT (on stdin) 09:40:54.617409 ====> Client connect 09:40:54.631597 Received DATA (on stdin) 09:40:54.631806 > 17 bytes data, server => client 09:40:54.631890 'WE ROOLZ: 77425\r\n' 09:40:54.632535 Received DISC (on stdin) 09:40:54.632720 ====> Client forcibly disconnected 09:40:54.635265 Received QUIT (on stdin) 09:40:54.635392 quits 09:40:54.635857 =========CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind591 ./libtest/libtests lib591 ftp://127.0.0.1:33875/path/591 8 log/17/upload591 > log/17/stdout591 2> log/17/stderr591 ===> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN150 REPLY EPRT 500 we don't like EPRT now Testnum 593 === End of file server.cmd === Start of file upload593 Moooooooooooo for 593 upload this === End of file upload593 === Start of file valgrind593 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind593 test 0592...[FTP multi PORT and 421 on upload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind592 ./libtest/libtests lib591 ftp://127.0.0.1:34087/path/592 8 log/13/upload592 > log/13/stdout592 2> log/13/stderr592 592: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 592 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind592 ./libtest/libtests lib591 ftp://127.0.0.1:34087/path/592 8 log/13/upload592 > log/13/stdout592 2> log/13/stderr592 === End of file commands.log === Start of file ftp_server.log 09:40:54.244623 ====> Client connect 09:40:54.246192 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.249314 < "USER anonymous" 09:40:54.249893 > "331 We are happy you popped in![CR][LF]" 09:40:54.251992 < "PASS ftp@example.com" 09:40:54.253640 > "230 Welcome you silly person[CR][LF]" 09:40:54.255014 < "PWD" 09:40:54.255831 > "257 "/" is current directory[CR][LF]" 09:40:54.257936 < "EPSV" 09:40:54.258234 ====> Passive DATA channel requested by client 09:40:54.258551 DATA sockfilt for passive data channel starting... 09:40:54.272047 DATA sockfilt for passive data channel started (pid 104912) 09:40:54.273111 DATA sockfilt for passive data channel listens on port 39681 09:40:54.273538 > "229 Entering Passive Mode (|||39681|)[LF]" 09:40:54.273902 Client has been notified that DATA conn will be accepted on port 39681 09:40:54.276419 Client connects to port 39681 09:40:54.276729 ====> Client established passive DATA connection on port 39681 09:40:54.277590 < "TYPE I" 09:40:54.278062 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.280209 < "SIZE verifiedserver" 09:40:54.281057 > "213 17[CR][LF]" 09:40:54.283040 < "RETR verifiedserver" 09:40:54.284398 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.285203 =====> Closing passive DATA connection... 09:40:54.285425 Server disconnects passive DATA connection 09:40:54.287317 Server disconnected passive DATA connection 09:40:54.287589 DATA sockfilt for passive data channel quits (pid 104912) 09:40:54.289377 DATA sockfilt for passive data channel quit (pid 104912) 09:40:54.289616 =====> Closed passive DATA connection 09:40:54.290565 > "226 File transfer complete[CR][LF]" 09:40:54.326587 < "QUIT" 09:40:54.327105 > "221 bye bye baby[CR][LF]" 09:40:54.331907 MAIN sockfilt said DISC 09:40:54.332254 ====> Client disconnected 09:40:54.332839 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:53.497334 ====> Client connect 09:40:53.500596 Received DATA (on stdin) 09:40:53.500777 > 160 bytes data, server => client 09:40:53.500884 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:53.501003 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:53.501108 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:53.501944 < 16 bytes data, client => server 09:40:53.502082 'USER anonymous\r\n' 09:40:53.503424 Received DATA (on stdin) 09:40:53.504032 > 33 bytes data, server => client 09:40:53.504125 '331 We are happy you popped in!\r\n' 09:40:53.504742 < 22 bytes data, client => server 09:40:53.504884 'PASS ftp@example.com\r\n' 09:40:53.506214 Received DATA (on stdin) 09:40:53.506355 > 30 bytes data, server => client 09:40:53.506581 '230 Welcome you silly person\r\n' 09:40:53.507912 < 5 bytes data, client => server 09:40:53.508039 'PWD\r\n' 09:40:53.509110 Received DATA (on stdin) 09:40:53.509251 > 30 bytes data, server => client 09:40:53.509846 '257 "/" is current directory\r\n' 09:40:53.510620 < 6 bytes data, client => server 09:40:53.510784 'EPSV\r\n' 09:40:53.528044 Received DATA (on stdin) 09:40:53.528192 > 38 bytes data, server => client 09:40:53.528283 '229 Entering Passive Mode (|||39681|)\n' 09:40:53.529800 < 8 bytes data, client => server 09:40:53.529927 'TYPE I\r\n' 09:40:53.532181 Received DATA (on stdin) 09:40:53.532324 > 33 bytes data, server => client 09:40:53.532411 '200 I modify TYPE as you wanted\r\n' 09:40:53.533069 < 21 bytes data, client => server 09:40:53.533201 'SIZE verifiedserver\r\n' 09:40:53.534332 Received DATA (on stdin) 09:40:53.534540 > 8 bytes data, server => client 09:40:53.535071 '213 17\r\n' 09:40:53.535925 < 21 bytes data, client => server 09:40:53.536062 'RETR verifiedserver\r\n' 09:40:53.537144 Received DATA (on stdin) 09:40:53.537279 > 29 bytes data, server => client 09:40:53.537437 '150 Binary junk (17 bytes).\r\n' 09:40:53.543714 Received DATA (on stdin) 09:40:53.543854 > 28 bytes data, server => client 09:40:53.544023 '226 File transfer complete\r\n' 09:40:53.579405 < 6 bytes data, client => server 09:40:53.579647 'QUIT\r\n' 09:40:53.581215 Received DATA (on stdin) 09:40:53.581356 > 18 bytes data, server => client 09:40:53.581512 '221 bye bye baby\r\n' 09:40:53.582618 ====> Client disconnect 09:40:53.586933 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.524229 Running IPv4 version 09:40:54.524860 Listening on port 39681 09:40:54.525210 Wrote pid 104912 to log/13/server/ftp_sockdata.pid 09:40:54.525358 Received PING (on stdin) 09:40:54.526143 Received PORT (on stdin) 09:40:54.529533 ====> Client connect 09:40:54.539437 Received DATA (on stdin) 09:40:54.539658 > 17 bytes data, server => client 09:40:54.539742 'WE ROOLZ: 79551\r\n' 09:40:54.540024 Received DISC (on stdin) 09:40:54.540170 ====> Client forcibly disconnected 09:40:54.541675 Received QUIT (on stdin) 09:40:54.541804 quits 09:40:54.542181 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN421 REPLY EPRT 500 we don't like EPRT now Testnum 592 === End of file server.cmd === Start of file upload592 Moooooooooooo for 592 upload this === End of file upload592 === Start of file valgrind592 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind592 test 0590...[HTTP proxy offers Negotiate+NTLM, use only NTLM] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind590 ./libtest/libtests lib590 http://test.remote.example.com/path/590 http://127.0.0.1:41285 > log/18/stdout590 2> log/18/stderr590 590: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 590 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind590 ./libtest/libtests lib590 http://test.remote.example.com/path/590 http://127.0.0.1:41285 > log/18/stdout590 2> log/18/stderr590 === End of file commands.log === Start of file http_server.log 09:40:54.453436 ====> Client connect 09:40:54.454060 accept_connection 3 returned 4 09:40:54.454229 accept_connection 3 returned 0 09:40:54.455359 Read 93 bytes 09:40:54.455579 Process 93 bytes request 09:40:54.455680 Got request: GET /verifiedserver HTTP/1.1 09:40:54.455780 Are-we-friendly question received 09:40:54.456041 Wrote request (93 bytes) input to log/18/server.input 09:40:54.456230 Identifying ourselves as friends 09:40:54.458072 Response sent (56 bytes) and written to log/18/server.response 09:40:54.458210 special request received, no persistency 09:40:54.458322 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 590 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind590 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind590 test 0598...[curl_easy_reset with referer and other strings set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind598 ./libtest/libtests lib598 http://127.0.0.1:35697/598 > log/19/stdout598 2> log/19/stderr598 598: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 598 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind598 ./libtest/libtests lib598 http://127.0.0.1:35697/598 > log/19/stdout598 2> log/19/stderr598 === End of file commands.log === Start of file http_server.log 09:40:54.589872 ====> Client connect 09:40:54.590177 accept_connection 3 returned 4 09:40:54.590346 accept_connection 3 returned 0 09:40:54.590622 Read 93 bytes 09:40:54.590755 Process 93 bytes request 09:40:54.590842 Got request: GET /verifiedserver HTTP/1.1 09:40:54.590925 Are-we-friendly question received 09:40:54.594857 Wrote request (93 bytes) input to log/19/server.input 09:40:54.595104 Identifying ourselves as friends 09:40:54.595973 Response sent (56 bytes) and written to log/19/server.response 09:40:54.596105 special request received, no persistency 09:40:54.596179 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 598 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind598 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind598 test 0588...[FTP PORT upload using multi interface, EPRT doesn't work] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind588 ./libtest/libtests lib525 ftp://127.0.0.1:40969/path/588 log/31/upload588 > log/31/stdout588 2> log/31/stderr588 588: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 588 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind588 ./libtest/libtests lib525 ftp://127.0.0.1:40969/path/588 log/31/upload588 > log/31/stdout588 2> log/31/stderr588 === End of file commands.log === Start of file ftp_server.log 09:40:54.207283 ====> Client connect 09:40:54.212736 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.224864 < "USER anonymous" 09:40:54.226375 > "331 We are happy you popped in![CR][LF]" 09:40:54.227231 < "PASS ftp@example.com" 09:40:54.227602 > "230 Welcome you silly person[CR][LF]" 09:40:54.229314 < "PWD" 09:40:54.229717 > "257 "/" is current directory[CR][LF]" 09:40:54.234107 < "EPSV" 09:40:54.234391 ====> Passive DATA channel requested by client 09:40:54.234580 DATA sockfilt for passive data channel starting... 09:40:54.260888 DATA sockfilt for passive data channel started (pid 104900) 09:40:54.262028 DATA sockfilt for passive data channel listens on port 40075 09:40:54.263967 > "229 Entering Passive Mode (|||40075|)[LF]" 09:40:54.264251 Client has been notified that DATA conn will be accepted on port 40075 09:40:54.266227 Client connects to port 40075 09:40:54.266873 ====> Client established passive DATA connection on port 40075 09:40:54.268727 < "TYPE I" 09:40:54.270364 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.272317 < "SIZE verifiedserver" 09:40:54.272878 > "213 18[CR][LF]" 09:40:54.276626 < "RETR verifiedserver" 09:40:54.277188 > "150 Binary junk (18 bytes).[CR][LF]" 09:40:54.282904 =====> Closing passive DATA connection... 09:40:54.283156 Server disconnects passive DATA connection 09:40:54.283461 Fancy that; client wants to DISC, too 09:40:54.283877 Server disconnected passive DATA connection 09:40:54.284096 DATA sockfilt for passive data channel quits (pid 104900) 09:40:54.287024 DATA sockfilt for passive data channel quit (pid 104900) 09:40:54.287257 =====> Closed passive DATA connection 09:40:54.288938 > "226 File transfer complete[CR][LF]" 09:40:54.322718 < "QUIT" 09:40:54.323206 > "221 bye bye baby[CR][LF]" 09:40:54.326978 MAIN sockfilt said DISC 09:40:54.327308 ====> Client disconnected 09:40:54.327851 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.460345 ====> Client connect 09:40:54.466843 Received DATA (on stdin) 09:40:54.467113 > 160 bytes data, server => client 09:40:54.467292 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.467385 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.467548 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.475651 < 16 bytes data, client => server 09:40:54.475907 'USER anonymous\r\n' 09:40:54.479132 Received DATA (on stdin) 09:40:54.479358 > 33 bytes data, server => client 09:40:54.479637 '331 We are happy you popped in!\r\n' 09:40:54.480358 < 22 bytes data, client => server 09:40:54.480604 'PASS ftp@example.com\r\n' 09:40:54.481352 Received DATA (on stdin) 09:40:54.481588 > 30 bytes data, server => client 09:40:54.481685 '230 Welcome you silly person\r\n' 09:40:54.482231 < 5 bytes data, client => server 09:40:54.482356 'PWD\r\n' 09:40:54.485563 Received DATA (on stdin) 09:40:54.485710 > 30 bytes data, server => client 09:40:54.485808 '257 "/" is current directory\r\n' 09:40:54.486578 < 6 bytes data, client => server 09:40:54.486710 'EPSV\r\n' 09:40:54.516120 Received DATA (on stdin) 09:40:54.516255 > 38 bytes data, server => client 09:40:54.518372 '229 Entering Passive Mode (|||40075|)\n' 09:40:54.521630 < 8 bytes data, client => server 09:40:54.521774 'TYPE I\r\n' 09:40:54.522896 Received DATA (on stdin) 09:40:54.523041 > 33 bytes data, server => client 09:40:54.524410 '200 I modify TYPE as you wanted\r\n' 09:40:54.525171 < 21 bytes data, client => server 09:40:54.525318 'SIZE verifiedserver\r\n' 09:40:54.528671 Received DATA (on stdin) 09:40:54.528822 > 8 bytes data, server => client 09:40:54.528917 '213 18\r\n' 09:40:54.529584 < 21 bytes data, client => server 09:40:54.529728 'RETR verifiedserver\r\n' 09:40:54.532569 Received DATA (on stdin) 09:40:54.532722 > 29 bytes data, server => client 09:40:54.532809 '150 Binary junk (18 bytes).\r\n' 09:40:54.541260 Received DATA (on stdin) 09:40:54.541399 > 28 bytes data, server => client 09:40:54.542969 '226 File transfer complete\r\n' 09:40:54.575619 < 6 bytes data, client => server 09:40:54.575779 'QUIT\r\n' 09:40:54.578560 Received DATA (on stdin) 09:40:54.578720 > 18 bytes data, server => client 09:40:54.578808 '221 bye bye baby\r\n' 09:40:54.579301 ====> Client disconnect 09:40:54.587534 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.510853 Running IPv4 version 09:40:54.511403 Listening on port 40075 09:40:54.514087 Wrote pid 104900 to log/31/server/ftp_sockdata.pid 09:40:54.514243 Received PING (on stdin) 09:40:54.515133 Received PORT (on stdin) 09:40:54.519621 ====> Client connect 09:40:54.531338 Received DATA (on stdin) 09:40:54.531563 > 18 bytes data, server => client 09:40:54.531667 'WE ROOLZ: 100730\r\n' 09:40:54.534576 ====> Client disconnect 09:40:54.537197 Received DISC (on stdin) 09:40:54.537338 Crikey! Client also wants to disconnect 09:40:54.537528 Received ACKD (on stdin) 09:40:54.538091 Received QUIT (on stdin) 09:40:54.538220 quits 09:40:54.538660 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPRT 500 we don't like EPRT now Testnum 588 === End of file server.cmd === Start of file upload588 Moooooooooooo upload this === End of file upload588 === Start of file valgrind588 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfocannot find sshd valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind588 test 0599...[HTTP GET with progress callback and redirects changing content sizes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind599 ./libtest/libtests lib599 http://127.0.0.1:44255/599 log/36/ip599 > log/36/stdout599 2> log/36/stderr599 599: data FAILED: --- log/36/check-expected 2025-07-18 09:40:55.556185548 +0000 +++ log/36/check-generated 2025-07-18 09:40:55.554600669 +0000 @@ -1,16 +0,0 @@ -HTTP/1.1 302 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Location: 5990001[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Transfer-Encoding: chunked[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -[CR][LF] -this data is slightly larger than the first piece[LF] == Contents of files in the log/36/ dir after test 599 === Start of file check-expected HTTP/1.1 302 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Location: 5990001[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Transfer-Encoding: chunked[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] [CR][LF] this data is slightly larger than the first piece[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind599 ./libtest/libtests lib599 http://127.0.0.1:44255/599 log/36/ip599 > log/36/stdout599 2> log/36/stderr599 === End of file commands.log === Start of file http_server.log 09:40:54.542704 ====> Client connect 09:40:54.543007 accept_connection 3 returned 4 09:40:54.543162 accept_connection 3 returned 0 09:40:54.543820 Read 93 bytes 09:40:54.543968 Process 93 bytes request 09:40:54.544055 Got request: GET /verifiedserver HTTP/1.1 09:40:54.544121 Are-we-friendly question received 09:40:54.544344 Wrote request (93 bytes) input to log/36/server.input 09:40:54.544613 Identifying ourselves as friends 09:40:54.545201 Response sent (56 bytes) and written to log/36/server.response 09:40:54.545319 special request received, no persistency 09:40:54.545388 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 599 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind599 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind599 test 0597...[FTP connect only option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind597 ./libtest/libtests lib597 ftp://127.0.0.1:33177 > log/43/stdout597 2> log/43/stderr597 597: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 597 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind597 ./libtest/libtests lib597 ftp://127.0.0.1:33177 > log/43/stdout597 2> log/43/stderr597 === End of file commands.log === Start of file ftp_server.log 09:40:54.286541 ====> Client connect 09:40:54.288071 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.296452 < "USER anonymous" 09:40:54.299102 > "331 We are happy you popped in![CR][LF]" 09:40:54.301129 < "PASS ftp@example.com" 09:40:54.301458 > "230 Welcome you silly person[CR][LF]" 09:40:54.307251 < "PWD" 09:40:54.308925 > "257 "/" is current directory[CR][LF]" 09:40:54.310964 < "EPSV" 09:40:54.311275 ====> Passive DATA channel requested by client 09:40:54.311447 DATA sockfilt for passive data channel starting... 09:40:54.346813 DATA sockfilt for passive data channel started (pid 104935) 09:40:54.347950 DATA sockfilt for passive data channel listens on port 40595 09:40:54.348407 > "229 Entering Passive Mode (|||40595|)[LF]" 09:40:54.348642 Client has been notified that DATA conn will be accepted on port 40595 09:40:54.352524 Client connects to port 40595 09:40:54.353018 ====> Client established passive DATA connection on port 40595 09:40:54.355560 < "TYPE I" 09:40:54.356077 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.362329 < "SIZE verifiedserver" 09:40:54.362891 > "213 17[CR][LF]" 09:40:54.370347 < "RETR verifiedserver" 09:40:54.370953 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.371896 =====> Closing passive DATA connection... 09:40:54.372204 Server disconnects passive DATA connection 09:40:54.380907 Server disconnected passive DATA connection 09:40:54.381233 DATA sockfilt for passive data channel quits (pid 104935) 09:40:54.391015 DATA sockfilt for passive data channel quit (pid 104935) 09:40:54.391413 =====> Closed passive DATA connection 09:40:54.391975 > "226 File transfer complete[CR][LF]" 09:40:54.413694 < "QUIT" 09:40:54.414240 > "221 bye bye baby[CR][LF]" 09:40:54.419281 MAIN sockfilt said DISC 09:40:54.419624 ====> Client disconnected 09:40:54.420578 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.539682 ====> Client connect 09:40:54.546578 Received DATA (on stdin) 09:40:54.546739 > 160 bytes data, server => client 09:40:54.546841 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.546944 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.547039 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.548311 < 16 bytes data, client => server 09:40:54.548624 'USER anonymous\r\n' 09:40:54.550604 Received DATA (on stdin) 09:40:54.550745 > 33 bytes data, server => client 09:40:54.553282 '331 We are happy you popped in!\r\n' 09:40:54.554024 < 22 bytes data, client => server 09:40:54.554167 'PASS ftp@example.com\r\n' 09:40:54.558959 Received DATA (on stdin) 09:40:54.559181 > 30 bytes data, server => client 09:40:54.559320 '230 Welcome you silly person\r\n' 09:40:54.560153 < 5 bytes data, client => server 09:40:54.560300 'PWD\r\n' 09:40:54.561326 Received DATA (on stdin) 09:40:54.561553 > 30 bytes data, server => client 09:40:54.562924 '257 "/" is current directory\r\n' 09:40:54.563781 < 6 bytes data, client => server 09:40:54.563921 'EPSV\r\n' 09:40:54.603563 Received DATA (on stdin) 09:40:54.603737 > 38 bytes data, server => client 09:40:54.603824 '229 Entering Passive Mode (|||40595|)\n' 09:40:54.608673 < 8 bytes data, client => server 09:40:54.608836 'TYPE I\r\n' 09:40:54.609788 Received DATA (on stdin) 09:40:54.609939 > 33 bytes data, server => client 09:40:54.610035 '200 I modify TYPE as you wanted\r\n' 09:40:54.610692 < 21 bytes data, client => server 09:40:54.610831 'SIZE verifiedserver\r\n' 09:40:54.616703 Received DATA (on stdin) 09:40:54.616859 > 8 bytes data, server => client 09:40:54.616952 '213 17\r\n' 09:40:54.619676 < 21 bytes data, client => server 09:40:54.619840 'RETR verifiedserver\r\n' 09:40:54.624668 Received DATA (on stdin) 09:40:54.624854 > 29 bytes data, server => client 09:40:54.624961 '150 Binary junk (17 bytes).\r\n' 09:40:54.645665 Received DATA (on stdin) 09:40:54.645853 > 28 bytes data, server => client 09:40:54.645973 '226 File transfer complete\r\n' 09:40:54.668273 < 6 bytes data, client => server 09:40:54.668434 'QUIT\r\n' 09:40:54.668655 Received DATA (on stdin) 09:40:54.668766 > 18 bytes data, server => client 09:40:54.668849 '221 bye bye baby\r\n' 09:40:54.672590 ====> Client disconnect 09:40:54.674746 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.594654 Running IPv4 version 09:40:54.595298 Listening on port 40595 09:40:54.599911 Wrote pid 104935 to log/43/server/ftp_sockdata.pid 09:40:54.600111 Received PING (on stdin) 09:40:54.600997 Received PORT (on stdin) 09:40:54.605866 ====> Client connect 09:40:54.629598 Received DATA (on stdin) 09:40:54.629814 > 17 bytes data, server => client 09:40:54.629930 'WE ROOLZ: 94256\r\n' 09:40:54.630380 Received DISC (on stdin) 09:40:54.630685 ====> Client forcibly disconnected 09:40:54.635254 Received QUIT (on stdin) 09:40:54.635400 quits 09:40:54.635921 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 597 === End of file server.cmd === Start of file valgrind597 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind597 test 0586...[FTP and open/close socket callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind586 ./libtest/libtests lib500 ftp://127.0.0.1:36539/586 > log/56/stdout586 2> log/56/stderr586 586: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 586 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind586 ./libtest/libtests lib500 ftp://127.0.0.1:36539/586 > log/56/stdout586 2> log/56/stderr586 === End of file commands.log === Start of file ftp_server.log 09:40:54.239318 ====> Client connect 09:40:54.241594 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.245902 < "USER anonymous" 09:40:54.247192 > "331 We are happy you popped in![CR][LF]" 09:40:54.252189 < "PASS ftp@example.com" 09:40:54.253494 > "230 Welcome you silly person[CR][LF]" 09:40:54.254896 < "PWD" 09:40:54.255302 > "257 "/" is current directory[CR][LF]" 09:40:54.257542 < "EPSV" 09:40:54.257879 ====> Passive DATA channel requested by client 09:40:54.258101 DATA sockfilt for passive data channel starting... 09:40:54.272554 DATA sockfilt for passive data channel started (pid 104911) 09:40:54.273732 DATA sockfilt for passive data channel listens on port 44573 09:40:54.274407 > "229 Entering Passive Mode (|||44573|)[LF]" 09:40:54.274676 Client has been notified that DATA conn will be accepted on port 44573 09:40:54.276860 Client connects to port 44573 09:40:54.277209 ====> Client established passive DATA connection on port 44573 09:40:54.278120 < "TYPE I" 09:40:54.278488 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.280362 < "SIZE verifiedserver" 09:40:54.282315 > "213 17[CR][LF]" 09:40:54.283090 < "RETR verifiedserver" 09:40:54.284457 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.285281 =====> Closing passive DATA connection... 09:40:54.285510 Server disconnects passive DATA connection 09:40:54.286553 Server disconnected passive DATA connection 09:40:54.286869 DATA sockfilt for passive data channel quits (pid 104911) 09:40:54.288812 DATA sockfilt for passive data channel quit (pid 104911) 09:40:54.289076 =====> Closed passive DATA connection 09:40:54.290058 > "226 File transfer complete[CR][LF]" 09:40:54.327480 < "QUIT" 09:40:54.327906 > "221 bye bye baby[CR][LF]" 09:40:54.330158 MAIN sockfilt said DISC 09:40:54.333399 ====> Client disconnected 09:40:54.334021 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.492345 ====> Client connect 09:40:54.494187 Received DATA (on stdin) 09:40:54.494342 > 160 bytes data, server => client 09:40:54.494601 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.494743 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.494833 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.498744 < 16 bytes data, client => server 09:40:54.499078 'USER anonymous\r\n' 09:40:54.500034 Received DATA (on stdin) 09:40:54.500178 > 33 bytes data, server => client 09:40:54.500368 '331 We are happy you popped in!\r\n' 09:40:54.504902 < 22 bytes data, client => server 09:40:54.505044 'PASS ftp@example.com\r\n' 09:40:54.506332 Received DATA (on stdin) 09:40:54.506545 > 30 bytes data, server => client 09:40:54.506726 '230 Welcome you silly person\r\n' 09:40:54.507523 < 5 bytes data, client => server 09:40:54.507705 'PWD\r\n' 09:40:54.509308 Received DATA (on stdin) 09:40:54.509544 > 30 bytes data, server => client 09:40:54.509665 '257 "/" is current directory\r\n'cannot find sshd 09:40:54.510381 < 6 bytes data, client => server 09:40:54.510580 'EPSV\r\n' 09:40:54.528822 Received DATA (on stdin) 09:40:54.528963 > 38 bytes data, server => client 09:40:54.529054 '229 Entering Passive Mode (|||44573|)\n' 09:40:54.530316 < 8 bytes data, client => server 09:40:54.530519 'TYPE I\r\n' 09:40:54.532235 Received DATA (on stdin) 09:40:54.532377 > 33 bytes data, server => client 09:40:54.532534 '200 I modify TYPE as you wanted\r\n' 09:40:54.533174 < 21 bytes data, client => server 09:40:54.533387 'SIZE verifiedserver\r\n' 09:40:54.534521 Received DATA (on stdin) 09:40:54.534668 > 8 bytes data, server => client 09:40:54.534843 '213 17\r\n' 09:40:54.535667 < 21 bytes data, client => server 09:40:54.535872 'RETR verifiedserver\r\n' 09:40:54.537182 Received DATA (on stdin) 09:40:54.537324 > 29 bytes data, server => client 09:40:54.537588 '150 Binary junk (17 bytes).\r\n' 09:40:54.543086 Received DATA (on stdin) 09:40:54.543227 > 28 bytes data, server => client 09:40:54.543411 '226 File transfer complete\r\n' 09:40:54.580261 < 6 bytes data, client => server 09:40:54.580427 'QUIT\r\n' 09:40:54.582080 Received DATA (on stdin) 09:40:54.582227 > 18 bytes data, server => client 09:40:54.582313 '221 bye bye baby\r\n' 09:40:54.583586 ====> Client disconnect 09:40:54.584172 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.524180 Running IPv4 version 09:40:54.525029 Listening on port 44573 09:40:54.525709 Wrote pid 104911 to log/56/server/ftp_sockdata.pid 09:40:54.525916 Received PING (on stdin) 09:40:54.526843 Received PORT (on stdin) 09:40:54.530177 ====> Client connect 09:40:54.538680 Received DATA (on stdin) 09:40:54.538842 > 17 bytes data, server => client 09:40:54.538932 'WE ROOLZ: 77376\r\n' 09:40:54.539743 Received DISC (on stdin) 09:40:54.539947 ====> Client forcibly disconnected 09:40:54.540914 Received QUIT (on stdin) 09:40:54.541064 quits 09:40:54.541541 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 586 === End of file server.cmd === Start of file valgrind586 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind586 test 0591...[FTP multi PORT and 425 on upload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind591 ./libtest/libtests lib591 ftp://127.0.0.1:33875/path/591 8 log/17/upload591 > log/17/stdout591 2> log/17/stderr591 591: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 591 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind591 ./libtest/libtests lib591 ftp://127.0.0.1:33875/path/591 8 log/17/upload591 > log/17/stdout591 2> log/17/stderr591 === End of file commands.log === Start of file ftp_server.log 09:40:54.229631 ====> Client connect 09:40:54.231034 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.235895 < "USER anonymous" 09:40:54.240307 > "331 We are happy you popped in![CR][LF]" 09:40:54.249364 < "PASS ftp@example.com" 09:40:54.249828 > "230 Welcome you silly person[CR][LF]" 09:40:54.258420 < "PWD" 09:40:54.259082 > "257 "/" is current directory[CR][LF]" 09:40:54.261186 < "EPSV" 09:40:54.261569 ====> Passive DATA channel requested by client 09:40:54.261871 DATA sockfilt for passive data channel starting... 09:40:54.287524 DATA sockfilt for passive data channel started (pid 104921) 09:40:54.288534 DATA sockfilt for passive data channel listens on port 36301 09:40:54.289106 > "229 Entering Passive Mode (|||36301|)[LF]" 09:40:54.289332 Client has been notified that DATA conn will be accepted on port 36301 09:40:54.294582 Client connects to port 36301 09:40:54.295281 ====> Client established passive DATA connection on port 36301 09:40:54.296257 < "TYPE I" 09:40:54.296636 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.301435 < "SIZE verifiedserver" 09:40:54.302657 > "213 17[CR][LF]" 09:40:54.306104 < "RETR verifiedserver" 09:40:54.306510 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.311578 =====> Closing passive DATA connection... 09:40:54.312061 Server disconnects passive DATA connection 09:40:54.314884 Server disconnected passive DATA connection 09:40:54.315165 DATA sockfilt for passive data channel quits (pid 104921) 09:40:54.319061 DATA sockfilt for passive data channel quit (pid 104921) 09:40:54.319332 =====> Closed passive DATA connection 09:40:54.319736 > "226 File transfer complete[CR][LF]" 09:40:54.353453 < "QUIT" 09:40:54.354204 > "221 bye bye baby[CR][LF]" 09:40:54.359340 MAIN sockfilt said DISC 09:40:54.359967 ====> Client disconnected 09:40:54.360615 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.479861 ====> Client connect 09:40:54.485196 Received DATA (on stdin) 09:40:54.485366 > 160 bytes data, server => client 09:40:54.485584 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.485697 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.485770 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.486648 < 16 bytes data, client => server 09:40:54.486812 'USER anonymous\r\n' 09:40:54.493611 Received DATA (on stdin) 09:40:54.493774 > 33 bytes data, server => client 09:40:54.494359 '331 We are happy you popped in!\r\n' 09:40:54.498282 < 22 bytes data, client => server 09:40:54.498432 'PASS ftp@example.com\r\n' 09:40:54.507592 Received DATA (on stdin) 09:40:54.507783 > 30 bytes data, server => client 09:40:54.507877 '230 Welcome you silly person\r\n' 09:40:54.508816 < 5 bytes data, client => server 09:40:54.508987 'PWD\r\n' 09:40:54.512793 Received DATA (on stdin) 09:40:54.512965 > 30 bytes data, server => client 09:40:54.513050 '257 "/" is current directory\r\n' 09:40:54.514036 < 6 bytes data, client => server 09:40:54.514196 'EPSV\r\n' 09:40:54.543338 Received DATA (on stdin) 09:40:54.543554 > 38 bytes data, server => client 09:40:54.543672 '229 Entering Passive Mode (|||36301|)\n' 09:40:54.547629 < 8 bytes data, client => server 09:40:54.547798 'TYPE I\r\n' 09:40:54.551570 Received DATA (on stdin) 09:40:54.551760 > 33 bytes data, server => client 09:40:54.551851 '200 I modify TYPE as you wanted\r\n' 09:40:54.552684 < 21 bytes data, client => server 09:40:54.552850 'SIZE verifiedserver\r\n' 09:40:54.555632 Received DATA (on stdin) 09:40:54.555790 > 8 bytes data, server => client 09:40:54.555960 '213 17\r\n' 09:40:54.558942 < 21 bytes data, client => server 09:40:54.559097 'RETR verifiedserver\r\n' 09:40:54.562706 Received DATA (on stdin) 09:40:54.562875 > 29 bytes data, server => client 09:40:54.562957 '150 Binary junk (17 bytes).\r\n' 09:40:54.573874 Received DATA (on stdin) 09:40:54.574005 > 28 bytes data, server => client 09:40:54.574089 '226 File transfer complete\r\n' 09:40:54.604666 < 6 bytes data, client => server 09:40:54.604876 'QUIT\r\n' 09:40:54.608250 Received DATA (on stdin) 09:40:54.608388 > 18 bytes data, server => client 09:40:54.608576 '221 bye bye baby\r\n' 09:40:54.611641 ====> Client disconnect 09:40:54.614686 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.539736 Running IPv4 version 09:40:54.540306 Listening on port 36301 09:40:54.540799 Wrote pid 104921 to log/17/server/ftp_sockdata.pid 09:40:54.540966 Received PING (on stdin) 09:40:54.541733 Received PORT (on stdin) 09:40:54.548008 ====> Client connect 09:40:54.560626 Received DATA (on stdin) 09:40:54.560790 > 17 bytes data, server => client 09:40:54.563767 'WE ROOLZ: 86383\r\n' 09:40:54.566061 Received DISC (on stdin) 09:40:54.566198 ====> Client forcibly disconnected 09:40:54.569120 Received QUIT (on stdin) 09:40:54.569252 quits 09:40:54.569714 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN425 REPLY EPRT 500 we don't like EPRT now Testnum 591 === End of file server.cmd === Start of file upload591 Moooooooooooo for 591 upload this === End of file upload591 === Start of file valgrind591 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind591 test 0596...[verify close callbacks with active FTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind596 ./libtest/libtests lib500 ftp://127.0.0.1:41719/596 log/45/ip596 activeftp > log/45/stdout596 2> log/45/stderr596 596: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 596 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind596 ./libtest/libtests lib500 ftp://127.0.0.1:41719/596 log/45/ip596 activeftp > log/45/stdout596 2> log/45/stderr596 === End of file commands.log === Start of file ftp_server.log 09:40:54.362399 ====> Client connect 09:40:54.364881 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:54.366239 < "USER anonymous" 09:40:54.368165 > "331 We are happy you popped in![CR][LF]" 09:40:54.368958 < "PASS ftp@example.com" 09:40:54.369422 > "230 Welcome you silly person[CR][LF]" 09:40:54.371477 < "PWD" 09:40:54.371942 > "257 "/" is current directory[CR][LF]" 09:40:54.374002 < "EPSV" 09:40:54.374213 ====> Passive DATA channel requested by client 09:40:54.374356 DATA sockfilt for passive data channel starting... 09:40:54.395906 DATA sockfilt for passive data channel started (pid 104948) 09:40:54.397160 DATA sockfilt for passive data channel listens on port 35787 09:40:54.397556 > "229 Entering Passive Mode (|||35787|)[LF]" 09:40:54.397871 Client has been notified that DATA conn will be accepted on port 35787 09:40:54.400364 Client connects to port 35787 09:40:54.400653 ====> Client established passive DATA connection on port 35787 09:40:54.401379 < "TYPE I" 09:40:54.402884 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:54.403463 < "SIZE verifiedserver" 09:40:54.403854 > "213 17[CR][LF]" 09:40:54.406023 < "RETR verifiedserver" 09:40:54.407303 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:54.408002 =====> Closing passive DATA connection... 09:40:54.408267 Server disconnects passive DATA connection 09:40:54.410357 Server disconnected passive DATA connection 09:40:54.410650 DATA sockfilt for passive data channel quits (pid 104948) 09:40:54.412637 DATA sockfilt for passive data channel quit (pid 104948) 09:40:54.412960 =====> Closed passive DATA connection 09:40:54.413897 > "226 File transfer complete[CR][LF]" 09:40:54.452058 < "QUIT" 09:40:54.452432 > "221 bye bye baby[CR][LF]" 09:40:54.457884 MAIN sockfilt said DISC 09:40:54.458227 ====> Client disconnected 09:40:54.458735 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:54.615632 ====> Client connect 09:40:54.617391 Received DATA (on stdin) 09:40:54.617669 > 160 bytes data, server => client 09:40:54.617864 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:54.617979 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:54.618058 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:54.618811 < 16 bytes data, client => server 09:40:54.618939 'USER anonymous\r\n' 09:40:54.620306 Received DATA (on stdin) 09:40:54.620436 > 33 bytes data, server => client 09:40:54.620705 '331 We are happy you popped in!\r\n' 09:40:54.621564 < 22 bytes data, client => server 09:40:54.621695 'PASS ftp@example.com\r\n' 09:40:54.623411 Received DATA (on stdin) 09:40:54.623620 > 30 bytes data, server => client 09:40:54.623701 '230 Welcome you silly person\r\n' 09:40:54.624389 < 5 bytes data, client => server 09:40:54.624583 'PWD\r\n' 09:40:54.626053 Received DATA (on stdin) 09:40:54.626198 > 30 bytes data, server => client 09:40:54.626297 '257 "/" is current directory\r\n' 09:40:54.626996 < 6 bytes data, client => server 09:40:54.627126 'EPSV\r\n' 09:40:54.651923 Received DATA (on stdin) 09:40:54.652058 > 38 bytes data, server => client 09:40:54.652147 '229 Entering Passive Mode (|||35787|)\n' 09:40:54.653418 < 8 bytes data, client => server 09:40:54.653629 'TYPE I\r\n' 09:40:54.655371 Received DATA (on stdin) 09:40:54.655557 > 33 bytes data, server => client 09:40:54.655719 '200 I modify TYPE as you wanted\r\n' 09:40:54.656229 < 21 bytes data, client => server 09:40:54.656357 'SIZE verifiedserver\r\n' 09:40:54.657988 Received DATA (on stdin) 09:40:54.658139 > 8 bytes data, server => client 09:40:54.658238 '213 17\r\n' 09:40:54.658896 < 21 bytes data, client => server 09:40:54.659053 'RETR verifiedserver\r\n' 09:40:54.660142 Received DATA (on stdin) 09:40:54.660283 > 29 bytes data, server => client 09:40:54.660487 '150 Binary junk (17 bytes).\r\n' 09:40:54.666980 Received DATA (oncannot find sshd cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind632 ../src/curl -q --output log/63/curl632.out --include --trace-ascii log/63/trace632 --trace-config all --trace-time --hostpubmd5 00 --key log/63/server/curl_client_key --pubkey log/63/server/curl_client_key.pub -u builduser: sftp://127.0.0.1:47/build/curl/src/build-curl/tests/log/63/irrelevant-file --insecure > log/63/stdout632 2> log/63/stderr632 stdin) 09:40:54.667121 > 28 bytes data, server => client 09:40:54.667301 '226 File transfer complete\r\n' 09:40:54.704931 < 6 bytes data, client => server 09:40:54.705083 'QUIT\r\n' 09:40:54.707072 Received DATA (on stdin) 09:40:54.707210 > 18 bytes data, server => client 09:40:54.707284 '221 bye bye baby\r\n' 09:40:54.708614 ====> Client disconnect 09:40:54.714511 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:54.646896 Running IPv4 version 09:40:54.648551 Listening on port 35787 09:40:54.649019 Wrote pid 104948 to log/45/server/ftp_sockdata.pid 09:40:54.649192 Received PING (on stdin) 09:40:54.650020 Received PORT (on stdin) 09:40:54.653844 ====> Client connect 09:40:54.662383 Received DATA (on stdin) 09:40:54.662593 > 17 bytes data, server => client 09:40:54.662688 'WE ROOLZ: 78026\r\n' 09:40:54.662995 Received DISC (on stdin) 09:40:54.663137 ====> Client forcibly disconnected 09:40:54.664707 Received QUIT (on stdin) 09:40:54.664840 quits 09:40:54.665261 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 596 === End of file server.cmd === Start of file valgrind596 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind596 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/61/server/rtsp_server.pid" --portfile "log/61/server/rtsp_server.port" --logfile "log/61/rtsp_server.log" --logdir "log/61" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 104366 port 41295 * pid rtsp => 104366 104366 test 0577...[Funny RTSP version in response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind577 ./libtest/libtests lib567 rtsp://127.0.0.1:41295/577 > log/61/stdout577 2> log/61/stderr577 577: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 577 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind577 ./libtest/libtests lib567 rtsp://127.0.0.1:41295/577 > log/61/stdout577 2> log/61/stderr577 === End of file commands.log === Start of file rtsp_server.log 09:40:53.254200 Running IPv4 version on port 41295 09:40:53.255063 Wrote pid 104366 to log/61/server/rtsp_server.pid 09:40:53.255392 Wrote port 41295 to log/61/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 577 === End of file server.cmd === Start of file valgrind577 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind577 * starts no server test 0632...[SFTP syntactically invalid host key] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind632 ../src/curl -q --output log/63/curl632.out --include --trace-ascii log/63/trace632 --trace-config all --trace-time --hostpubmd5 00 --key log/63/server/curl_client_key --pubkey log/63/server/curl_client_key.pub -u builduser: sftp://127.0.0.1:47/build/curl/src/build-curl/tests/log/63/irrelevant-file --insecure > log/63/stdout632 2> log/63/stderr632 curl returned 1, when expecting 2 632: exit FAILED == Contents of files in the log/63/ dir after test 632 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind632 ../src/curl -q --output log/63/curl632.out --include --trace-ascii log/63/trace632 --trace-config all --trace-time --hostpubmd5 00 --key log/63/server/curl_client_key --pubkey log/63/server/curl_client_key.pub -u builduser: sftp://127.0.0.1:47/build/curl/src/build-curl/tests/log/63/irrelevant-file --insecure > log/63/stdout632 2> log/63/stderr632 === End of file commands.log === Start of file server.cmd Testnum 632 === End of file server.cmd === Start of file valgrind632 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debuggincannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind655 ./libtest/libtests lib655 http://127.0.0.1:35945/655 > log/57/stdout655 2> log/57/stderr655 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind658 ./libtest/libtests lib658 http://127.0.0.1:42899/658 > log/39/stdout658 2> log/39/stderr658 g a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind632 test 0587...[HTTP multi-part formpost with aborted read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind587 ./libtest/libtests lib554 http://127.0.0.1:36559/587 > log/33/stdout587 2> log/33/stderr587 libtests returned 1, when expecting 42 587: exit FAILED == Contents of files in the log/33/ dir after test 587 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind587 ./libtest/libtests lib554 http://127.0.0.1:36559/587 > log/33/stdout587 2> log/33/stderr587 === End of file commands.log === Start of file http_server.log 09:40:54.422867 ====> Client connect 09:40:54.423178 accept_connection 3 returned 4 09:40:54.423361 accept_connection 3 returned 0 09:40:54.423644 Read 93 bytes 09:40:54.423771 Process 93 bytes request 09:40:54.423862 Got request: GET /verifiedserver HTTP/1.1 09:40:54.423954 Are-we-friendly question received 09:40:54.424199 Wrote request (93 bytes) input to log/33/server.input 09:40:54.424416 Identifying ourselves as friends 09:40:54.425296 Response sent (56 bytes) and written to log/33/server.response 09:40:54.425429 special request received, no persistency 09:40:54.425626 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 587 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind587 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind587 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind653 ./libtest/libtests lib653 http://127.0.0.1:43013/653 > log/4/stdout653 2> log/4/stderr653 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind645 ./libtest/libtests lib643 http://127.0.0.1:41267/645 > log/43/stdout645 2> log/43/stderr645 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind659 ./libtest/libtests lib659 http://127.0.0.1:43179 > log/35/stdout659 2> log/35/stderr659 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind643 ./libtest/libtests lib643 http://127.0.0.1:44383/643 > log/17/stdout643 2> log/17/stderr643 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind651 ./libtest/libtests lib651 http://127.0.0.1:36913/651 log/10/test651.filedata log/10/stdout651 2> log/10/stderr651 test 0655...[resolver start callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind655 ./libtest/libtests lib655 http://127.0.0.1:35945/655 > log/57/stdout655 2> log/57/stderr655 655: data FAILED: --- log/57/check-expected 2025-07-18 09:40:56.622279108 +0000 +++ log/57/check-generated 2025-07-18 09:40:56.620600129 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/57/ dir after test 655 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind655 ./libtest/libtests lib655 http://127.0.0.1:35945/655 > log/57/stdout655 2> log/57/stderr655 === End of file commands.log === Start of file http_server.log 09:40:56.262125 ====> Client connect 09:40:56.263203 accept_connection 3 returned 4 09:40:56.263427 accept_connection 3 returned 0 09:40:56.263661 Read 93 bytes 09:40:56.263770 Process 93 bytes request 09:40:56.263860 Got request: GET /verifiedserver HTTP/1.1 09:40:56.263934 Are-we-friendly question received 09:40:56.264154 Wrote request (93 bytes) input to log/57/server.input 09:40:56.264303 Identifying ourselves as friends 09:40:56.266286 Response sent (56 bytes) and written to log/57/server.response 09:40:56.266410 special request received, no persistency 09:40:56.269658 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 655 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind655 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind655 test 0653...[Reuse of handle after altering mime data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind653 ./libtest/libtests lib653 http://127.0.0.1:43013/653 > log/4/stdout653 2> log/4/stderr653 653: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 653 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind653 ./libtest/libtests lib653 http://127.0.0.1:43013/653 > log/4/stdout653 2> log/4/stderr653 === End of file commands.log === Start of file http_server.log 09:40:56.220383 ====> Client connect 09:40:56.220845 accept_connection 3 returned 4 09:40:56.221011 accept_connection 3 returned 0 09:40:56.221145 Read 93 bytes 09:40:56.221238 Process 93 bytes request 09:40:56.221320 Got request: GET /verifiedserver HTTP/1.1 09:40:56.221393 Are-we-friendly question received 09:40:56.221799 Wrote request (93 bytes) input to log/4/server.input 09:40:56.221993 Identifying ourselves as friends 09:40:56.226709 Response sent (56 bytes) and written to log/4/server.response 09:40:56.226833 special request received, no persistency 09:40:56.226910 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 653 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind653 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind653 test 0643...[HTTP multi-part mimepost using read callback for the file part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind643 ./libtest/libtests lib643 http://127.0.0.1:44383/643 > log/17/stdout643 2> log/17/stderr643 643: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 643 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind643 ./libtest/libtests lib643 http://127.0.0.1:44383/643 > log/17/stdout643 2> log/17/stderr643 === End of file commands.log === Start of file http_server.log 09:40:56.129752 ====> Client connect 09:40:56.130130 accept_connection 3 returned 4 09:40:56.130317 accept_connection 3 returned 0 09:40:56.130541 Read 93 bytes 09:40:56.130782 Process 93 bytes request 09:40:56.130948 Got request: GET /verifiedserver HTTP/1.1 09:40:56.131039 Are-we-friendly question received 09:40:56.131299 Wrote request (93 bytes) input to log/17/server.input 09:40:56.131599 Identifying ourselves as friends 09:40:56.136601 Response sent (56 bytes) and written to log/17/server.response 09:40:56.136751 special request received, no persistency 09:40:56.136837 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 643 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind643 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind643 test 0659...[CURLOPT_CURLU without the path set - over proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind659 ./libtest/libtests lib659 http://127.0.0.1:43179 > log/35/stdout659 2> log/35/stderr659 659: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 659 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind659 ./libtest/libtests lib659 http://127.0.0.1:43179 > log/35/stdout659 2> log/35/stderr659 === End of file commands.log === Start of file http_server.log 09:40:56.276866 ====> Client connect 09:40:56.277167 accept_connection 3 returned 4 09:40:56.277347 accept_connection 3 returned 0 09:40:56.277694 Read 93 bytes 09:40:56.277817 Process 93 bytes request 09:40:56.277898 Got request: GET /verifiedserver HTTP/1.1 09:40:56.277985 Are-we-friendly question received 09:40:56.278232 Wrote request (93 bytes) input to log/35/server.input 09:40:56.278420 Identifying ourselves as friends 09:40:56.279179 Response sent (56 bytes) and written to log/35/server.response 09:40:56.279288 special request received, no persistency 09:40:56.279359 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 659 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind659 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind659 test 0658...[Pass URL to libcurl with CURLOPT_CURLU] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind658 ./libtest/libtests lib658 http://127.0.0.1:42899/658 > log/39/stdout658 2> log/39/stderr658 658: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 658 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind658 ./libtest/libtests lib658 http://127.0.0.1:42899/658 > log/39/stdout658 2> log/39/stderr658 === End of file commands.log === Start of file http_server.log 09:40:56.276098 ====> Client connect 09:40:56.276398 accept_connection 3 returned 4 09:40:56.276712 accept_connection 3 returned 0 09:40:56.277605 Read 93 bytes 09:40:56.277752 Process 93 bytes request 09:40:56.277884 Got request: GET /verifiedserver HTTP/1.1 09:40:56.277979 Are-we-friendly question received 09:40:56.278260 Wrote request (93 bytes) input to log/39/server.input 09:40:56.278524 Identifying ourselves as friends 09:40:56.280209 Response sent (56 bytes) and written to log/39/server.response 09:40:56.280338 special request received, no persistency 09:40:56.280424 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * CCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind662 ../src/curl -q --output log/54/curl662.out --include --trace-ascii log/54/trace662 --trace-config all --trace-time http://example.com/please/gimme/662 -L -x http://127.0.0.1:44921 > log/54/stdout662 2> log/54/stderr662 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind650 ./libtest/libtests lib650 http://127.0.0.1:44087/650 log/13/test650.filedata log/13/stdout650 2> log/13/stderr650 onnected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 658 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind658 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind658 test 0645...[HTTP multi-part chunked mimepost using read callback for the file part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind645 ./libtest/libtests lib643 http://127.0.0.1:41267/645 > log/43/stdout645 2> log/43/stderr645 645: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 645 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind645 ./libtest/libtests lib643 http://127.0.0.1:41267/645 > log/43/stdout645 2> log/43/stderr645 === End of file commands.log === Start of file http_server.log 09:40:56.129750 ====> Client connect 09:40:56.130152 accept_connection 3 returned 4 09:40:56.130338 accept_connection 3 returned 0 09:40:56.130574 Read 93 bytes 09:40:56.130846 Process 93 bytes request 09:40:56.130978 Got request: GET /verifiedserver HTTP/1.1 09:40:56.131069 Are-we-friendly question received 09:40:56.131323 Wrote request (93 bytes) input to log/43/server.input 09:40:56.131669 Identifying ourselves as friends 09:40:56.135789 Response sent (56 bytes) and written to log/43/server.response 09:40:56.135939 special request received, no persistency 09:40:56.136016 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 645 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind645 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind645 test 0651...[curl_formadd with huge COPYCONTENTS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind651 ./libtest/libtests lib651 http://127.0.0.1:36913/651 log/10/test651.filedata log/10/stdout651 2> log/10/stderr651 651: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 651 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind651 ./libtest/libtests lib651 http://127.0.0.1:36913/651 log/10/test651.filedata log/10/stdout651 2> log/10/stderr651 === End of file commands.log === Start of file http_server.log 09:40:56.264877 ====> Client connect 09:40:56.265179 accept_connection 3 returned 4 09:40:56.265348 accept_connection 3 returned 0 09:40:56.265630 Read 93 bytes 09:40:56.265788 Process 93 bytes request 09:40:56.265955 Got request: GET /verifiedserver HTTP/1.1 09:40:56.266068 Are-we-friendly question received 09:40:56.266322 Wrote request (93 bytes) input to log/10/server.input 09:40:56.266633 Identifying ourselves as friends 09:40:56.269000 Response sent (56 bytes) and written to log/10/server.response 09:40:56.269122 special request received, no persistency 09:40:56.269213 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 651 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file stdin-for-651 Some data from stdin === End of file stdin-for-651 === Start of file test651.filedata This is data from a file. === End of file test651.filedata === Start of file valgrind651 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind651 test 0650...[HTTP formpost using form API - with redirect and re-POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind650 ./libtest/libtests lib650 http://127.0.0.1:44087/650 log/13/test650.filedata log/13/stdout650 2> log/13/stderr650 650: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 650 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind650 ./libtest/libtests lib650 http://127.0.0.1:44087/650 log/13/test650.filedata log/13/stdout650 2> log/13/stderr650 === End of file commands.log === Start of file http_server.log 09:40:56.211096 ====> Client connect 09:40:56.211393 accept_connection 3 returned 4 09:40:56.211701 accept_connection 3 returned 0 09:40:56.212256 Read 93 bytes 09:40:56.212399 Process 93 bytes request 09:40:56.212573 Got request: GET /verifiedserver HTTP/1.1 09:40:56.212680 Are-we-friendly question received 09:40:56.212900 Wrote request (93 bytes) input to log/13/server.input 09:40:56.213075 Identifying ourselves as friends 09:40:56.214603 Response sent (56 bytes) and written to log/13/server.response 09:40:56.214726 special request received, no persistency 09:40:56.214802 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Request completely sent off { [16 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 650 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file stdin-for-650 Some data from stdin === End of file stdin-for-650 === Start of file test650.filedata This is data from a file. === End of file test650.filedata === Start of file valgrind650 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind650 test 0662...[HTTP redirect with whitespace in absolute Location: URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind662 ../src/curl -q --output log/54/curl662.out --include --trace-ascii log/54/trace662 --trace-config all --trace-time http://example.com/please/gimme/662 -L -x http://127.0.0.1:44921 > log/54/stdout662 2> log/54/stderr662 662: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 662 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind662 ../src/curl -q --output log/54/curl662.out --include --trace-ascii log/54/trace662 --trace-config all --trace-time http://example.com/please/gimme/662 -L -x http://127.0.0.1:44921 > log/54/stdout662 2> log/54/stderr662 === End of file commands.log === Start of file http_server.log 09:40:56.324114 ====> Client connect 09:40:56.324573 accept_connection 3 returned 4 09:40:56.324779 accept_connection 3 returned 0 09:40:56.324916 Read 93 bytes 09:40:56.325026 Process 93 bytes request 09:40:56.325165 Got request: GET /verifiedserver HTTP/1.1 09:40:56.325254 Are-we-friendly question received 09:40:56.325557 Wrote request (93 bytes) input to log/54/server.input 09:40:56.325762 Identifying ourselves as friends 09:40:56.326560 Response sent (56 bytes) and written to log/54/server.response 09:40:56.326689 special request received, no persistency 09:40:56.326763 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 662 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind662 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the reCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind661 ./libtest/libtests lib661 ftp://127.0.0.1:34161/ > log/6/stdout661 2> log/6/stderr661 direction are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind662 test 0661...[Avoid redundant CWDs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind661 ./libtest/libtests lib661 ftp://127.0.0.1:34161/ > log/6/stdout661 2> log/6/stderr661 661: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 661 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind661 ./libtest/libtests lib661 ftp://127.0.0.1:34161/ > log/6/stdout661 2> log/6/stderr661 === End of file commands.log === Start of file ftp_server.log 09:40:56.052576 ====> Client connect 09:40:56.054591 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:56.057577 < "USER anonymous" 09:40:56.058509 > "331 We are happy you popped in![CR][LF]" 09:40:56.063643 < "PASS ftp@example.com" 09:40:56.064534 > "230 Welcome you silly person[CR][LF]" 09:40:56.066618 < "PWD" 09:40:56.067509 > "257 "/" is current directory[CR][LF]" 09:40:56.069602 < "EPSV" 09:40:56.070050 ====> Passive DATA channel requested by client 09:40:56.070290 DATA sockfilt for passive data channel starting... 09:40:56.082955 DATA sockfilt for passive data channel started (pid 106240) 09:40:56.084189 DATA sockfilt for passive data channel listens on port 40137 09:40:56.084685 > "229 Entering Passive Mode (|||40137|)[LF]" 09:40:56.085066 Client has been notified that DATA conn will be accepted on port 40137 09:40:56.088173 Client connects to port 40137 09:40:56.088504 ====> Client established passive DATA connection on port 40137 09:40:56.089428 < "TYPE I" 09:40:56.089922 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:56.092473 < "SIZE verifiedserver" 09:40:56.093466 > "213 17[CR][LF]" 09:40:56.095583 < "RETR verifiedserver" 09:40:56.096838 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:56.097639 =====> Closing passive DATA connection... 09:40:56.099128 Server disconnects passive DATA connection 09:40:56.099470 Fancy that; client wants to DISC, too 09:40:56.100208 Server disconnected passive DATA connection 09:40:56.100496 DATA sockfilt for passive data channel quits (pid 106240) 09:40:56.102480 DATA sockfilt for passive data channel quit (pid 106240) 09:40:56.102835 =====> Closed passive DATA connection 09:40:56.103999 > "226 File transfer complete[CR][LF]" 09:40:56.140641 < "QUIT" 09:40:56.141144 > "221 bye bye baby[CR][LF]" 09:40:56.146371 MAIN sockfilt said DISC 09:40:56.147339 ====> Client disconnected 09:40:56.147954 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:56.305645 ====> Client connect 09:40:56.307821 Received DATA (on stdin) 09:40:56.307996 > 160 bytes data, server => client 09:40:56.308551 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:56.308711 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:56.308805 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:56.310213 < 16 bytes data, client => server 09:40:56.310390 'USER anonymous\r\n' 09:40:56.311783 Received DATA (on stdin) 09:40:56.311949 > 33 bytes data, server => client 09:40:56.315572 '331 We are happy you popped in!\r\n' 09:40:56.316501 < 22 bytes data, client => server 09:40:56.316684 'PASS ftp@example.com\r\n' 09:40:56.317845 Received DATA (on stdin) 09:40:56.318014 > 30 bytes data, server => client 09:40:56.318643 '230 Welcome you silly person\r\n' 09:40:56.319437 < 5 bytes data, client => server 09:40:56.319680 'PWD\r\n' 09:40:56.320833 Received DATA (on stdin) 09:40:56.320994 > 30 bytes data, server => client 09:40:56.321625 '257 "/" is current directory\r\n' 09:40:56.322520 < 6 bytes data, client => server 09:40:56.322690 'EPSV\r\n' 09:40:56.339174 Received DATA (on stdin) 09:40:56.339359 > 38 bytes data, server => client 09:40:56.339558 '229 Entering Passive Mode (|||40137|)\n' 09:40:56.341133 < 8 bytes data, client => server 09:40:56.341335 'TYPE I\r\n' 09:40:56.343977 Received DATA (on stdin) 09:40:56.344134 > 33 bytes data, server => client 09:40:56.344335 '200 I modify TYPE as you wanted\r\n' 09:40:56.345247 < 21 bytes data, client => server 09:40:56.345414 'SIZE verifiedserver\r\n' 09:40:56.346734 Received DATA (on stdin) 09:40:56.346943 > 8 bytes data, server => client 09:40:56.347587 '213 17\r\n' 09:40:56.348372 < 21 bytes data, client => server 09:40:56.348631 'RETR verifiedserver\r\n' 09:40:56.349848 Received DATA (on stdin) 09:40:56.350009 > 29 bytes data, server => client 09:40:56.351554 '150 Binary junk (17 bytes).\r\n' 09:40:56.356933 Received DATA (on stdin) 09:40:56.357105 > 28 bytes data, server => client 09:40:56.357299 '226 File transfer complete\r\n' 09:40:56.393506 < 6 bytes data, client => server 09:40:56.393694 'QUIT\r\n' 09:40:56.395265 Received DATA (on stdin) 09:40:56.395428 > 18 bytes data, server => client 09:40:56.395639 '221 bye bye baby\r\n' 09:40:56.399725 ====> Client disconnect 09:40:56.400439 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:56.335027 Running IPv4 version 09:40:56.335693 Listening on port 40137 09:40:56.336080 Wrote pid 106240 to log/6/server/ftp_sockdata.pid 09:40:56.336239 Received PING (on stdin) 09:40:56.337215 Received PORT (on stdin) 09:40:56.340830 ====> Client connect 09:40:56.351012 Received DATA (on stdin) 09:40:56.351177 > 17 bytes data, server => client 09:40:56.351275 'WE ROOLZ: 79493\r\n' 09:40:56.352567 ====> Client disconnect 09:40:56.353184 Received DISC (on stdin) 09:40:56.353357 Crikey! Client also wants to disconnect 09:40:56.353588 Received ACKD (on stdin) 09:40:56.354575 Received QUIT (on stdin) 09:40:56.354728 quits 09:40:56.355110 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 661 === End of file server.cmd === Start of file valgrind661 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagercannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind654 ./libtest/libtests lib654 http://127.0.0.1:46727/654 log/58/file654.txt > log/58/stdout654 2> log/58/stderr654 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind663 ../src/curl -q --output log/63/curl663.out --include --trace-ascii log/63/trace663 --trace-config all --trace-time http://example.com/please/../gimme/663?foobar#hello -L -x http://127.0.0.1:38797 > log/63/stdout663 2> log/63/stderr663 s valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind661 test 0654...[HTTP duplicate easy handle with mime data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind654 ./libtest/libtests lib654 http://127.0.0.1:46727/654 log/58/file654.txt > log/58/stdout654 2> log/58/stderr654 654: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 654 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind654 ./libtest/libtests lib654 http://127.0.0.1:46727/654 log/58/file654.txt > log/58/stdout654 2> log/58/stderr654 === End of file commands.log === Start of file file654.txt This is data from a file === End of file file654.txt === Start of file http_server.log 09:40:56.263829 ====> Client connect 09:40:56.264118 accept_connection 3 returned 4 09:40:56.264281 accept_connection 3 returned 0 09:40:56.264410 Read 93 bytes 09:40:56.264611 Process 93 bytes request 09:40:56.264728 Got request: GET /verifiedserver HTTP/1.1 09:40:56.264826 Are-we-friendly question received 09:40:56.265098 Wrote request (93 bytes) input to log/58/server.input 09:40:56.265313 Identifying ourselves as friends 09:40:56.266329 Response sent (56 bytes) and written to log/58/server.response 09:40:56.266416 special request received, no persistency 09:40:56.266597 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 654 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind654 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind654 test 0663...[HTTP redirect with dotdots and whitespaces in absolute Location: URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind663 ../src/curl -q --output log/63/curl663.out --include --trace-ascii log/63/trace663 --trace-config all --trace-time http://example.com/please/../gimme/663?foobar#hello -L -x http://127.0.0.1:38797 > log/63/stdout663 2> log/63/stderr663 663: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 663 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind663 ../src/curl -q --output log/63/curl663.out --include --trace-ascii log/63/trace663 --trace-config all --trace-time http://example.com/please/../gimme/663?foobar#hello -L -x http://127.0.0.1:38797 > log/63/stdout663 2> log/63/stderr663 === End of file commands.log === Start of file http_server.log 09:40:56.510732 ====> Client connect 09:40:56.511073 accept_connection 3 returned 4 09:40:56.511233 accept_connection 3 returned 0 09:40:56.511368 Read 93 bytes 09:40:56.511556 Process 93 bytes request 09:40:56.511682 Got request: GET /verifiedserver HTTP/1.1 09:40:56.511766 Are-we-friendly question received 09:40:56.511997 Wrote request (93 bytes) input to log/63/server.input 09:40:56.512164 Identifying ourselves as friends 09:40:56.513823 Response sent (56 bytes) and written to log/63/server.response 09:40:56.513947 special request received, no persistency 09:40:56.514023 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 663 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind663 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind648 ../src/curl -q --output log/19/curl648.out --include --trace-ascii log/19/trace648 --trace-config all --trace-time smtp://127.0.0.1:36369/648 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is the email inline text with a very long line containing the special character = and that should be split by encoder.;headers=Content-disposition: "inline";encoder=quoted-printable' -F "=@log/19/test648.txt;encoder=base64" -H "From: different" -H "To: another" log/19/stdout648 2> log/19/stderr648 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind660 ./libtest/libtests lib597 imap://127.0.0.1:35591/660 > log/30/stdout660 2> log/30/stderr660 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind649 ../src/curl -q --output log/18/curl649.out --include --trace-ascii log/18/trace649 --trace-config all --trace-time smtp://127.0.0.1:44723/649 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is valid;encoder=7bit' -F "=@log/18/test649.txt;encoder=7bit" -H "From: different" -H "To: another" log/18/stdout649 2> log/18/stderr649 valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind663 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/30/server/imap_server.pid" --logfile "log/30/imap_server.log" --logdir "log/30" --portfile "log/30/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35591 (log/30/server/imap_server.port) RUN: IMAP server is PID 106142 port 35591 * pid imap => 106142 106142 test 0660...[IMAP CONNECT_ONLY option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind660 ./libtest/libtests lib597 imap://127.0.0.1:35591/660 > log/30/stdout660 2> log/30/stderr660 660: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 660 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind660 ./libtest/libtests lib597 imap://127.0.0.1:35591/660 > log/30/stdout660 2> log/30/stderr660 === End of file commands.log === Start of file imap_server.log 09:40:56.458534 IMAP server listens on port IPv4/35591 09:40:56.459400 logged pid 106142 in log/30/server/imap_server.pid 09:40:56.459704 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:40:56.710080 Running IPv4 version 09:40:56.710786 Listening on port 35591 09:40:56.711194 Wrote pid 106613 to log/30/server/imap_sockfilt.pid 09:40:56.711575 Wrote port 35591 to log/30/server/imap_server.port 09:40:56.711748 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 660 === End of file server.cmd === Start of file valgrind660 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind660 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/19/server/smtp_server.pid" --logfile "log/19/smtp_server.log" --logdir "log/19" --portfile "log/19/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36369 (log/19/server/smtp_server.port) RUN: SMTP server is PID 106059 port 36369 * pid smtp => 106059 106059 test 0648...[SMTP multipart with transfer content encoders] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind648 ../src/curl -q --output log/19/curl648.out --include --trace-ascii log/19/trace648 --trace-config all --trace-time smtp://127.0.0.1:36369/648 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is the email inline text with a very long line containing the special character = and that should be split by encoder.;headers=Content-disposition: "inline";encoder=quoted-printable' -F "=@log/19/test648.txt;encoder=base64" -H "From: different" -H "To: another" log/19/stdout648 2> log/19/stderr648 648: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 648 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind648 ../src/curl -q --output log/19/curl648.out --include --trace-ascii log/19/trace648 --trace-config all --trace-time smtp://127.0.0.1:36369/648 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is the email inline text with a very long line containing the special character = and that should be split by encoder.;headers=Content-disposition: "inline";encoder=quoted-printable' -F "=@log/19/test648.txt;encoder=base64" -H "From: different" -H "To: another" log/19/stdout648 2> log/19/stderr648 === End of file commands.log === Start of file server.cmd Testnum 648 === End of file server.cmd === Start of file smtp_server.log 09:40:56.187725 SMTP server listens on port IPv4/36369 09:40:56.188675 logged pid 106059 in log/19/server/smtp_server.pid 09:40:56.189070 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:40:56.439163 Running IPv4 version 09:40:56.439917 Listening on port 36369 09:40:56.440290 Wrote pid 106293 to log/19/server/smtp_sockfilt.pid 09:40:56.440715 Wrote port 36369 to log/19/server/smtp_server.port 09:40:56.440876 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-648 From: different To: another body === End of file stdin-for-648 === Start of file test648.txt This is an attached file. It may contain any type of data and will be encoded in base64 for transfer. === End of file test648.txt === Start of file valgrind648 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind647 ../src/curl -q --output log/31/curl647.out --include --trace-ascii log/31/trace647 --trace-config all --trace-time imap://127.0.0.1:38735/647 -F "=(;type=multipart/alternative" -F "= This is the html version;type=text/html" -F "=This is the plain text version" -F "=)" -F "=@log/31/test647.txt" -H "Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)" -H "From: Fred Foobar " -H "To: joe@example.com" -H "Message-Id: " -H "Subject: afternoon meeting" -u user:secret > log/31/stdout647 2> log/31/stderr647 Cannot continue -- exiting now. Sorry. === End of file valgrind648 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/18/server/smtp_server.pid" --logfile "log/18/smtp_server.log" --logdir "log/18" --portfile "log/18/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44723 (log/18/server/smtp_server.port) RUN: SMTP server is PID 106061 port 44723 * pid smtp => 106061 106061 test 0649...[SMTP multipart with 7bit encoder error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind649 ../src/curl -q --output log/18/curl649.out --include --trace-ascii log/18/trace649 --trace-config all --trace-time smtp://127.0.0.1:44723/649 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is valid;encoder=7bit' -F "=@log/18/test649.txt;encoder=7bit" -H "From: different" -H "To: another" log/18/stdout649 2> log/18/stderr649 649: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 649 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind649 ../src/curl -q --output log/18/curl649.out --include --trace-ascii log/18/trace649 --trace-config all --trace-time smtp://127.0.0.1:44723/649 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is valid;encoder=7bit' -F "=@log/18/test649.txt;encoder=7bit" -H "From: different" -H "To: another" log/18/stdout649 2> log/18/stderr649 === End of file commands.log === Start of file server.cmd Testnum 649 === End of file server.cmd === Start of file smtp_server.log 09:40:56.192521 SMTP server listens on port IPv4/44723 09:40:56.193385 logged pid 106061 in log/18/server/smtp_server.pid 09:40:56.193651 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:40:56.442761 Running IPv4 version 09:40:56.443564 Listening on port 44723 09:40:56.444151 Wrote pid 106291 to log/18/server/smtp_sockfilt.pid 09:40:56.445320 Wrote port 44723 to log/18/server/smtp_server.port 09:40:56.445615 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-649 From: different To: another body === End of file stdin-for-649 === Start of file test649.txt This is an attached file (in french: pièce jointe). It contains at least an 8-bit byte value. === End of file test649.txt === Start of file valgrind649 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind649 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/31/server/imap_server.pid" --logfile "log/31/imap_server.log" --logdir "log/31" --portfile "log/31/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38735 (log/31/server/imap_server.port) RUN: IMAP server is PID 106054 port 38735 * pid imap => 106054 106054 test 0647...[IMAP APPEND multipart using mime API] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind647 ../src/curl -q --output log/31/curl647.out --include --trace-ascii log/31/trace647 --trace-config all --trace-time imap://127.0.0.1:38735/647 -F "=(;type=multipart/alternative" -F "= This is the html version;type=text/html" -F "=This is the plain text version" -F "=)" -F "=@log/31/test647.txt" -H "Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)" -H "From: Fred Foobar " -H "To: joe@example.com" -H "Message-Id: " -H "Subject: afternoon meeting" -u user:secret > log/31/stdout647 2> log/31/stderr647 647: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 647 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind647 ../src/curl -q --output log/31/curl647.out --include --trace-ascii log/31/trace647 --trace-config all --trace-time imap://127.0.0.1:38735/647 -F "=(;type=multipart/alternative" -F "= This is the html version;type=text/html" -F "=This is the plain text version" -F "=)" -F "=@log/31/test647.txt" -H "Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)" -H "From: Fred Foobar " -H "To: joe@example.com" -H "Message-Id: " -H "Subject: afternoon meeting" -u user:secret > log/31/stdout647 2> log/31/stderr647 === End of file commands.log === Start of file imap_server.log 09:40:56.123043 IMAP server listens on port IPv4/38735 09:40:56.124070 logged pid 106054 in log/31/server/imap_server.pid 09:40:56.124378 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:40:56.373738 Running IPv4 version 09:40:56.374717 Listening on port 38735 09:40:56.375260 Wrote pid 106246 to log/31/server/imap_sockfilt.pid 09:40:56.375764 Wrote port 38735 to log/31/server/imap_server.port 09:40:56.375959 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 647 === End of file server.cmd === Start of file test647.txt This is an attached file. It may contain any type of data. === End of file test647.txt === Start of file valgrind647 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions foCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind646 ../src/curl -q --output log/36/curl646.out --include --trace-ascii log/36/trace646 --trace-config all --trace-time smtp://127.0.0.1:33651/646 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=(;type=multipart/alternative" -F "= This is the html version;headers=X-test1: this is a header;type=text/html;headers=X-test2: this is another header " -F "=This is the plain text version;headers=@log/36/headers646" -F "=)" -F "=@log/36/test646.txt;headers=" log/36/stdout646 2> log/36/stderr646 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind667 ./libtest/libtests lib667 http://127.0.0.1:44921/667 > log/54/stdout667 2> log/54/stderr667 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind673 ./libtest/libtests lib670 http://127.0.0.1:43013/673 > log/4/stdout673 2> log/4/stderr673 r this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind647 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/36/server/smtp_server.pid" --logfile "log/36/smtp_server.log" --logdir "log/36" --portfile "log/36/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33651 (log/36/server/smtp_server.port) RUN: SMTP server is PID 106052 port 33651 * pid smtp => 106052 106052 test 0646...[SMTP multipart using mime API] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind646 ../src/curl -q --output log/36/curl646.out --include --trace-ascii log/36/trace646 --trace-config all --trace-time smtp://127.0.0.1:33651/646 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=(;type=multipart/alternative" -F "= This is the html version;headers=X-test1: this is a header;type=text/html;headers=X-test2: this is another header " -F "=This is the plain text version;headers=@log/36/headers646" -F "=)" -F "=@log/36/test646.txt;headers=" log/36/stdout646 2> log/36/stderr646 646: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 646 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind646 ../src/curl -q --output log/36/curl646.out --include --trace-ascii log/36/trace646 --trace-config all --trace-time smtp://127.0.0.1:33651/646 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=(;type=multipart/alternative" -F "= This is the html version;headers=X-test1: this is a header;type=text/html;headers=X-test2: this is another header " -F "=This is the plain text version;headers=@log/36/headers646" -F "=)" -F "=@log/36/test646.txt;headers=" log/36/stdout646 2> log/36/stderr646 === End of file commands.log === Start of file headers646 # This line is a comment X-fileheader1: This is a header from a file # This line is another comment. It precedes a folded header. X-fileheader2: This is #a folded header === End of file headers646 === Start of file server.cmd Testnum 646 === End of file server.cmd === Start of file smtp_server.log 09:40:56.171262 SMTP server listens on port IPv4/33651 09:40:56.172384 logged pid 106052 in log/36/server/smtp_server.pid 09:40:56.172670 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:40:56.422542 Running IPv4 version 09:40:56.423132 Listening on port 33651 09:40:56.423637 Wrote pid 106272 to log/36/server/smtp_sockfilt.pid 09:40:56.424035 Wrote port 33651 to log/36/server/smtp_server.port 09:40:56.424207 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-646 From: different To: another body === End of file stdin-for-646 === Start of file test646.txt This is an attached file. It may contain any type of data. === End of file test646.txt === Start of file valgrind646 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind646 test 0667...[HTTP chunked mimepost using single-byte read callback with encoder] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind667 ./libtest/libtests lib667 http://127.0.0.1:44921/667 > log/54/stdout667 2> log/54/stderr667 667: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 667 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind667 ./libtest/libtests lib667 http://127.0.0.1:44921/667 > log/54/stdout667 2> log/54/stderr667 === End of file commands.log === Start of file http_server.log 09:40:57.267883 ====> Client connect 09:40:57.268213 accept_connection 3 returned 4 09:40:57.268398 accept_connection 3 returned 0 09:40:57.269424 Read 93 bytes 09:40:57.269651 Process 93 bytes request 09:40:57.269757 Got request: GET /verifiedserver HTTP/1.1 09:40:57.269854 Are-we-friendly question received 09:40:57.270110 Wrote request (93 bytes) input to log/54/server.input 09:40:57.270317 Identifying ourselves as friends 09:40:57.272147 Response sent (56 bytes) and written to log/54/server.response 09:40:57.272282 special request received, no persistency 09:40:57.272377 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 667 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind667 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind672 ./libtest/libtests lib670 http://127.0.0.1:44383/672 > log/17/stdout672 2> log/17/stderr672 scv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind667 test 0673...[Request pause from form read callback: easy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind673 ./libtest/libtests lib670 http://127.0.0.1:43013/673 > log/4/stdout673 2> log/4/stderr673 673: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 673 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind673 ./libtest/libtests lib670 http://127.0.0.1:43013/673 > log/4/stdout673 2> log/4/stderr673 === End of file commands.log === Start of file http_server.log 09:40:57.356867 ====> Client connect 09:40:57.357210 accept_connection 3 returned 4 09:40:57.357387 accept_connection 3 returned 0 09:40:57.358211 Read 93 bytes 09:40:57.358358 Process 93 bytes request 09:40:57.358509 Got request: GET /verifiedserver HTTP/1.1 09:40:57.358643 Are-we-friendly question received 09:40:57.358927 Wrote request (93 bytes) input to log/4/server.input 09:40:57.359194 Identifying ourselves as friends 09:40:57.363861 Response sent (56 bytes) and written to log/4/server.response 09:40:57.364001 special request received, no persistency 09:40:57.364081 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 673 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind673 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind673 test 0672...[Request pause from form read callback: multi] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind672 ./libtest/libtests lib670 http://127.0.0.1:44383/672 > log/17/stdout672 2> log/17/stderr672 672: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 672 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind672 ./libtest/libtests lib670 http://127.0.0.1:44383/672 > log/17/stdout672 2> log/17/stderr672 === End of file commands.log === Start of file http_server.log 09:40:57.346038 ====> Client connect 09:40:57.346409 accept_connection 3 returned 4 09:40:57.346744 accept_connection 3 returned 0 09:40:57.346887 Read 93 bytes 09:40:57.346975 Process 93 bytes request 09:40:57.347058 Got request: GET /verifiedserver HTTP/1.1 09:40:57.347129 Are-we-friendly question received 09:40:57.347346 Wrote request (93 bytes) input to log/17/server.input 09:40:57.347625 Identifying ourselves as friends 09:40:57.348265 Response sent (56 bytes) and written to log/17/server.response 09:40:57.348365 special request received, no persistency 09:40:57.348429 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 672 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind672 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind668 ./libtest/libtests lib668 http://127.0.0.1:44087/668 log/13/file668.txt > log/13/stdout668 2> log/13/stderr668 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind671 ./libtest/libtests lib670 http://127.0.0.1:43179/671 > log/35/stdout671 2> log/35/stderr671 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind666 ./libtest/libtests lib666 http://127.0.0.1:41267/666 > log/43/stdout666 2> log/43/stderr666 e -- exiting now. Sorry. === End of file valgrind672 test 0668...[HTTP mimepost early end of data detection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind668 ./libtest/libtests lib668 http://127.0.0.1:44087/668 log/13/file668.txt > log/13/stdout668 2> log/13/stderr668 668: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 668 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind668 ./libtest/libtests lib668 http://127.0.0.1:44087/668 log/13/file668.txt > log/13/stdout668 2> log/13/stderr668 === End of file commands.log === Start of file file668.txt This is data from a file === End of file file668.txt === Start of file http_server.log 09:40:57.301983 ====> Client connect 09:40:57.302276 accept_connection 3 returned 4 09:40:57.302438 accept_connection 3 returned 0 09:40:57.302737 Read 93 bytes 09:40:57.302828 Process 93 bytes request 09:40:57.302918 Got request: GET /verifiedserver HTTP/1.1 09:40:57.303002 Are-we-friendly question received 09:40:57.303229 Wrote request (93 bytes) input to log/13/server.input 09:40:57.303409 Identifying ourselves as friends 09:40:57.305017 Response sent (56 bytes) and written to log/13/server.response 09:40:57.305127 special request received, no persistency 09:40:57.305195 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 668 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file valgrind668 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind668 test 0671...[Request pause from mime read callback: easy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind671 ./libtest/libtests lib670 http://127.0.0.1:43179/671 > log/35/stdout671 2> log/35/stderr671 671: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 671 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind671 ./libtest/libtests lib670 http://127.0.0.1:43179/671 > log/35/stdout671 2> log/35/stderr671 === End of file commands.log === Start of file http_server.log 09:40:57.343702 ====> Client connect 09:40:57.344008 accept_connection 3 returned 4 09:40:57.344181 accept_connection 3 returned 0 09:40:57.344344 Read 93 bytes 09:40:57.344565 Process 93 bytes request 09:40:57.344695 Got request: GET /verifiedserver HTTP/1.1 09:40:57.344784 Are-we-friendly question received 09:40:57.345040 Wrote request (93 bytes) input to log/35/server.input 09:40:57.345213 Identifying ourselves as friends 09:40:57.346043 Response sent (56 bytes) and written to log/35/server.response 09:40:57.346163 special request received, no persistency 09:40:57.346224 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 671 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind671 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind671 test 0666...[HTTP mime post with binary-encoded huge data contents] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind666 ./libtest/libtests lib666 http://127.0.0.1:41267/666 > log/43/stdout666 2> log/43/stderr666 666: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 666 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind674 ./libtest/libtests lib674 http://127.0.0.1:37181/674 > log/6/stdout674 2> log/6/stderr674 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind669 ../src/curl -q --output log/10/curl669.out --include --trace-ascii log/10/trace669 --trace-config all --trace-time http://127.0.0.1:36913/we/want/669 -H 'Content-type: multipart/form-data; charset=utf-8' -F name=daniel -F tool=curl > log/10/stdout669 2> log/10/stderr669 ons=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind666 ./libtest/libtests lib666 http://127.0.0.1:41267/666 > log/43/stdout666 2> log/43/stderr666 === End of file commands.log === Start of file http_server.log 09:40:57.215005 ====> Client connect 09:40:57.215312 accept_connection 3 returned 4 09:40:57.215555 accept_connection 3 returned 0 09:40:57.216400 Read 93 bytes 09:40:57.216626 Process 93 bytes request 09:40:57.216723 Got request: GET /verifiedserver HTTP/1.1 09:40:57.216803 Are-we-friendly question received 09:40:57.217044 Wrote request (93 bytes) input to log/43/server.input 09:40:57.217235 Identifying ourselves as friends 09:40:57.219043 Response sent (56 bytes) and written to log/43/server.response 09:40:57.219161 special request received, no persistency 09:40:57.219238 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 666 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind666 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind666 test 0674...[Set CURLOPT_CURLU and dupe the handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind674 ./libtest/libtests lib674 http://127.0.0.1:37181/674 > log/6/stdout674 2> log/6/stderr674 674: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 674 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind674 ./libtest/libtests lib674 http://127.0.0.1:37181/674 > log/6/stdout674 2> log/6/stderr674 === End of file commands.log === Start of file http_server.log 09:40:57.357233 ====> Client connect 09:40:57.357656 accept_connection 3 returned 4 09:40:57.357832 accept_connection 3 returned 0 09:40:57.357956 Read 93 bytes 09:40:57.358046 Process 93 bytes request 09:40:57.358144 Got request: GET /verifiedserver HTTP/1.1 09:40:57.358230 Are-we-friendly question received 09:40:57.358529 Wrote request (93 bytes) input to log/6/server.input 09:40:57.358712 Identifying ourselves as friends 09:40:57.359396 Response sent (56 bytes) and written to log/6/server.response 09:40:57.359588 special request received, no persistency 09:40:57.359671 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 674 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind674 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind674 test 0669...[HTTP custom Content-Type with parameter] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind669 ../src/curl -q --output log/10/curl669.out --include --trace-ascii log/10/trace669 --trace-config all --trace-time http://127.0.0.1:36913/we/want/669 -H 'Content-type: multipart/form-data; charset=utf-8' -F name=daniel -F tool=curl > log/10/stdout669 2> log/10/stderr669 669: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 669 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind669 ../src/curl -q --output log/10/curl669.out --include --trace-ascii log/10/trace669 --trace-config all --trace-time http://127.0.0.1:36913/we/want/669 -H 'Content-type: multipart/form-data; charset=utf-8' -F name=daniel -F tool=curl > log/10/stdout669 2> log/10/stderr669 === End of file commands.log === Start of file http_server.log 09:40:57.307848 ====> Client connect 09:40:57.308190 accept_connection 3 returned 4 09:40:57.308381 accept_connection 3 returned 0 09:40:57.308688 Read 93 bytes 09:40:57.308817 Process 93 bytes request 09:40:57.308913 Got request: GET /verifiedseCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind675 ../src/curl -q --output log/58/curl675.out --include --trace-ascii log/58/trace675 --trace-config all --trace-time http://user1:foo1@127.0.0.1:46727/user1/675 http://user2:foo2@127.0.0.1:46727/user2/675 > log/58/stdout675 2> log/58/stderr675 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind670 ./libtest/libtests lib670 http://127.0.0.1:42899/670 > log/39/stdout670 2> log/39/stderr670 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind652 ./libtest/libtests lib652 smtp://127.0.0.1:36457/652 > log/9/stdout652 2> log/9/stderr652 rver HTTP/1.1 09:40:57.308998 Are-we-friendly question received 09:40:57.309225 Wrote request (93 bytes) input to log/10/server.input 09:40:57.309418 Identifying ourselves as friends 09:40:57.313736 Response sent (56 bytes) and written to log/10/server.response 09:40:57.313876 special request received, no persistency 09:40:57.313966 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 669 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind669 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind669 test 0675...[HTTP connection reuse and different credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind675 ../src/curl -q --output log/58/curl675.out --include --trace-ascii log/58/trace675 --trace-config all --trace-time http://user1:foo1@127.0.0.1:46727/user1/675 http://user2:foo2@127.0.0.1:46727/user2/675 > log/58/stdout675 2> log/58/stderr675 675: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 675 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind675 ../src/curl -q --output log/58/curl675.out --include --trace-ascii log/58/trace675 --trace-config all --trace-time http://user1:foo1@127.0.0.1:46727/user1/675 http://user2:foo2@127.0.0.1:46727/user2/675 > log/58/stdout675 2> log/58/stderr675 === End of file commands.log === Start of file http_server.log 09:40:57.502899 ====> Client connect 09:40:57.503223 accept_connection 3 returned 4 09:40:57.503405 accept_connection 3 returned 0 09:40:57.503660 Read 93 bytes 09:40:57.503773 Process 93 bytes request 09:40:57.503878 Got request: GET /verifiedserver HTTP/1.1 09:40:57.503970 Are-we-friendly question received 09:40:57.504222 Wrote request (93 bytes) input to log/58/server.input 09:40:57.504420 Identifying ourselves as friends 09:40:57.505352 Response sent (56 bytes) and written to log/58/server.response 09:40:57.505572 special request received, no persistency 09:40:57.505672 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 675 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind675 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind675 test 0670...[Request pause from mime read callback: multi] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind670 ./libtest/libtests lib670 http://127.0.0.1:42899/670 > log/39/stdout670 2> log/39/stderr670 670: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 670 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind670 ./libtest/libtests lib670 http://127.0.0.1:42899/670 > log/39/stdout670 2> log/39/stderr670 === End of file commands.log === Start of file http_server.log 09:40:57.345973 ====> Client connect 09:40:57.346338 accept_connection 3 returned 4 09:40:57.346596 accept_connection 3 returned 0 09:40:57.346761 Read 93 bytes 09:40:57.346860 Process 93 bytes request 09:40:57.346963 Got request: GET /verifiedserver HTTP/1.1 09:40:57.347053 Are-we-friendly question received 09:40:57.347288 Wrote request (93 bytes) input to log/39/server.input 09:40:57.347544 Identifying ourselves as friends 09:40:57.348261 Response sent (56 bytes) and written to log/39/server.response 09:40:57.348368 special request received, no persistency 09:40:57.348431 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind676 ./libtest/libtests lib676 http://127.0.0.1:38797/we/want/676 log/63/cookies676 > log/63/stdout676 2> log/63/stderr676 > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 670 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind670 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind670 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/9/server/smtp_server.pid" --logfile "log/9/smtp_server.log" --logdir "log/9" --portfile "log/9/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36457 (log/9/server/smtp_server.port) RUN: SMTP server is PID 106081 port 36457 * pid smtp => 106081 106081 test 0652...[SMTP with encoded huge mime data contents] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind652 ./libtest/libtests lib652 smtp://127.0.0.1:36457/652 > log/9/stdout652 2> log/9/stderr652 652: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 652 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind652 ./libtest/libtests lib652 smtp://127.0.0.1:36457/652 > log/9/stdout652 2> log/9/stderr652 === End of file commands.log === Start of file server.cmd Testnum 652 === End of file server.cmd === Start of file smtp_server.log 09:40:56.316373 SMTP server listens on port IPv4/36457 09:40:56.317382 logged pid 106081 in log/9/server/smtp_server.pid 09:40:56.317639 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:40:56.567739 Running IPv4 version 09:40:56.568319 Listening on port 36457 09:40:56.568839 Wrote pid 106425 to log/9/server/smtp_sockfilt.pid 09:40:56.569153 Wrote port 36457 to log/9/server/smtp_server.port 09:40:56.569329 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind652 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind652 test 0676...[verify setting CURLOPT_COOKIEFILE to NULL again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind676 ./libtest/libtests lib676 http://127.0.0.1:38797/we/want/676 log/63/cookies676 > log/63/stdout676 2> log/63/stderr676 676: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 676 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind676 ./libtest/libtests lib676 http://127.0.0.1:38797/we/want/676 log/63/cookies676 > log/63/stdout676 2> log/63/stderr676 === End of file commands.log === Start of file cookies676 127.0.0.1 TRUE /we/want/ FALSE 22118138987 proven yes === End of file cookies676 === Start of file http_server.log 09:40:57.644274 ====> Client connect 09:40:57.644735 accept_connection 3 returned 4 09:40:57.644918 accept_connection 3 returned 0 09:40:57.646062 Read 93 bytes 09:40:57.646218 Process 93 bytes request 09:40:57.646323 Got request: GET /verifiedserver HTTP/1.1 09:40:57.646414 Are-we-friendly question received 09:40:57.646810 Wrote request (93 bytes) input to log/63/server.input 09:40:57.647023 Identifying ourselves as friends 09:40:57.647860 Response sent (56 bytes) and written to log/63/server.response 09:40:57.648028 special request received, no persistency 09:40:57.648125 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 676 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind676 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind680 ../src/curl -q --output log/31/curl680.out --include --trace-ascii log/31/trace680 --trace-config all --trace-time --netrc --netrc-file log/31/netrc680 http://user1@http.example/ > log/31/stdout680 2> log/31/stderr680 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind681 ../src/curl -q --trace-ascii log/36/trace681 --trace-config all --trace-time --remote-name-all --no-remote-name --output-dir log http://127.0.0.1:44255/681 > log/36/stdout681 2> log/36/stderr681 lst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind676 * starts no server test 0680...[netrc with quoted password but missing end quote] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind680 ../src/curl -q --output log/31/curl680.out --include --trace-ascii log/31/trace680 --trace-config all --trace-time --netrc --netrc-file log/31/netrc680 http://user1@http.example/ > log/31/stdout680 2> log/31/stderr680 curl returned 1, when expecting 26 680: exit FAILED == Contents of files in the log/31/ dir after test 680 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind680 ../src/curl -q --output log/31/curl680.out --include --trace-ascii log/31/trace680 --trace-config all --trace-time --netrc --netrc-file log/31/netrc680 http://user1@http.example/ > log/31/stdout680 2> log/31/stderr680 === End of file commands.log === Start of file netrc680 machine 127.0.0.1 login user1 password "with spaces and \"\n\r\t\a === End of file netrc680 === Start of file server.cmd Testnum 680 === End of file server.cmd === Start of file valgrind680 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind680 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind686 ../src/curl -q --output log/13/curl686.out --include --trace-ascii log/13/trace686 --trace-config all --trace-time htdhdhdtp://localhost --next > log/13/stdout686 2> log/13/stderr686 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind685 ../src/curl -q --output log/4/curl685.out --include --trace-ascii log/4/trace685 --trace-config all --trace-time --netrc-optional --netrc-file log/4/netrc685 http://user@127.0.0.1:43013/ > log/4/stdout685 2> log/4/stderr685 test 0681...[--remote-name-all with --no-remote-name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind681 ../src/curl -q --trace-ascii log/36/trace681 --trace-config all --trace-time --remote-name-all --no-remote-name --output-dir log http://127.0.0.1:44255/681 > log/36/stdout681 2> log/36/stderr681 681: stdout FAILED: --- log/36/check-expected 2025-07-18 09:40:58.533615001 +0000 +++ log/36/check-generated 2025-07-18 09:40:58.532599161 +0000 @@ -1 +0,0 @@ --foo-[LF] == Contents of files in the log/36/ dir after test 681 === Start of file check-expected -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind681 ../src/curl -q --trace-ascii log/36/trace681 --trace-config all --trace-time --remote-name-all --no-remote-name --output-dir log http://127.0.0.1:44255/681 > log/36/stdout681 2> log/36/stderr681 === End of file commands.log === Start of file http_server.log 09:40:58.115870 ====> Client connect 09:40:58.116192 accept_connection 3 returned 4 09:40:58.116369 accept_connection 3 returned 0 09:40:58.116662 Read 93 bytes 09:40:58.116787 Process 93 bytes request 09:40:58.116874 Got request: GET /verifiedserver HTTP/1.1 09:40:58.116962 Are-we-friendly question received 09:40:58.117203 Wrote request (93 bytes) input to log/36/server.input 09:40:58.117399 Identifying ourselves as friends 09:40:58.121757 Response sent (56 bytes) and written to log/36/server.response 09:40:58.121902 special request received, no persistency 09:40:58.121987 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 681 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind681 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind681 * starts no server test 0686...[verify return code for missing URL after --next] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind686 ../src/curl -q --output log/13/curl686.out --include --trace-ascii log/13/trace686 --trace-config all --trace-time htdhdhdtp://localhost --next > log/13/stdout686 2> log/13/stderr686 curl returned 1, when expecting 2 686: exit FAILED == Contents of files in the log/13/ dir after test 686 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind686 ../src/curl -q --output log/13/curl686.out --include --trace-ascii log/13/trace686 --trace-config all --trace-time htdhdhdtp://localhost --next > log/13/stdout686 2> log/13/stderr686 === End of file commands.log === Start of file server.cmd Testnum 686 === End of file server.cmd === Start of file valgrind686 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind686 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind683 ../src/curl -q --output log/54/curl683.out --include --trace-ascii log/54/trace683 --trace-config all --trace-time --netrc-optional --netrc-file log/54/netrc683 http://user2@127.0.0.1:44921/ > log/54/stdout683 2> log/54/stderr683 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind677 ./libtest/libtests lib677 imap://127.0.0.1:35591/677 > log/30/stdout677 2> log/30/stderr677 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind682 ../src/curl -q --output log/19/curl682.out --include --trace-ascii log/19/trace682 --trace-config all --trace-time --netrc-optional --netrc-file log/19/netrc682 http://user1@127.0.0.1:35697/ > log/19/stdout682 2> log/19/stderr682 test 0685...[netrc with no login - provided user] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind685 ../src/curl -q --output log/4/curl685.out --include --trace-ascii log/4/trace685 --trace-config all --trace-time --netrc-optional --netrc-file log/4/netrc685 http://user@127.0.0.1:43013/ > log/4/stdout685 2> log/4/stderr685 685: data FAILED: --- log/4/check-expected 2025-07-18 09:40:58.628599113 +0000 +++ log/4/check-generated 2025-07-18 09:40:58.627599113 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Fri, 05 Aug 2022 10:09:00 GMT[LF] -Server: test-server/fake[LF] -Content-Type: text/plain[LF] -Content-Length: 6[LF] -Connection: close[LF] -[LF] --foo-[LF] == Contents of files in the log/4/ dir after test 685 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Fri, 05 Aug 2022 10:09:00 GMT[LF] Server: test-server/fake[LF] Content-Type: text/plain[LF] Content-Length: 6[LF] Connection: close[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind685 ../src/curl -q --output log/4/curl685.out --include --trace-ascii log/4/trace685 --trace-config all --trace-time --netrc-optional --netrc-file log/4/netrc685 http://user@127.0.0.1:43013/ > log/4/stdout685 2> log/4/stderr685 === End of file commands.log === Start of file http_server.log 09:40:58.207667 ====> Client connect 09:40:58.208035 accept_connection 3 returned 4 09:40:58.208245 accept_connection 3 returned 0 09:40:58.208396 Read 93 bytes 09:40:58.209063 Process 93 bytes request 09:40:58.209173 Got request: GET /verifiedserver HTTP/1.1 09:40:58.209263 Are-we-friendly question received 09:40:58.209631 Wrote request (93 bytes) input to log/4/server.input 09:40:58.209852 Identifying ourselves as friends 09:40:58.210760 Response sent (56 bytes) and written to log/4/server.response 09:40:58.210885 special request received, no persistency 09:40:58.210962 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file netrc685 machine 127.0.0.1 password 5up3r53cr37 === End of file netrc685 === Start of file server.cmd Testnum 685 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind685 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind685 test 0682...[netrc with multiple logins - pick first] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind682 ../src/curl -q --output log/19/curl682.out --include --trace-ascii log/19/trace682 --trace-config all --trace-time --netrc-optional --netrc-file log/19/netrc682 http://user1@127.0.0.1:35697/ > log/19/stdout682 2> log/19/stderr682 682: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 682 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind682 ../src/curl -q --output log/19/curl682.out --include --trace-ascii log/19/trace682 --trace-config all --trace-time --netrc-optional --netrc-file log/19/netrc682 http://user1@127.0.0.1:35697/ > log/19/stdout682 2> log/19/stderr682 === End of file commands.log === Start of file http_server.log 09:40:58.130876 ====> Client connect 09:40:58.131277 accept_connection 3 returned 4 09:40:58.131732 accept_connection 3 returned 0 09:40:58.132589 Read 93 bytes 09:40:58.132726 Process 93 bytes request 09:40:58.132813 Got request: GET /verifiedserver HTTP/1.1 09:40:58.132893 Are-we-friendly question received 09:40:58.133142 Wrote request (93 bytes) input to log/19/server.input 09:40:58.133576 Identifying ourselves as friends 09:40:58.138013 Response sent (56 bytes) and written to log/19/server.response 09:40:58.138195 special request received, no persistency 09:40:58.138425 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file netrc682 machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc682 === Start of file server.cmd Testnum 682 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind682 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind682 test 0677...[IMAP with CONNECT_ONLY, custom command then exit] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind677 ./libtest/libtests lib677 imap://127.0.0.1:35591/677 > log/30/stdout677 2> log/30/stderr677 677: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 677 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind677 ./libtest/libtests lib677 imap://127.0.0.1:35591/677 > log/30/stdout677 2> log/30/stderr677 === End of file commands.log === Start of file imap_server.log 09:40:57.850280 ====> Client connect 09:40:57.853122 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:40:57.854878 < "A001 CAPABILITY" 09:40:57.856011 > "A001 BAD Command[CR][LF]" 09:40:57.857140 < "A002 LIST "verifiedserver" *" 09:40:57.857442 LIST_imap got "verifiedserver" * 09:40:57.858481 > "* LIST () "/" "WE ROOLZ: 106142"[CR][LF]" 09:40:57.859383 > "A002 OK LIST Completed[CR][LF]" 09:40:57.859582 return proof we are we 09:40:57.905555 < "A003 LOGOUT" 09:40:57.906057 > "* BYE curl IMAP server signing off[CR][LF]" 09:40:57.906411 > "A003 OK LOGOUT completed[CR][LF]" 09:40:57.908306 MAIN sockfilt said DISC 09:40:57.908596 ====> Client disconnected 09:40:57.910170 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:40:58.103250 ====> Client connect 09:40:58.105416 Received DATA (on stdin) 09:40:58.105652 > 178 bytes data, server => client 09:40:58.105867 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:40:58.106015 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:40:58.106122 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:40:58.106220 'rve\r\n' 09:40:58.107396 < 17 bytes data, client => server 09:40:58.107628 'A001 CAPABILITY\r\n' 09:40:58.108952 Received DATA (on stdin) 09:40:58.109090 > 18 bytes data, server => client 09:40:58.109267 'A001 BAD Command\r\n' 09:40:58.109938 < 30 bytes data, client => server 09:40:58.110065 'A002 LIST "verifiedserver" *\r\n' 09:40:58.111511 Received DATA (on stdin) 09:40:58.111642 > 34 bytes data, server => client 09:40:58.111804 '* LIST () "/" "WE ROOLZ: 106142"\r\n' 09:40:58.112584 Received DATA (on stdin) 09:40:58.112718 > 24 bytes data, server => client 09:40:58.112872 'A002 OK LIST Completed\r\n' 09:40:58.155873 < 13 bytes data, client => server 09:40:58.156421 'A003 LOGOUT\r\n' 09:40:58.160556 Received DATA (on stdin) 09:40:58.160698 > 36 bytes data, server => client 09:40:58.160787 '* BYE curl IMAP server signing off\r\n' 09:40:58.161057 Received DATA (on stdin) 09:40:58.161182 > 26 bytes data, server => client 09:40:58.161257 'A003 OK LOGOUT completed\r\n' 09:40:58.161695 ====> Client disconnect 09:40:58.166572 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 677 === End of file server.cmd === Start of file valgrind677 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind677 test 0683...[netrc with multiple logins - pick second] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind683 ../src/curl -q --output log/54/curl683.out --include --trace-ascii log/54/trace683 --trace-config all --trace-time --netrc-optional --netrc-file log/54/netrc683 http://user2@127.0.0.1:44921/ > log/54/stdout683 2> log/54/stderr683 683: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 683 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind683 ../src/curl -q --output log/54/curl683.out --include --trace-ascii log/54/trace683 --trace-config all --trace-time --netrc-optional --netrc-file log/54/netrc683 http://user2@127.0.0.1:44921/ > log/54/stdout683 2> log/54/stderr683 === End of file commands.log === Start of file http_server.log 09:40:58.168719 ====> Client connect 09:40:58.169211 accept_connection 3 returned 4 09:40:58.169556 accept_connection 3 returned 0 09:40:58.169794 Read 93 bytes 09:40:58.169937 Process 93 bytes request 09:40:58.170086 Got request: GET /verifiedserver HTTP/1.1 09:40:58.170203 Are-we-friendly question received 09:40:58.170623 Wrote request (93 bytes) input to log/54/server.input 09:40:58.170900 Identifying ourselves as friends 09:40:58.172286 Response sent (56 bytes) and written to log/54/server.response 09:40:58.172576 special request received, no persistency 09:40:58.172701 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file netrc683 machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc683 === Start of file server.cmd Testnum 683 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind683 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind684 ../src/curl -q --output log/17/curl684.out --include --trace-ascii log/17/trace684 --trace-config all --trace-time --netrc-optional --netrc-file log/17/netrc684 http://127.0.0.1:44383/ > log/17/stdout684 2> log/17/stderr684 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind679 ../src/curl -q --output log/18/curl679.out --include --trace-ascii log/18/trace679 --trace-config all --trace-time --netrc-optional --netrc-file log/18/netrc679 http://127.0.0.1:41285/ > log/18/stdout679 2> log/18/stderr679 valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind683 test 0684...[netrc with no login] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind684 ../src/curl -q --output log/17/curl684.out --include --trace-ascii log/17/trace684 --trace-config all --trace-time --netrc-optional --netrc-file log/17/netrc684 http://127.0.0.1:44383/ > log/17/stdout684 2> log/17/stderr684 684: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 684 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind684 ../src/curl -q --output log/17/curl684.out --include --trace-ascii log/17/trace684 --trace-config all --trace-time --netrc-optional --netrc-file log/17/netrc684 http://127.0.0.1:44383/ > log/17/stdout684 2> log/17/stderr684 === End of file commands.log === Start of file http_server.log 09:40:58.191954 ====> Client connect 09:40:58.192391 accept_connection 3 returned 4 09:40:58.192727 accept_connection 3 returned 0 09:40:58.193580 Read 93 bytes 09:40:58.193733 Process 93 bytes request 09:40:58.193829 Got request: GET /verifiedserver HTTP/1.1 09:40:58.193925 Are-we-friendly question received 09:40:58.194187 Wrote request (93 bytes) input to log/17/server.input 09:40:58.194385 Identifying ourselves as friends 09:40:58.196671 Response sent (56 bytes) and written to log/17/server.response 09:40:58.196781 special request received, no persistency 09:40:58.196838 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file netrc684 machine 127.0.0.1 password 5up3r53cr37 === End of file netrc684 === Start of file server.cmd Testnum 684 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind684 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind684 test 0679...[netrc with quoted password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind679 ../src/curl -q --output log/18/curl679.out --include --trace-ascii log/18/trace679 --trace-config all --trace-time --netrc-optional --netrc-file log/18/netrc679 http://127.0.0.1:41285/ > log/18/stdout679 2> log/18/stderr679 679: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 679 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind679 ../src/curl -q --output log/18/curl679.out --include --trace-ascii log/18/trace679 --trace-config all --trace-time --netrc-optional --netrc-file log/18/netrc679 http://127.0.0.1:41285/ > log/18/stdout679 2> log/18/stderr679 === End of file commands.log === Start of file http_server.log 09:40:58.125132 ====> Client connect 09:40:58.125422 accept_connection 3 returned 4 09:40:58.125987 accept_connection 3 returned 0 09:40:58.127413 Read 93 bytes 09:40:58.127680 Process 93 bytes request 09:40:58.127866 Got request: GET /verifiedserver HTTP/1.1 09:40:58.128021 Are-we-friendly question received 09:40:58.128346 Wrote request (93 bytes) input to log/18/server.input 09:40:58.128864 Identifying ourselves as friends 09:40:58.131897 Response sent (56 bytes) and written to log/18/server.response 09:40:58.132066 special request received, no persistency 09:40:58.132202 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file netrc679 machine 127.0.0.1 login user1 password "with spaces and \"\n\r\t\a" === End of file netrc679 === Start of file server.cmd Testnum 679 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind679 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 vaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind691 ../src/curl -q --include --trace-ascii log/6/trace691 --trace-config all --trace-time http://127.0.0.1:37181/path/to/here/ -O --output-dir log/6 > log/6/stdout691 2> log/6/stderr691 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind695 ./libtest/libtests lib695 http://127.0.0.1:46607/we/want/695 > log/9/stdout695 2> log/9/stderr695 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind692 ../src/curl -q --trace-ascii log/10/trace692 --trace-config all --trace-time http://127.0.0.1:36913/ -JO --output-dir log/10 > log/10/stdout692 2> log/10/stderr692 lgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind679 test 0691...[-O with URL with path using trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind691 ../src/curl -q --include --trace-ascii log/6/trace691 --trace-config all --trace-time http://127.0.0.1:37181/path/to/here/ -O --output-dir log/6 > log/6/stdout691 2> log/6/stderr691 691: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 691 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind691 ../src/curl -q --include --trace-ascii log/6/trace691 --trace-config all --trace-time http://127.0.0.1:37181/path/to/here/ -O --output-dir log/6 > log/6/stdout691 2> log/6/stderr691 === End of file commands.log === Start of file http_server.log 09:40:58.384795 ====> Client connect 09:40:58.385061 accept_connection 3 returned 4 09:40:58.385210 accept_connection 3 returned 0 09:40:58.386029 Read 93 bytes 09:40:58.386166 Process 93 bytes request 09:40:58.386245 Got request: GET /verifiedserver HTTP/1.1 09:40:58.386316 Are-we-friendly question received 09:40:58.386658 Wrote request (93 bytes) input to log/6/server.input 09:40:58.386876 Identifying ourselves as friends 09:40:58.388602 Response sent (56 bytes) and written to log/6/server.response 09:40:58.388727 special request received, no persistency 09:40:58.388798 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 691 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind691 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind691 test 0695...[MIME parts reuse as a child part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind695 ./libtest/libtests lib695 http://127.0.0.1:46607/we/want/695 > log/9/stdout695 2> log/9/stderr695 695: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 695 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind695 ./libtest/libtests lib695 http://127.0.0.1:46607/we/want/695 > log/9/stdout695 2> log/9/stderr695 === End of file commands.log === Start of file http_server.log 09:40:58.475598 ====> Client connect 09:40:58.475942 accept_connection 3 returned 4 09:40:58.476123 accept_connection 3 returned 0 09:40:58.476274 Read 93 bytes 09:40:58.476383 Process 93 bytes request 09:40:58.476582 Got request: GET /verifiedserver HTTP/1.1 09:40:58.476695 Are-we-friendly question received 09:40:58.476937 Wrote request (93 bytes) input to log/9/server.input 09:40:58.477132 Identifying ourselves as friends 09:40:58.478965 Response sent (56 bytes) and written to log/9/server.response 09:40:58.479094 special request received, no persistency 09:40:58.479168 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 695 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind695 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind690 ../src/curl -q --include --trace-ascii log/43/trace690 --trace-config all --trace-time http://127.0.0.1:41267/ -O --output-dir log/43 > log/43/stdout690 2> log/43/stderr690 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind693 ../src/curl -q --output log/58/curl693.out --include --trace-ascii log/58/trace693 --trace-config all --trace-time http://127.0.0.1:46727/693 --etag-save log/58/moo/boo/etag693 --create-dirs > log/58/stdout693 2> log/58/stderr693 ibc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind695 test 0692...[-JO with URL without path using trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind692 ../src/curl -q --trace-ascii log/10/trace692 --trace-config all --trace-time http://127.0.0.1:36913/ -JO --output-dir log/10 > log/10/stdout692 2> log/10/stderr692 692: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 692 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind692 ../src/curl -q --trace-ascii log/10/trace692 --trace-config all --trace-time http://127.0.0.1:36913/ -JO --output-dir log/10 > log/10/stdout692 2> log/10/stderr692 === End of file commands.log === Start of file http_server.log 09:40:58.381850 ====> Client connect 09:40:58.382133 accept_connection 3 returned 4 09:40:58.382296 accept_connection 3 returned 0 09:40:58.382436 Read 93 bytes 09:40:58.382637 Process 93 bytes request 09:40:58.382731 Got request: GET /verifiedserver HTTP/1.1 09:40:58.382804 Are-we-friendly question received 09:40:58.383026 Wrote request (93 bytes) input to log/10/server.input 09:40:58.383204 Identifying ourselves as friends 09:40:58.383990 Response sent (56 bytes) and written to log/10/server.response 09:40:58.384098 special request received, no persistency 09:40:58.384156 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 692 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind692 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind692 test 0690...[-O with URL without path using trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind690 ../src/curl -q --include --trace-ascii log/43/trace690 --trace-config all --trace-time http://127.0.0.1:41267/ -O --output-dir log/43 > log/43/stdout690 2> log/43/stderr690 690: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 690 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind690 ../src/curl -q --include --trace-ascii log/43/trace690 --trace-config all --trace-time http://127.0.0.1:41267/ -O --output-dir log/43 > log/43/stdout690 2> log/43/stderr690 === End of file commands.log === Start of file http_server.log 09:40:58.388665 ====> Client connect 09:40:58.389032 accept_connection 3 returned 4 09:40:58.389219 accept_connection 3 returned 0 09:40:58.389365 Read 93 bytes 09:40:58.389564 Process 93 bytes request 09:40:58.389693 Got request: GET /verifiedserver HTTP/1.1 09:40:58.389791 Are-we-friendly question received 09:40:58.390076 Wrote request (93 bytes) input to log/43/server.input 09:40:58.390269 Identifying ourselves as friends 09:40:58.393378 Response sent (56 bytes) and written to log/43/server.response 09:40:58.394731 special request received, no persistency 09:40:58.394831 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 690 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind690 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind690 test 0693...[--etag-save with --create-dirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind697 ../src/curl -q --output log/31/curl697.out --include --trace-ascii log/31/trace697 --trace-config all --trace-time --netrc --netrc-file log/31/netrc697 http://user1@http.example/ > log/31/stdout697 2> log/31/stderr697 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind694 ./libtest/libtests lib694 http://127.0.0.1:42899/path/mine http://127.0.0.1:42899/path/6940010 > log/39/stdout694 2> log/39/stderr694 ers=16 --log-file=log/58/valgrind693 ../src/curl -q --output log/58/curl693.out --include --trace-ascii log/58/trace693 --trace-config all --trace-time http://127.0.0.1:46727/693 --etag-save log/58/moo/boo/etag693 --create-dirs > log/58/stdout693 2> log/58/stderr693 693: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 693 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind693 ../src/curl -q --output log/58/curl693.out --include --trace-ascii log/58/trace693 --trace-config all --trace-time http://127.0.0.1:46727/693 --etag-save log/58/moo/boo/etag693 --create-dirs > log/58/stdout693 2> log/58/stderr693 === End of file commands.log === Start of file http_server.log 09:40:58.430196 ====> Client connect 09:40:58.430623 accept_connection 3 returned 4 09:40:58.430845 accept_connection 3 returned 0 09:40:58.430978 Read 93 bytes 09:40:58.431078 Process 93 bytes request 09:40:58.431196 Got request: GET /verifiedserver HTTP/1.1 09:40:58.431296 Are-we-friendly question received 09:40:58.431663 Wrote request (93 bytes) input to log/58/server.input 09:40:58.431888 Identifying ourselves as friends 09:40:58.432911 Response sent (56 bytes) and written to log/58/server.response 09:40:58.433045 special request received, no persistency 09:40:58.433131 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 693 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind693 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind693 * starts no server test 0697...[netrc with missing netrc file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind697 ../src/curl -q --output log/31/curl697.out --include --trace-ascii log/31/trace697 --trace-config all --trace-time --netrc --netrc-file log/31/netrc697 http://user1@http.example/ > log/31/stdout697 2> log/31/stderr697 curl returned 1, when expecting 26 697: exit FAILED == Contents of files in the log/31/ dir after test 697 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind697 ../src/curl -q --output log/31/curl697.out --include --trace-ascii log/31/trace697 --trace-config all --trace-time --netrc --netrc-file log/31/netrc697 http://user1@http.example/ > log/31/stdout697 2> log/31/stderr697 === End of file commands.log === Start of file server.cmd Testnum 697 === End of file server.cmd === Start of file valgrind697 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind697 test 0694...[HTTP with NTLM twice, verify CURLINFO_HTTPAUTH_USED] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind694 ./libtest/libtests lib694 http://127.0.0.1:42899/path/mine http://127.0.0.1:42899/path/6940010 > log/39/stdout694 2> log/39/stderr694 694: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 694 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind694 ./libtest/libtests lib694 http://127.0.0.1:42899/path/mine http://127.0.0.1:42899/path/6940010 > log/39/stdout694 2> log/39/stderr694 === End of file commands.log === Start of file http_server.log 09:40:58.484713 ====> Client connect 09:40:58.485093 accept_connection 3 returned 4 09:40:58.485296 accept_connection 3 returned 0 09:40:58.485587 Read 93 bytes 09:40:58.485741 Process 93 bytes request 09:40:58.485843 Got request: GET /verifiedserver HTTP/1.1 09:40:58.485943 Are-we-friendly question received 09:40:58.486215 Wrote request (93 bytes) input to log/39/server.input 09:40:58.486429 Identifying ourselves as friends 09:40:58.488387 Response sent (56 bytes) and written to log/39/server.response 09:40:58.491294 special request received, no persistency 09:40:58.491399 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * RequCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind696 ./libtest/libtests lib556 http://127.0.0.1:38797 > log/63/stdout696 2> log/63/stderr696 est completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 694 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind694 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind694 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind689 ./libtest/libtests lib567 rtsp://127.0.0.1:34417/689 > log/35/stdout689 2> log/35/stderr689 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind699 ../src/curl -q --output log/13/curl699.out --include --trace-ascii log/13/trace699 --trace-config all --trace-time http://127.0.0.1:44087/699 -K log/13/cmd > log/13/stdout699 2> log/13/stderr699 test 0696...[CONNECT_ONLY and doing a second curl_easy_perform] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind696 ./libtest/libtests lib556 http://127.0.0.1:38797 > log/63/stdout696 2> log/63/stderr696 696: stdout FAILED: --- log/63/check-expected 2025-07-18 09:40:59.280311883 +0000 +++ log/63/check-generated 2025-07-18 09:40:59.278598784 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -[CR][LF] --foo-[LF] -HTTP/1.1 200 OK swsclose[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -[CR][LF] --foo-[LF] == Contents of files in the log/63/ dir after test 696 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] [CR][LF] -foo-[LF] HTTP/1.1 200 OK swsclose[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] [CR][LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind696 ./libtest/libtests lib556 http://127.0.0.1:38797 > log/63/stdout696 2> log/63/stderr696 === End of file commands.log === Start of file http_server.log 09:40:58.797934 ====> Client connect 09:40:58.798234 accept_connection 3 returned 4 09:40:58.798397 accept_connection 3 returned 0 09:40:58.798742 Read 93 bytes 09:40:58.798851 Process 93 bytes request 09:40:58.798935 Got request: GET /verifiedserver HTTP/1.1 09:40:58.799003 Are-we-friendly question received 09:40:58.799220 Wrote request (93 bytes) input to log/63/server.input 09:40:58.799392 Identifying ourselves as friends 09:40:58.800237 Response sent (56 bytes) and written to log/63/server.response 09:40:58.800356 special request received, no persistency 09:40:58.800419 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 696 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind696 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind696 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/35/server/rtsp_server.pid" --portfile "log/35/server/rtsp_server.port" --logfile "log/35/rtsp_server.log" --logdir "log/35" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 107925 port 34417 * pid rtsp => 107925 107925 test 0689...[fuzzing crash issue #12701] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind689 ./libtest/libtests lib567 rtsp://127.0.0.1:34417/689 > log/35/stdout689 2> log/35/stderr689 689: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 689 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind689 ./libtest/libtests lib567 rtsp://127.0.0.1:34417/689 > log/35/stdout689 2> log/35/stderr689 === End of file commands.log === Start of file rtsp_server.log 09:40:58.367292 Running IPv4 version on port 34417 09:40:58.368288 Wrote pid 107925 to log/35/server/rtsp_server.pid 09:40:58.368728 Wrote port 34417 to log/35/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 689 === End of file server.cmd === Start of file valgrind689 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind689 test 0699...[--config with single-letter options plus one that is cleared] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind699 ../src/curl -q --output log/13/curl699.out --include --trace-ascii log/13/trace699 --trace-config all --trace-time http://127.0.0.1:44087/699 -K log/13/cmd > log/13/stdout699 2> log/13/stderr699 699: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 699 === Start of file cmd -Lfuhej:you === End oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind704 ../src/curl -q --output log/30/curl704.out --include --trace-ascii log/30/trace704 --trace-config all --trace-time --socks4 127.0.0.1:47 http://127.0.0.1:43913/704 > log/30/stdout704 2> log/30/stderr704 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind705 ../src/curl -q --output log/19/curl705.out --include --trace-ascii log/19/trace705 --trace-config all --trace-time --socks5 127.0.0.1:47 http://127.0.0.1:35697/705 > log/19/stdout705 2> log/19/stderr705 f file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind699 ../src/curl -q --output log/13/curl699.out --include --trace-ascii log/13/trace699 --trace-config all --trace-time http://127.0.0.1:44087/699 -K log/13/cmd > log/13/stdout699 2> log/13/stderr699 === End of file commands.log === Start of file http_server.log 09:40:59.085713 ====> Client connect 09:40:59.086038 accept_connection 3 returned 4 09:40:59.086200 accept_connection 3 returned 0 09:40:59.086332 Read 93 bytes 09:40:59.086426 Process 93 bytes request 09:40:59.086625 Got request: GET /verifiedserver HTTP/1.1 09:40:59.086718 Are-we-friendly question received 09:40:59.086946 Wrote request (93 bytes) input to log/13/server.input 09:40:59.087127 Identifying ourselves as friends 09:40:59.087928 Response sent (56 bytes) and written to log/13/server.response 09:40:59.088076 special request received, no persistency 09:40:59.088252 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 699 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file valgrind699 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind699 test 0704...[Attempt connect to non-listening SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind704 ../src/curl -q --output log/30/curl704.out --include --trace-ascii log/30/trace704 --trace-config all --trace-time --socks4 127.0.0.1:47 http://127.0.0.1:43913/704 > log/30/stdout704 2> log/30/stderr704 curl returned 1, when expecting 7 704: exit FAILED == Contents of files in the log/30/ dir after test 704 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind704 ../src/curl -q --output log/30/curl704.out --include --trace-ascii log/30/trace704 --trace-config all --trace-time --socks4 127.0.0.1:47 http://127.0.0.1:43913/704 > log/30/stdout704 2> log/30/stderr704 === End of file commands.log === Start of file http_server.log 09:40:59.200961 ====> Client connect 09:40:59.201355 accept_connection 3 returned 4 09:40:59.201624 accept_connection 3 returned 0 09:40:59.201783 Read 93 bytes 09:40:59.201885 Process 93 bytes request 09:40:59.201981 Got request: GET /verifiedserver HTTP/1.1 09:40:59.202064 Are-we-friendly question received 09:40:59.202281 Wrote request (93 bytes) input to log/30/server.input 09:40:59.202554 Identifying ourselves as friends 09:40:59.203366 Response sent (56 bytes) and written to log/30/server.response 09:40:59.203906 special request received, no persistency 09:40:59.204005 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 704 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind704 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind704 test 0705...[Attempt connect to non-listening SOCKS5 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind705 ../src/curl -q --output log/19/curl705.out --include --trace-ascii log/19/trace705 --trace-config all --trace-time --socks5 127.0.0.1:47 http://127.0.0.1:35697/705 > log/19/stdout705 2> log/19/stderr705 curl returned 1, when expecting 7 705: exit FAILED == Contents of files in the log/19/ dir after test 705 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind705 ../src/curl -q --output log/19/curl705.out --include --trace-ascii log/19/trace705 --trace-config all --trace-time --socks5 127.0.0.1:47 http://127.0.0.1:35697/705 > log/19/stdout705 2> log/19/stderr705 === End of file commands.log === Start of file http_server.log 09:40:59.214199 ====> Client connect 09:40:59.214889 accCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind698 ../src/curl -q --output log/36/curl698.out --include --trace-ascii log/36/trace698 --trace-config all --trace-time ftp://127.0.0.1:45965/698 --ftp-account "one count" ftp://127.0.0.1:45965/698 > log/36/stdout698 2> log/36/stderr698 ept_connection 3 returned 4 09:40:59.215176 accept_connection 3 returned 0 09:40:59.215324 Read 93 bytes 09:40:59.215430 Process 93 bytes request 09:40:59.215648 Got request: GET /verifiedserver HTTP/1.1 09:40:59.215753 Are-we-friendly question received 09:40:59.216082 Wrote request (93 bytes) input to log/19/server.input 09:40:59.216309 Identifying ourselves as friends 09:40:59.217208 Response sent (56 bytes) and written to log/19/server.response 09:40:59.217327 special request received, no persistency 09:40:59.217399 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 705 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind705 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind705 test 0698...[FTP with ACCT and connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind698 ../src/curl -q --output log/36/curl698.out --include --trace-ascii log/36/trace698 --trace-config all --trace-time ftp://127.0.0.1:45965/698 --ftp-account "one count" ftp://127.0.0.1:45965/698 > log/36/stdout698 2> log/36/stderr698 698: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 698 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind698 ../src/curl -q --output log/36/curl698.out --include --trace-ascii log/36/trace698 --trace-config all --trace-time ftp://127.0.0.1:45965/698 --ftp-account "one count" ftp://127.0.0.1:45965/698 > log/36/stdout698 2> log/36/stderr698 === End of file commands.log === Start of file ftp_server.log 09:40:58.827432 ====> Client connect 09:40:58.828622 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:58.832899 < "USER anonymous" 09:40:58.833434 > "331 We are happy you popped in![CR][LF]" 09:40:58.837137 < "PASS ftp@example.com" 09:40:58.837565 > "230 Welcome you silly person[CR][LF]" 09:40:58.841103 < "PWD" 09:40:58.842956 > "257 "/" is current directory[CR][LF]" 09:40:58.844602 < "EPSV" 09:40:58.845018 ====> Passive DATA channel requested by client 09:40:58.845250 DATA sockfilt for passive data channel starting... 09:40:58.862630 DATA sockfilt for passive data channel started (pid 108880) 09:40:58.863897 DATA sockfilt for passive data channel listens on port 40805 09:40:58.864379 > "229 Entering Passive Mode (|||40805|)[LF]" 09:40:58.864686 Client has been notified that DATA conn will be accepted on port 40805 09:40:58.867942 Client connects to port 40805 09:40:58.868331 ====> Client established passive DATA connection on port 40805 09:40:58.869351 < "TYPE I" 09:40:58.869903 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:58.872438 < "SIZE verifiedserver" 09:40:58.873461 > "213 17[CR][LF]" 09:40:58.875413 < "RETR verifiedserver" 09:40:58.876353 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:58.877192 =====> Closing passive DATA connection... 09:40:58.877419 Server disconnects passive DATA connection 09:40:58.879888 Server disconnected passive DATA connection 09:40:58.880200 DATA sockfilt for passive data channel quits (pid 108880) 09:40:58.882296 DATA sockfilt for passive data channel quit (pid 108880) 09:40:58.882578 =====> Closed passive DATA connection 09:40:58.883074 > "226 File transfer complete[CR][LF]" 09:40:58.924013 < "QUIT" 09:40:58.925243 > "221 bye bye baby[CR][LF]" 09:40:58.929242 MAIN sockfilt said DISC 09:40:58.930222 ====> Client disconnected 09:40:58.930870 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:59.080646 ====> Client connect 09:40:59.082724 Received DATA (on stdin) 09:40:59.082858 > 160 bytes data, server => client 09:40:59.082953 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:59.083034 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:59.083111 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:59.085371 < 16 bytes data, client => server 09:40:59.085587 'USER anonymous\r\n' 09:40:59.087517 Received DATA (on stdin) 09:40:59.087650 > 33 bytes data, server => client 09:40:59.087730 '331 We are happy you popped in!\r\n' 09:40:59.089958 < 22 bytes data, client => server 09:40:59.090117 'PASS ftp@example.com\r\n' 09:40:59.091668 Received DATA (on stdin) 09:40:59.091812 > 30 bytes data, server => client 09:40:59.091894 '230 Welcome you silly person\r\n' 09:40:59.093864 < 5 bytes data, client => server 09:40:59.094031 'PWD\r\n' 09:40:59.095382 Received DATA (on stdin) 09:40:59.095649 > 30 bytes data, server => client 09:40:59.095962 '257 "/" is current directory\r\n' 09:40:59.097416 < 6 bytes data, client => server 09:40:59.097648 'EPSV\r\n' 09:40:59.118873 Received DATA (on stdin) 09:40:59.119054 > 38 bytes data, server => client 09:40:59.119170 '229 Entering Passive Mode (|||40805|)\n' 09:40:59.121231 < 8 bytes data, client => server 09:40:59.121362 'TYPE I\r\n' 09:40:59.123950 Received DATA (on stdin) 09:40:59.124129 > 33 bytes data, server => client 09:40:59.124244 '200 I modify TYPE as you wanted\r\n' 09:40:59.124906 < 21 bytes data, client => server 09:40:59.125051 'SIZE verifiedserver\r\n' 09:40:59.126743 Received DATA (on stdin) 09:40:59.126955 > 8 bytes data, server => client 09:40:59.127589 '213 17\r\n' 09:40:59.128280 < 21 bytes data, client => server 09:40:59.128424 'RETR verifiedserver\r\n' 09:40:59.129661 Received DATA (on stdin) 09:40:59.129841 > 29 bytes data, server => client 09:40:59.131381 '150 Binary junk (17 bytes).\r\n' 09:40:59.137127 Received DATA (on stdin) 09:40:59.137264 > 28 bytes data, server => client 09:40:59.137356 '226 File transfer complete\r\n' 09:40:59.176727 < 6 bytes data, client => server 09:40:59.176903 'QUIT\r\n' 09:40:59.178127 Received DACMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind703 ../src/curl -q --output log/17/curl703.out --include --trace-ascii log/17/trace703 --trace-config all --trace-time --socks5 127.0.0.1:43067 http://127.0.0.1:47 > log/17/stdout703 2> log/17/stderr703 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind702 ../src/curl -q --output log/18/curl702.out --include --trace-ascii log/18/trace702 --trace-config all --trace-time --socks4 127.0.0.1:35645 http://127.0.0.1:47 > log/18/stdout702 2> log/18/stderr702 TA (on stdin) 09:40:59.178275 > 18 bytes data, server => client 09:40:59.178534 '221 bye bye baby\r\n' 09:40:59.182648 ====> Client disconnect 09:40:59.183310 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:58.114684 Running IPv4 version 09:40:58.115392 Listening on port 40805 09:40:58.115880 Wrote pid 108880 to log/36/server/ftp_sockdata.pid 09:40:58.116063 Received PING (on stdin) 09:40:58.116928 Received PORT (on stdin) 09:40:58.120951 ====> Client connect 09:40:58.131824 Received DATA (on stdin) 09:40:58.131972 > 17 bytes data, server => client 09:40:58.132057 'WE ROOLZ: 82698\r\n' 09:40:58.132315 Received DISC (on stdin) 09:40:58.132544 ====> Client forcibly disconnected 09:40:58.134201 Received QUIT (on stdin) 09:40:58.134335 quits 09:40:58.134813 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 please provide account name REPLY ACCT 230 thank you Testnum 698 === End of file server.cmd === Start of file valgrind698 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind698 startnew: ./server/servers socksd --port 0 --pidfile log/17/server/socks_server.pid --portfile log/17/server/socks_server.port --reqfile log/17/socksd-request.log --logfile log/17/socks_server.log --backend 127.0.0.1 --config log/17/server.cmd RUN: SOCKS server is now running PID 108831 * pid socks => 108831 108831 test 0703...[Attempt connect to non-listening HTTP server via SOCKS5 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind703 ../src/curl -q --output log/17/curl703.out --include --trace-ascii log/17/trace703 --trace-config all --trace-time --socks5 127.0.0.1:43067 http://127.0.0.1:47 > log/17/stdout703 2> log/17/stderr703 curl returned 1, when expecting 97 703: exit FAILED == Contents of files in the log/17/ dir after test 703 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind703 ../src/curl -q --output log/17/curl703.out --include --trace-ascii log/17/trace703 --trace-config all --trace-time --socks5 127.0.0.1:43067 http://127.0.0.1:47 > log/17/stdout703 2> log/17/stderr703 === End of file commands.log === Start of file server.cmd response 1 Testnum 703 === End of file server.cmd === Start of file socks_server.log 09:40:58.066912 Running IPv4 version 09:40:58.067538 Listening on port 43067 09:40:58.068004 Wrote pid 108831 to log/17/server/socks_server.pid 09:40:58.068516 Wrote port 43067 to log/17/server/socks_server.port === End of file socks_server.log === Start of file valgrind703 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind703 startnew: ./server/servers socksd --port 0 --pidfile log/18/server/socks_server.pid --portfile log/18/server/socks_server.port --reqfile log/18/socksd-request.log --logfile log/18/socks_server.log --backend 127.0.0.1 --config log/18/server.cmd RUN: SOCKS server is now running PID 108825 * pid socks => 108825 108825 test 0702...[Attempt connect to non-listening HTTP server via SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind702 ../src/curl -q --output log/18/curl702.out --include --trace-ascii log/18/trace702 --trace-config all --trace-time --socks4 127.0.0.1:35645 http://127.0.0.1:47 > log/18/stdout702 2> log/18/stderr702 curl returned 1, when expecting 97 702: exit FAILED == Contents of files in the log/18/ dir after test 702 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind702 ../src/curl -q --output log/18/curl702.out --include --trace-ascii log/18/trace702 --trace-config all --trace-time --socks4 127.0.0.1:35645 http://127.0.0.1:47 > log/18/stdout702 2> log/18/stderr702 === End of file commands.log === Start of file server.cmd response 91 Testnum 702 === End of file server.cmd === Start of file socks_server.log 09:40:58.051403 Running IPv4 version 09:40:58.052372 Listening on port 35645 09:40:58.052946 Wrote pid 108825 to log/18/server/socks_server.pid 09:40:58.053290 Wrote port 35645 to log/18/server/socks_server.port === End of file socks_server.log === Start of file valgrind702 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the aboCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind700 ../src/curl -q --output log/4/curl700.out --include --trace-ascii log/4/trace700 --trace-config all --trace-time --socks4 127.0.0.1:32783 http://127.0.0.1:43013/700 > log/4/stdout700 2> log/4/stderr700 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind718 ../src/curl -q --output log/36/curl718.out --include --trace-ascii log/36/trace718 --trace-config all --trace-time http://test.remote.haxx.se.718:8990/path/7180002 --proxy http://127.0.0.1:44255 --proxytunnel > log/36/stdout718 2> log/36/stderr718 ve-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind702 startnew: ./server/servers socksd --port 0 --pidfile log/4/server/socks_server.pid --portfile log/4/server/socks_server.port --reqfile log/4/socksd-request.log --logfile log/4/socks_server.log --backend 127.0.0.1 --config log/4/server.cmd RUN: SOCKS server is now running PID 108952 * pid socks => 108952 108952 test 0700...[HTTP GET via SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind700 ../src/curl -q --output log/4/curl700.out --include --trace-ascii log/4/trace700 --trace-config all --trace-time --socks4 127.0.0.1:32783 http://127.0.0.1:43013/700 > log/4/stdout700 2> log/4/stderr700 700: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 700 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind700 ../src/curl -q --output log/4/curl700.out --include --trace-ascii log/4/trace700 --trace-config all --trace-time --socks4 127.0.0.1:32783 http://127.0.0.1:43013/700 > log/4/stdout700 2> log/4/stderr700 === End of file commands.log === Start of file http_server.log 09:40:59.167092 ====> Client connect 09:40:59.167399 accept_connection 3 returned 4 09:40:59.167655 accept_connection 3 returned 0 09:40:59.167811 Read 93 bytes 09:40:59.167916 Process 93 bytes request 09:40:59.168021 Got request: GET /verifiedserver HTTP/1.1 09:40:59.168117 Are-we-friendly question received 09:40:59.168345 Wrote request (93 bytes) input to log/4/server.input 09:40:59.168606 Identifying ourselves as friends 09:40:59.169303 Response sent (56 bytes) and written to log/4/server.response 09:40:59.169422 special request received, no persistency 09:40:59.169578 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 700 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file socks_server.log 09:40:58.225353 Running IPv4 version 09:40:58.225950 Listening on port 32783 09:40:58.226548 Wrote pid 108952 to log/4/server/socks_server.pid 09:40:58.226899 Wrote port 32783 to log/4/server/socks_server.port === End of file socks_server.log === Start of file valgrind700 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind700 test 0718...[HTTP proxy CONNECT (no auth) with proxy returning 407 and closing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind718 ../src/curl -q --output log/36/curl718.out --include --trace-ascii log/36/trace718 --trace-config all --trace-time http://test.remote.haxx.se.718:8990/path/7180002 --proxy http://127.0.0.1:44255 --proxytunnel > log/36/stdout718 2> log/36/stderr718 718: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 718 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind718 ../src/curl -q --output log/36/curl718.out --include --trace-ascii log/36/trace718 --trace-config all --trace-time http://test.remote.haxx.se.718:8990/path/7180002 --proxy http://127.0.0.1:44255 --proxytunnel > log/36/stdout718 2> log/36/stderr718 === End of file commands.log === Start of file http_server.log 09:41:00.164945 ====> Client connect 09:41:00.165300 accept_connection 3 returned 4 09:41:00.165844 accept_connection 3 returned 0 09:41:00.166167 Read 93 bytes 09:41:00.166334 Process 93 bytes request 09:41:00.166605 Got request: GET /verifiedserver HTTP/1.1 09:41:00.166773 Are-we-friendly question received 09:41:00.167211 Wrote request (93 bytes) input to log/36/server.input 09:41:00.169685 Identifying ourselves as friends 09:41:00.170654 Response sent (56 bytes) and written to log/36/server.response 09:41:00.170774 special request received, no persistency 09:41:00.170845 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 718 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind718 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, shCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind701 ../src/curl -q --output log/54/curl701.out --include --trace-ascii log/54/trace701 --trace-config all --trace-time --socks5 127.0.0.1:37055 http://127.0.0.1:44921/701 > log/54/stdout701 2> log/54/stderr701 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind709 ../src/curl -q --output log/10/curl709.out --include --trace-ascii log/10/trace709 --trace-config all --trace-time http://127.0.0.1:36913/709 > log/10/stdout709 2> log/10/stderr709 ort term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind718 startnew: ./server/servers socksd --port 0 --pidfile log/54/server/socks_server.pid --portfile log/54/server/socks_server.port --reqfile log/54/socksd-request.log --logfile log/54/socks_server.log --backend 127.0.0.1 --config log/54/server.cmd RUN: SOCKS server is now running PID 108949 * pid socks => 108949 108949 test 0701...[HTTP GET via SOCKS5 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind701 ../src/curl -q --output log/54/curl701.out --include --trace-ascii log/54/trace701 --trace-config all --trace-time --socks5 127.0.0.1:37055 http://127.0.0.1:44921/701 > log/54/stdout701 2> log/54/stderr701 701: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 701 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind701 ../src/curl -q --output log/54/curl701.out --include --trace-ascii log/54/trace701 --trace-config all --trace-time --socks5 127.0.0.1:37055 http://127.0.0.1:44921/701 > log/54/stdout701 2> log/54/stderr701 === End of file commands.log === Start of file http_server.log 09:40:59.179860 ====> Client connect 09:40:59.180120 accept_connection 3 returned 4 09:40:59.180256 accept_connection 3 returned 0 09:40:59.180380 Read 93 bytes 09:40:59.180572 Process 93 bytes request 09:40:59.180669 Got request: GET /verifiedserver HTTP/1.1 09:40:59.180754 Are-we-friendly question received 09:40:59.180968 Wrote request (93 bytes) input to log/54/server.input 09:40:59.181118 Identifying ourselves as friends 09:40:59.181852 Response sent (56 bytes) and written to log/54/server.response 09:40:59.181944 special request received, no persistency 09:40:59.182006 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 701 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file socks_server.log 09:40:58.226656 Running IPv4 version 09:40:58.227160 Listening on port 37055 09:40:58.230752 Wrote pid 108949 to log/54/server/socks_server.pid 09:40:58.231148 Wrote port 37055 to log/54/server/socks_server.port === End of file socks_server.log === Start of file valgrind701 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind701 startnew: ./server/servers socksd --port 0 --pidfile log/10/server/socks_server.pid --portfile log/10/server/socks_server.port --reqfile log/10/socksd-request.log --logfile log/10/socks_server.log --backend 127.0.0.1 --config log/10/server.cmd RUN: SOCKS server is now running PID 109110 * pid socks => 109110 109110 setenv http_proxy = socks5://127.0.0.1:39119 test 0709...[HTTP GET via SOCKS5 set in http_proxy environment variable] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind709 ../src/curl -q --output log/10/curl709.out --include --trace-ascii log/10/trace709 --trace-config all --trace-time http://127.0.0.1:36913/709 > log/10/stdout709 2> log/10/stderr709 709: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 709 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind709 ../src/curl -q --output log/10/curl709.out --include --trace-ascii log/10/trace709 --trace-config all --trace-time http://127.0.0.1:36913/709 > log/10/stdout709 2> log/10/stderr709 === End of file commands.log === Start of file http_server.log 09:40:59.382964 ====> Client connect 09:40:59.383252 accept_connection 3 returned 4 09:40:59.383415 accept_connection 3 returned 0 09:40:59.384344 Read 93 bytes 09:40:59.384555 Process 93 bytes request 09:40:59.384666 Got request: GET /verifiedserver HTTP/1.1 09:40:59.384765 Are-we-friendly question received 09:40:59.385006 Wrote request (93 bytes) input to log/10/server.input 09:40:59.385217 Identifying ourselves as friends 09:40:59.386939 Response sent (56 bytes) and written to log/10/server.response 09:40:59.387056 special request received, no persistency 09:40:59.387129 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 709 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file socks_server.log 09:40:5CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind710 ../src/curl -q --output log/58/curl710.out --include --trace-ascii log/58/trace710 --trace-config all --trace-time http://127.0.0.1:46727/710 --proxy socks5://127.0.0.1:43307 > log/58/stdout710 2> log/58/stderr710 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind706 ../src/curl -q --output log/6/curl706.out --include --trace-ascii log/6/trace706 --trace-config all --trace-time --socks4 127.0.0.1:33971 ftp://127.0.0.1:34161/ > log/6/stdout706 2> log/6/stderr706 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind708 ../src/curl -q --output log/43/curl708.out --include --trace-ascii log/43/trace708 --trace-config all --trace-time http://127.0.0.1:41267/708 > log/43/stdout708 2> log/43/stderr708 9.441150 Running IPv4 version 09:40:59.441735 Listening on port 39119 09:40:59.442145 Wrote pid 109110 to log/10/server/socks_server.pid 09:40:59.442689 Wrote port 39119 to log/10/server/socks_server.port === End of file socks_server.log === Start of file valgrind709 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind709 startnew: ./server/servers socksd --port 0 --pidfile log/58/server/socks_server.pid --portfile log/58/server/socks_server.port --reqfile log/58/socksd-request.log --logfile log/58/socks_server.log --backend 127.0.0.1 --config log/58/server.cmd RUN: SOCKS server is now running PID 109157 * pid socks => 109157 109157 test 0710...[HTTP GET via SOCKS5 set with --proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind710 ../src/curl -q --output log/58/curl710.out --include --trace-ascii log/58/trace710 --trace-config all --trace-time http://127.0.0.1:46727/710 --proxy socks5://127.0.0.1:43307 > log/58/stdout710 2> log/58/stderr710 710: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 710 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind710 ../src/curl -q --output log/58/curl710.out --include --trace-ascii log/58/trace710 --trace-config all --trace-time http://127.0.0.1:46727/710 --proxy socks5://127.0.0.1:43307 > log/58/stdout710 2> log/58/stderr710 === End of file commands.log === Start of file http_server.log 09:40:59.439160 ====> Client connect 09:40:59.439546 accept_connection 3 returned 4 09:40:59.439725 accept_connection 3 returned 0 09:40:59.439867 Read 93 bytes 09:40:59.439965 Process 93 bytes request 09:40:59.440050 Got request: GET /verifiedserver HTTP/1.1 09:40:59.440139 Are-we-friendly question received 09:40:59.440389 Wrote request (93 bytes) input to log/58/server.input 09:40:59.440650 Identifying ourselves as friends 09:40:59.441356 Response sent (56 bytes) and written to log/58/server.response 09:40:59.441532 special request received, no persistency 09:40:59.441650 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 710 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file socks_server.log 09:40:59.480739 Running IPv4 version 09:40:59.481273 Listening on port 43307 09:40:59.483844 Wrote pid 109157 to log/58/server/socks_server.pid 09:40:59.484162 Wrote port 43307 to log/58/server/socks_server.port === End of file socks_server.log === Start of file valgrind710 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind710 startnew: ./server/servers socksd --port 0 --pidfile log/6/server/socks_server.pid --portfile log/6/server/socks_server.port --reqfile log/6/socksd-request.log --logfile log/6/socks_server.log --backend 127.0.0.1 --config log/6/server.cmd RUN: SOCKS server is now running PID 109146 * pid socks => 109146 109146 test 0706...[FTP dir list PASV via SOCKS4] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind706 ../src/curl -q --output log/6/curl706.out --include --trace-ascii log/6/trace706 --trace-config all --trace-time --socks4 127.0.0.1:33971 ftp://127.0.0.1:34161/ > log/6/stdout706 2> log/6/stderr706 706: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 706 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind706 ../src/curl -q --output log/6/curl706.out --include --trace-ascii log/6/trace706 --trace-config all --trace-time --socks4 127.0.0.1:33971 ftp://127.0.0.1:34161/ > log/6/stdout706 2> log/6/stderr706 === End of file commands.log === Start of file ftp_server.log 09:40:59.083456 ====> Client connect 09:40:59.085964 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:59.087546 < "USER anonymous" 09:40:59.088418 > "331 We are happy you popped in![CR][LF]" 09:40:59.090555 < "PASS ftp@example.com" 09:40:59.091058 > "230 Welcome you silly person[CR][LF]" 09:40:59.093278 < "PWD" 09:40:59.094289 > "257 "/" is current directory[CR][LF]" 09:40:59.096939 < "EPSV" 09:40:59.097638 ====> PassiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind707 ../src/curl -q --output log/9/curl707.out --include --trace-ascii log/9/trace707 --trace-config all --trace-time --socks5 127.0.0.1:45189 ftp://127.0.0.1:36293/ > log/9/stdout707 2> log/9/stderr707 ve DATA channel requested by client 09:40:59.098402 DATA sockfilt for passive data channel starting... 09:40:59.114358 DATA sockfilt for passive data channel started (pid 109088) 09:40:59.115521 DATA sockfilt for passive data channel listens on port 37383 09:40:59.116087 > "229 Entering Passive Mode (|||37383|)[LF]" 09:40:59.116350 Client has been notified that DATA conn will be accepted on port 37383 09:40:59.119039 Client connects to port 37383 09:40:59.119324 ====> Client established passive DATA connection on port 37383 09:40:59.120166 < "TYPE I" 09:40:59.121374 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:59.122318 < "SIZE verifiedserver" 09:40:59.122687 > "213 17[CR][LF]" 09:40:59.125263 < "RETR verifiedserver" 09:40:59.126508 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:59.127475 =====> Closing passive DATA connection... 09:40:59.127702 Server disconnects passive DATA connection 09:40:59.128411 Server disconnected passive DATA connection 09:40:59.128684 DATA sockfilt for passive data channel quits (pid 109088) 09:40:59.130667 DATA sockfilt for passive data channel quit (pid 109088) 09:40:59.131024 =====> Closed passive DATA connection 09:40:59.131704 > "226 File transfer complete[CR][LF]" 09:40:59.168944 < "QUIT" 09:40:59.170189 > "221 bye bye baby[CR][LF]" 09:40:59.174230 MAIN sockfilt said DISC 09:40:59.175146 ====> Client disconnected 09:40:59.175699 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:59.336437 ====> Client connect 09:40:59.338385 Received DATA (on stdin) 09:40:59.338628 > 160 bytes data, server => client 09:40:59.338848 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:59.338993 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:59.339085 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:59.340117 < 16 bytes data, client => server 09:40:59.340265 'USER anonymous\r\n' 09:40:59.341740 Received DATA (on stdin) 09:40:59.341899 > 33 bytes data, server => client 09:40:59.342531 '331 We are happy you popped in!\r\n' 09:40:59.343275 < 22 bytes data, client => server 09:40:59.343428 'PASS ftp@example.com\r\n' 09:40:59.345111 Received DATA (on stdin) 09:40:59.345266 > 30 bytes data, server => client 09:40:59.345364 '230 Welcome you silly person\r\n' 09:40:59.346063 < 5 bytes data, client => server 09:40:59.346231 'PWD\r\n' 09:40:59.347387 Received DATA (on stdin) 09:40:59.347623 > 30 bytes data, server => client 09:40:59.348333 '257 "/" is current directory\r\n' 09:40:59.349381 < 6 bytes data, client => server 09:40:59.349652 'EPSV\r\n' 09:40:59.370440 Received DATA (on stdin) 09:40:59.370694 > 38 bytes data, server => client 09:40:59.370794 '229 Entering Passive Mode (|||37383|)\n' 09:40:59.372301 < 8 bytes data, client => server 09:40:59.372519 'TYPE I\r\n' 09:40:59.374228 Received DATA (on stdin) 09:40:59.374368 > 33 bytes data, server => client 09:40:59.374619 '200 I modify TYPE as you wanted\r\n' 09:40:59.375381 < 21 bytes data, client => server 09:40:59.376825 'SIZE verifiedserver\r\n' 09:40:59.376952 Received DATA (on stdin) 09:40:59.377031 > 8 bytes data, server => client 09:40:59.377107 '213 17\r\n' 09:40:59.378127 < 21 bytes data, client => server 09:40:59.378282 'RETR verifiedserver\r\n' 09:40:59.379370 Received DATA (on stdin) 09:40:59.379590 > 29 bytes data, server => client 09:40:59.379774 '150 Binary junk (17 bytes).\r\n' 09:40:59.385057 Received DATA (on stdin) 09:40:59.385203 > 28 bytes data, server => client 09:40:59.385822 '226 File transfer complete\r\n' 09:40:59.421650 < 6 bytes data, client => server 09:40:59.421850 'QUIT\r\n' 09:40:59.423055 Received DATA (on stdin) 09:40:59.423210 > 18 bytes data, server => client 09:40:59.423398 '221 bye bye baby\r\n' 09:40:59.427643 ====> Client disconnect 09:40:59.428282 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:59.366313 Running IPv4 version 09:40:59.366966 Listening on port 37383 09:40:59.367328 Wrote pid 109088 to log/6/server/ftp_sockdata.pid 09:40:59.367697 Received PING (on stdin) 09:40:59.368614 Received PORT (on stdin) 09:40:59.372018 ====> Client connect 09:40:59.380772 Received DATA (on stdin) 09:40:59.381037 > 17 bytes data, server => client 09:40:59.381143 'WE ROOLZ: 79493\r\n' 09:40:59.381812 Received DISC (on stdin) 09:40:59.382030 ====> Client forcibly disconnected 09:40:59.382911 Received QUIT (on stdin) 09:40:59.383055 quits 09:40:59.383421 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 706 === End of file server.cmd === Start of file socks_server.log 09:40:59.474240 Running IPv4 version 09:40:59.474886 Listening on port 33971 09:40:59.475254 Wrote pid 109146 to log/6/server/socks_server.pid 09:40:59.475762 Wrote port 33971 to log/6/server/socks_server.port === End of file socks_server.log === Start of file valgrind706 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind706 startnew: ./server/servers socksd --port 0 --pidfile log/9/server/socks_server.pid --portfile log/9/server/socks_server.port --reqfile log/9/socksd-request.log --logfile log/9/socks_server.log --backend 127.0.0.1 --config log/9/server.cmd RUN: SOCKS server is now running PID 109167 * pid socks => 109167 109167 test 0707...[FTP dir list PASV via SOCKS5] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind707 ../src/curl -q --output log/9/curl707.out --include --trace-ascii log/9/trace707 --trace-config all --trace-time --socks5 127.0.0.1:45189 ftp://127.0.0.1:36293/ > log/9/stdout707 2> log/9/stderr707 707: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 707 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind707 ../src/curl -q --output log/9/curl707.out --include --trace-ascii log/9/trace707 --trace-config all --trace-time --socks5 127.0.0.1:45189 ftp://127.0.0.1:36293/ > log/9/stdout707 2> log/9/stderr707 === End of file commands.log === Start of file ftp_server.log 09:40:59.106155 ====> Client connect 09:40:59.108693 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:59.109718 < "USER anonymous" 09:40:59.110983 > "331 We are happy you popped in![CR][LF]" 09:40:59.113561 < "PASS ftp@example.com" 09:40:59.114436 > "230 Welcome you silly person[CR][LF]" 09:40:59.116483 < "PWD" 09:40:59.117406 > "257 "/" is current directory[CR][LF]" 09:40:59.119339 < "EPSV" 09:40:59.119608 ====> Passive DATA channel requested by client 09:40:59.119905 DATA sockfilt for passive data channel starting... 09:40:59.131664 DATA sockfilt for passive data channel started (pid 109097) 09:40:59.132980 DATA sockfilt for passive data channel listens on port 43611 09:40:59.133512 > "229 Entering Passive Mode (|||43611|)[LF]" 09:40:59.133911 Client has been notified that DATA conn will be accepted on port 43611 09:40:59.135704 Client connects to port 43611 09:40:59.136159 ====> Client established passive DATA connection on port 43611 09:40:59.137228 < "TYPE I" 09:40:59.137901 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:59.141230 < "SIZE verifiedserver" 09:40:59.141666 > "213 17[CR][LF]" 09:40:59.146225 < "RETR verifiedserver" 09:40:59.146833 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:59.148875 =====> Closing passive DATA connection... 09:40:59.149155 Server disconnects passive DATA connection 09:40:59.150093 Server disconnected passive DATA connection 09:40:59.150388 DATA sockfilt for passive data channel quits (pid 109097) 09:40:59.152390 DATA sockfilt for passive data channel quit (pid 109097) 09:40:59.152737 =====> Closed passive DATA connection 09:40:59.153209 > "226 File transfer complete[CR][LF]" 09:40:59.189448 < "QUIT" 09:40:59.191653 > "221 bye bye baby[CR][LF]" 09:40:59.196635 MAIN sockfilt said DISC 09:40:59.197709 ====> Client disconnected 09:40:59.198389 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:58.358670 ====> Client connect 09:40:58.361040 Received DATA (on stdin) 09:40:58.361207 > 160 bytes data, server => client 09:40:58.361414 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:58.361628 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:58.361716 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:58.362685 < 16 bytes data, client => server 09:40:58.362851 'USER anonymous\r\n' 09:40:58.364001 Received DATA (on stdin) 09:40:58.364194 > 33 bytes data, server => client 09:40:58.365317 '331 We are happy you popped in!\r\n' 09:40:58.366354 < 22 bytes data, client => server 09:40:58.366577 'PASS ftp@example.com\r\n' 09:40:58.367759 Received DATA (on stdin) 09:40:58.367910 > 30 bytes data, server => client 09:40:58.368526 '230 Welcome you silly person\r\n' 09:40:58.369292 < 5 bytes data, client => server 09:40:58.369525 'PWD\r\n' 09:40:58.370747 Received DATA (on stdin) 09:40:58.370897 > 30 bytes data, server => client 09:40:58.371423 '257 "/" is current directory\r\n' 09:40:58.372242 < 6 bytes data, client => server 09:40:58.372387 'EPSV\r\n' 09:40:58.387570 Received DATA (on stdin) 09:40:58.387758 > 38 bytes data, server => client 09:40:58.387892 '229 Entering Passive Mode (|||43611|)\n' 09:40:58.389248 < 8 bytes data, client => server 09:40:58.389410 'TYPE I\r\n' 09:40:58.391514 Received DATA (on stdin) 09:40:58.391711 > 33 bytes data, server => client 09:40:58.391823 '200 I modify TYPE as you wanted\r\n' 09:40:58.394143 < 21 bytes data, client => server 09:40:58.394363 'SIZE verifiedserver\r\n' 09:40:58.395371 Received DATA (on stdin) 09:40:58.395595 > 8 bytes data, server => client 09:40:58.395713 '213 17\r\n' 09:40:58.398687 < 21 bytes data, client => server 09:40:58.398877 'RETR verifiedserver\r\n' 09:40:58.400435 Received DATA (on stdin) 09:40:58.400702 > 29 bytes data, server => client 09:40:58.400816 '150 Binary junk (17 bytes).\r\n' 09:40:58.406895 Received DATA (on stdin) 09:40:58.407065 > 28 bytes data, server => client 09:40:58.407176 '226 File transfer complete\r\n' 09:40:58.442600 < 6 bytes data, client => server 09:40:58.442776 'QUIT\r\n' 09:40:58.445856 Received DATA (on stdin) 09:40:58.446078 > 18 bytes data, server => client 09:40:58.446247 '221 bye bye baby\r\n' 09:40:58.449125 ====> Client disconnect 09:40:58.450775 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:59.384097 Running IPv4 version 09:40:59.384628 Listening on port 43611 09:40:59.384976 Wrote pid 109097 to log/9/server/ftp_sockdata.pid 09:40:59.385117 Received PING (on stdin) 09:40:59.385931 Received PORT (on stdin) 09:40:59.389056 ====> Client connect 09:40:59.401029 Received DATA (on stdin) 09:40:59.401193 > 17 bytes data, server => client 09:40:59.401401 'WE ROOLZ: 77386\r\n' 09:40:59.403111 Received DISC (on stdin) 09:40:59.403252 ====> Client forcibly disconnected 09:40:59.404319 Received QUIT (on stdin) 09:40:59.404506 quits 09:40:59.404927 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 707 === End of file server.cmd === Start of file socks_server.log 09:40:59.490625 Running IPv4 version 09:40:59.491210 Listening on port 45189 09:40:59.491645 Wrote pid 109167 to log/9/server/socks_server.pid 09:40:59.491989 Wrote port 45189 to log/9/server/socks_server.port === End of file socks_server.log === Start of file valgrind707 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind707 startnew: ./server/servers socksd --port 0 --pidfile log/43/server/socks_server.pid --portfile log/43/server/socks_server.port --reqfile log/43/socksd-request.log --logfile log/43/socks_server.log --backend 127.0.0.1 --config log/43/server.cmd RUN: SOCKS server is now running PID 109117 * pid socks => 109117 109117 setenv all_proxy = socks4://127.0.0.1:46733 test 0708...[HTTP GET via SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind708 ../src/curl -q --output log/43/curl708.out --include --trace-ascii log/43/trace708 --trace-config all --trace-time http://127.0.0.1:41267/708 > log/43/stdout708 2> log/43/stderr708 708: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 708 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind708 ../src/curl -q --output log/43/curl708.out --include --trace-ascii log/43/trace708 --trace-config all --trace-time http://127.0.0.1:41267/708 > log/43/stdout708 2> log/43/stderr708 === End of file commands.log === Start of file http_server.log 09:40:59.382976 ====> Client connect 09:40:59.383262 accept_connection 3 returned 4 09:40:59.383430 accept_connection 3 returned 0 09:40:59.388305 Read 9CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind712 ../src/curl -q --output log/39/curl712.out --include --trace-ascii log/39/trace712 --trace-config all --trace-time ftp://127.0.0.1:35393/712 --proxy socks5://127.0.0.1:45999 > log/39/stdout712 2> log/39/stderr712 3 bytes 09:40:59.388539 Process 93 bytes request 09:40:59.388669 Got request: GET /verifiedserver HTTP/1.1 09:40:59.388761 Are-we-friendly question received 09:40:59.389007 Wrote request (93 bytes) input to log/43/server.input 09:40:59.389196 Identifying ourselves as friends 09:40:59.389911 Response sent (56 bytes) and written to log/43/server.response 09:40:59.390035 special request received, no persistency 09:40:59.390109 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 708 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file socks_server.log 09:40:59.440001 Running IPv4 version 09:40:59.440681 Listening on port 46733 09:40:59.441167 Wrote pid 109117 to log/43/server/socks_server.pid 09:40:59.441624 Wrote port 46733 to log/43/server/socks_server.port === End of file socks_server.log === Start of file valgrind708 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind708 startnew: ./server/servers socksd --port 0 --pidfile log/39/server/socks_server.pid --portfile log/39/server/socks_server.port --reqfile log/39/socksd-request.log --logfile log/39/socks_server.log --backend 127.0.0.1 --config log/39/server.cmd RUN: SOCKS server is now running PID 109352 * pid socks => 109352 109352 test 0712...[FTP fetch with --proxy set to socks5://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind712 ../src/curl -q --output log/39/curl712.out --include --trace-ascii log/39/trace712 --trace-config all --trace-time ftp://127.0.0.1:35393/712 --proxy socks5://127.0.0.1:45999 > log/39/stdout712 2> log/39/stderr712 712: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 712 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind712 ../src/curl -q --output log/39/curl712.out --include --trace-ascii log/39/trace712 --trace-config all --trace-time ftp://127.0.0.1:35393/712 --proxy socks5://127.0.0.1:45999 > log/39/stdout712 2> log/39/stderr712 === End of file commands.log === Start of file ftp_server.log 09:40:59.398207 ====> Client connect 09:40:59.399732 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:59.402016 < "USER anonymous" 09:40:59.402438 > "331 We are happy you popped in![CR][LF]" 09:40:59.404672 < "PASS ftp@example.com" 09:40:59.405461 > "230 Welcome you silly person[CR][LF]" 09:40:59.407329 < "PWD" 09:40:59.408498 > "257 "/" is current directory[CR][LF]" 09:40:59.409596 < "EPSV" 09:40:59.410032 ====> Passive DATA channel requested by client 09:40:59.410290 DATA sockfilt for passive data channel starting... 09:40:59.428010 DATA sockfilt for passive data channel started (pid 109317) 09:40:59.429092 DATA sockfilt for passive data channel listens on port 44673 09:40:59.429605 > "229 Entering Passive Mode (|||44673|)[LF]" 09:40:59.430156 Client has been notified that DATA conn will be accepted on port 44673 09:40:59.431641 Client connects to port 44673 09:40:59.431990 ====> Client established passive DATA connection on port 44673 09:40:59.432868 < "TYPE I" 09:40:59.433294 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:59.435372 < "SIZE verifiedserver" 09:40:59.436091 > "213 17[CR][LF]" 09:40:59.438450 < "RETR verifiedserver" 09:40:59.439316 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:59.440130 =====> Closing passive DATA connection... 09:40:59.440358 Server disconnects passive DATA connection 09:40:59.442533 Server disconnected passive DATA connection 09:40:59.442895 DATA sockfilt for passive data channel quits (pid 109317) 09:40:59.444933 DATA sockfilt for passive data channel quit (pid 109317) 09:40:59.445191 =====> Closed passive DATA connection 09:40:59.445513 > "226 File transfer complete[CR][LF]" 09:40:59.485149 < "QUIT" 09:40:59.486331 > "221 bye bye baby[CR][LF]" 09:40:59.490286 MAIN sockfilt said DISC 09:40:59.491498 ====> Client disconnected 09:40:59.492153 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:59.651098 ====> Client connect 09:40:59.653433 Received DATA (on stdin) 09:40:59.653661 > 160 bytes data, server => client 09:40:59.653761 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:59.653848 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:59.653927 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:59.654763 < 16 bytes data, client => server 09:40:59.654909 'USER anonymous\r\n' 09:40:59.656530 Received DATA (on stdin) 09:40:59.656677 > 33 bytes data, server => client 09:40:59.656768 '331 We are happy you popped in!\r\n' 09:40:59.657516 < 22 bytes data, client => server 09:40:59.657663 'PASS ftp@example.com\r\n' 09:40:59.658836 Received DATA (on stdin) 09:40:59.658970 > 30 bytes data, server => client 09:40:59.659528 '230 Welcome you silly person\r\n' 09:40:59.660233 < 5 bytes data, client => server 09:40:59.660375 'PWD\r\n' 09:40:59.661373 Received DATA (on stdin) 09:40:59.661580 > 30 bytes data, server => client 09:40:59.661782 '257 "/" is current directory\r\n' 09:40:59.662531 < 6 bytes data, client => server 09:40:59.662669 'EPSV\r\n' 09:40:59.683277 Received DATA (on stdin) 09:40:59.683685 > 38 bytes data, server => client 09:40:59.683952 '229 Entering Passive Mode (|||44673|)\n' 09:40:59.685322 < 8 bytes data, client => server 09:40:59.685511 'TYPE I\r\n' 09:40:59.687301 Received DATA (on stdin) 09:40:59.687440 > 33 bytes data, server => client 09:40:59.687626 '200 I modify TYPE as you wanted\r\n' 09:40:59.688327 < 21 bytes data, client => server 09:40:59.688533 'SIZE verifiedserver\r\n' 09:40:59.690151 Received DATA (on stdin) 09:40:59.690310 > 8 bytes data, server => client 09:40:59.690415 '213 17\r\n' 09:40:59.691233 log/31/stdout711 2> log/31/stderr711 21 bytes data, client => server 09:40:59.691404 'RETR verifiedserver\r\n' 09:40:59.692649 Received DATA (on stdin) 09:40:59.692796 > 29 bytes data, server => client 09:40:59.694289 '150 Binary junk (17 bytes).\r\n' 09:40:59.699582 Received DATA (on stdin) 09:40:59.699722 > 28 bytes data, server => client 09:40:59.699801 '226 File transfer complete\r\n' 09:40:59.737515 < 6 bytes data, client => server 09:40:59.737754 'QUIT\r\n' 09:40:59.739237 Received DATA (on stdin) 09:40:59.739382 > 18 bytes data, server => client 09:40:59.739639 '221 bye bye baby\r\n' 09:40:59.743600 ====> Client disconnect 09:40:59.744394 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:59.677725 Running IPv4 version 09:40:59.678353 Listening on port 44673 09:40:59.678846 Wrote pid 109317 to log/39/server/ftp_sockdata.pid 09:40:59.679063 Received PING (on stdin) 09:40:59.682140 Received PORT (on stdin) 09:40:59.685091 ====> Client connect 09:40:59.694695 Received DATA (on stdin) 09:40:59.694838 > 17 bytes data, server => client 09:40:59.694911 'WE ROOLZ: 77518\r\n' 09:40:59.695152 Received DISC (on stdin) 09:40:59.695298 ====> Client forcibly disconnected 09:40:59.696903 Received QUIT (on stdin) 09:40:59.697022 quits 09:40:59.697555 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 712 === End of file server.cmd === Start of file socks_server.log 09:40:59.782123 Running IPv4 version 09:40:59.783017 Listening on port 45999 09:40:59.783402 Wrote pid 109352 to log/39/server/socks_server.pid 09:40:59.783835 Wrote port 45999 to log/39/server/socks_server.port === End of file socks_server.log === Start of file valgrind712 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind712 startnew: ./server/servers socksd --port 0 --pidfile log/31/server/socks_server.pid --portfile log/31/server/socks_server.port --reqfile log/31/socksd-request.log --logfile log/31/socks_server.log --backend 127.0.0.1 --config log/31/server.cmd RUN: SOCKS server is now running PID 109342 * pid socks => 109342 109342 setenv all_proxy = socks5://127.0.0.1:43465 test 0711...[FTP fetch with all_proxy set to socks5] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind711 ../src/curl -q --output log/31/curl711.out --include --trace-ascii log/31/trace711 --trace-config all --trace-time ftp://127.0.0.1:40969/711 > log/31/stdout711 2> log/31/stderr711 711: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 711 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind711 ../src/curl -q --output log/31/curl711.out --include --trace-ascii log/31/trace711 --trace-config all --trace-time ftp://127.0.0.1:40969/711 > log/31/stdout711 2> log/31/stderr711 === End of file commands.log === Start of file ftp_server.log 09:40:59.343109 ====> Client connect 09:40:59.345729 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:59.348022 < "USER anonymous" 09:40:59.352133 > "331 We are happy you popped in![CR][LF]" 09:40:59.353127 < "PASS ftp@example.com" 09:40:59.353549 > "230 Welcome you silly person[CR][LF]" 09:40:59.355874 < "PWD" 09:40:59.357390 > "257 "/" is current directory[CR][LF]" 09:40:59.358714 < "EPSV" 09:40:59.359137 ====> Passive DATA channel requested by client 09:40:59.359338 DATA sockfilt for passive data channel starting... 09:40:59.372278 DATA sockfilt for passive data channel started (pid 109280) 09:40:59.373328 DATA sockfilt for passive data channel listens on port 45203 09:40:59.374728 > "229 Entering Passive Mode (|||45203|)[LF]" 09:40:59.375089 Client has been notified that DATA conn will be accepted on port 45203 09:40:59.375843 Client connects to port 45203 09:40:59.376177 ====> Client established passive DATA connection on port 45203 09:40:59.377885 < "TYPE I" 09:40:59.379168 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:59.380863 < "SIZE verifiedserver" 09:40:59.382120 > "213 18[CR][LF]" 09:40:59.383925 < "RETR verifiedserver" 09:40:59.385271 > "150 Binary junk (18 bytes).[CR][LF]" 09:40:59.386135 =====> Closing passive DATA connection... 09:40:59.386353 Server disconnects passive DATA connection 09:40:59.388625 Server disconnected passive DATA connection 09:40:59.388980 DATA sockfilt for passive data channel quits (pid 109280) 09:40:59.390933 DATA sockfilt for passive data channel quit (pid 109280) 09:40:59.391238 =====> Closed passive DATA connection 09:40:59.391588 > "226 File transfer complete[CR][LF]" 09:40:59.427877 < "QUIT" 09:40:59.429287 > "221 bye bye baby[CR][LF]" 09:40:59.433149 MAIN sockfilt said DISC 09:40:59.434023 ====> Client disconnected 09:40:59.434552 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:59.596140 ====> Client connect 09:40:59.598275 Received DATA (on stdin) 09:40:59.598437 > 160 bytes data, server => client 09:40:59.598720 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:59.598878 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:59.598969 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:59.600204 < 16 bytes data, client => server 09:40:59.600396 'USER anonymous\r\n' 09:40:59.602169 Received DATA (on stdin) 09:40:59.602318 > 33 bytes data, server => client 09:40:59.602541 '331 We are happy you popped in!\r\n' 09:40:59.605084 < 22 bytes data, client => server 09:40:59.605252 'PASS ftp@example.com\r\n' 09:40:59.607666 Received DATA (on stdin) 09:40:59.607814 > 30 bytes data, server => client 09:40:59.607906 '230 Welcome you silly person\r\n' 09:40:59.608599 < 5 bytes data, client => server 09:40:59.608742 'PWD\r\n' 09:40:59.610031 Received DATA (on stdin) 09:40:59.610180 > 30 bytes data, server => client 09:40:59.610347 '257 "/" is current directory\r\n' 09:40:59.615548 < 6 bytes data, client => server 09:40:59.615720 'EPSV\r\n' 09:40:59.627524 Received DATA (on stdin) 09:40:59.627689 > 38 bytes data, server => client 09:40:59.627880 '229 Entering Passive Mode (|||45203|)\n' 09:40:59.630616 < 8 bytes data, client => server 09:40:59.630767 'TYPE I\r\n' 09:40:59.631998 Received DATA (on stdin) 09:40:59.632145 > 33 bytes data, server => client 09:40:59.632330 '200 I modify TYPE as you wanted\r\n'CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind713 ../src/curl -q --output log/63/curl713.out --include --trace-ascii log/63/trace713 --trace-config all --trace-time ftp://ftp.example.com/713 --connect-to ::127.0.0.1:33267 --proxy socks5://127.0.0.1:33969 > log/63/stdout713 2> log/63/stderr713 09:40:59.633693 < 21 bytes data, client => server 09:40:59.633854 'SIZE verifiedserver\r\n' 09:40:59.635008 Received DATA (on stdin) 09:40:59.635157 > 8 bytes data, server => client 09:40:59.635331 '213 18\r\n' 09:40:59.636963 < 21 bytes data, client => server 09:40:59.637131 'RETR verifiedserver\r\n' 09:40:59.638049 Received DATA (on stdin) 09:40:59.638191 > 29 bytes data, server => client 09:40:59.638377 '150 Binary junk (18 bytes).\r\n' 09:40:59.645718 Received DATA (on stdin) 09:40:59.645875 > 28 bytes data, server => client 09:40:59.646020 '226 File transfer complete\r\n' 09:40:59.680576 < 6 bytes data, client => server 09:40:59.680777 'QUIT\r\n' 09:40:59.682013 Received DATA (on stdin) 09:40:59.682176 > 18 bytes data, server => client 09:40:59.682398 '221 bye bye baby\r\n' 09:40:59.686579 ====> Client disconnect 09:40:59.687178 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:59.624354 Running IPv4 version 09:40:59.624992 Listening on port 45203 09:40:59.625417 Wrote pid 109280 to log/31/server/ftp_sockdata.pid 09:40:59.625694 Received PING (on stdin) 09:40:59.626496 Received PORT (on stdin) 09:40:59.629180 ====> Client connect 09:40:59.640620 Received DATA (on stdin) 09:40:59.640778 > 18 bytes data, server => client 09:40:59.640871 'WE ROOLZ: 100730\r\n' 09:40:59.641210 Received DISC (on stdin) 09:40:59.641378 ====> Client forcibly disconnected 09:40:59.642986 Received QUIT (on stdin) 09:40:59.643117 quits 09:40:59.643617 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 711 === End of file server.cmd === Start of file socks_server.log 09:40:59.733881 Running IPv4 version 09:40:59.734587 Listening on port 43465 09:40:59.735066 Wrote pid 109342 to log/31/server/socks_server.pid 09:40:59.735563 Wrote port 43465 to log/31/server/socks_server.port === End of file socks_server.log === Start of file valgrind711 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind711 startnew: ./server/servers socksd --port 0 --pidfile log/63/server/socks_server.pid --portfile log/63/server/socks_server.port --reqfile log/63/socksd-request.log --logfile log/63/socks_server.log --backend 127.0.0.1 --config log/63/server.cmd RUN: SOCKS server is now running PID 109369 * pid socks => 109369 109369 test 0713...[FTP fetch with --proxy set to socks5:// and with --connect-to] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind713 ../src/curl -q --output log/63/curl713.out --include --trace-ascii log/63/trace713 --trace-config all --trace-time ftp://ftp.example.com/713 --connect-to ::127.0.0.1:33267 --proxy socks5://127.0.0.1:33969 > log/63/stdout713 2> log/63/stderr713 713: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 713 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind713 ../src/curl -q --output log/63/curl713.out --include --trace-ascii log/63/trace713 --trace-config all --trace-time ftp://ftp.example.com/713 --connect-to ::127.0.0.1:33267 --proxy socks5://127.0.0.1:33969 > log/63/stdout713 2> log/63/stderr713 === End of file commands.log === Start of file ftp_server.log 09:40:59.501312 ====> Client connect 09:40:59.504349 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:59.506131 < "USER anonymous" 09:40:59.507470 > "331 We are happy you popped in![CR][LF]" 09:40:59.508831 < "PASS ftp@example.com" 09:40:59.510051 > "230 Welcome you silly person[CR][LF]" 09:40:59.511230 < "PWD" 09:40:59.512643 > "257 "/" is current directory[CR][LF]" 09:40:59.514074 < "EPSV" 09:40:59.514331 ====> Passive DATA channel requested by client 09:40:59.514512 DATA sockfilt for passive data channel starting... 09:40:59.525512 DATA sockfilt for passive data channel started (pid 109356) 09:40:59.526659 DATA sockfilt for passive data channel listens on port 34461 09:40:59.527199 > "229 Entering Passive Mode (|||34461|)[LF]" 09:40:59.527475 Client has been notified that DATA conn will be accepted on port 34461 09:40:59.530210 Client connects to port 34461 09:40:59.530524 ====> Client established passive DATA connection on port 34461 09:40:59.531634 < "TYPE I" 09:40:59.532528 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:59.534452 < "SIZE verifiedserver" 09:40:59.535261 > "213 17[CR][LF]" 09:40:59.537173 < "RETR verifiedserver" 09:40:59.538465 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:59.539331 =====> Closing passive DATA connection... 09:40:59.539561 Server disconnects passive DATA connection 09:40:59.540238 Server disconnected passive DATA connection 09:40:59.540516 DATA sockfilt for passive data channel quits (pid 109356) 09:40:59.542346 DATA sockfilt for passive data channel quit (pid 109356) 09:40:59.542590 =====> Closed passive DATA connection 09:40:59.543336 > "226 File transfer complete[CR][LF]" 09:40:59.581642 < "QUIT" 09:40:59.583689 > "221 bye bye baby[CR][LF]" 09:40:59.587554 MAIN sockfilt said DISC 09:40:59.589211 ====> Client disconnected 09:40:59.590079 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:59.754332 ====> Client connect 09:40:59.756612 Received DATA (on stdin) 09:40:59.756829 > 160 bytes data, server => client 09:40:59.757095 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:59.757259 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:59.757378 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:59.758224 < 16 bytes data, client => server 09:40:59.758406 'USER anonymous\r\n' 09:40:59.760219 Received DATA (on stdin) 09:40:59.760382 > 33 bytes data, server => client 09:40:59.760705 '331 We are happy you popped in!\r\n' 09:40:59.761410 < 22 bytes data, client => server 09:40:59.761671 'PASS ftp@example.com\r\n' 09:40:59.762942 Received DATA (on stdin) 09:40:59.763091 > 30 bytes data, server => client 09:40:59.763271 '230 Welcome you silly person\r\n' 09:40:59.764123 < 5 bytes data, client => server 09:40:59.764260 'PWD\r\n' 09:40:59.765366 Received DATA (on stdin) 09:40:59.765610 > 30 bytes data, server => client 09:40:59.765826 '257 "/" is current directory\r\n' 09:40:59.766619 < 6 bytes data, client => server 09:40:59.766796 'EPSV\r\n' 09:40:59.781565 Received DATA (on sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind716 ../src/curl -q --output log/30/curl716.out --include --trace-ascii log/30/trace716 --trace-config all --trace-time http://hohoho.example.com:99/716 -x socks5://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:b@127.0.0.1:46473 > log/30/stdout716 2> log/30/stderr716 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind719 ../src/curl -q --output log/17/curl719.out --include --trace-ascii log/17/trace719 --trace-config all --trace-time http://[2200::33]:44383/719 --proxy socks5h://127.0.0.1:43067 > log/17/stdout719 2> log/17/stderr719 tdin) 09:40:59.781730 > 38 bytes data, server => client 09:40:59.781828 '229 Entering Passive Mode (|||34461|)\n' 09:40:59.783542 < 8 bytes data, client => server 09:40:59.783696 'TYPE I\r\n' 09:40:59.785835 Received DATA (on stdin) 09:40:59.785993 > 33 bytes data, server => client 09:40:59.786567 '200 I modify TYPE as you wanted\r\n' 09:40:59.787311 < 21 bytes data, client => server 09:40:59.787549 'SIZE verifiedserver\r\n' 09:40:59.788624 Received DATA (on stdin) 09:40:59.788776 > 8 bytes data, server => client 09:40:59.789260 '213 17\r\n' 09:40:59.790028 < 21 bytes data, client => server 09:40:59.790181 'RETR verifiedserver\r\n' 09:40:59.791284 Received DATA (on stdin) 09:40:59.791432 > 29 bytes data, server => client 09:40:59.791705 '150 Binary junk (17 bytes).\r\n' 09:40:59.796684 Received DATA (on stdin) 09:40:59.796838 > 28 bytes data, server => client 09:40:59.797335 '226 File transfer complete\r\n' 09:40:59.834424 < 6 bytes data, client => server 09:40:59.834674 'QUIT\r\n' 09:40:59.836042 Received DATA (on stdin) 09:40:59.836291 > 18 bytes data, server => client 09:40:59.836701 '221 bye bye baby\r\n' 09:40:59.840780 ====> Client disconnect 09:40:59.841883 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:59.777610 Running IPv4 version 09:40:59.778247 Listening on port 34461 09:40:59.778709 Wrote pid 109356 to log/63/server/ftp_sockdata.pid 09:40:59.778874 Received PING (on stdin) 09:40:59.779786 Received PORT (on stdin) 09:40:59.783211 ====> Client connect 09:40:59.792709 Received DATA (on stdin) 09:40:59.792863 > 17 bytes data, server => client 09:40:59.792953 'WE ROOLZ: 77431\r\n' 09:40:59.793650 Received DISC (on stdin) 09:40:59.793847 ====> Client forcibly disconnected 09:40:59.794573 Received QUIT (on stdin) 09:40:59.794728 quits 09:40:59.795130 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 713 === End of file server.cmd === Start of file socks_server.log 09:40:59.879178 Running IPv4 version 09:40:59.879851 Listening on port 33969 09:40:59.880239 Wrote pid 109369 to log/63/server/socks_server.pid 09:40:59.880686 Wrote port 33969 to log/63/server/socks_server.port === End of file socks_server.log === Start of file valgrind713 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind713 startnew: ./server/servers socksd --port 0 --pidfile log/30/server/socks_server.pid --portfile log/30/server/socks_server.port --reqfile log/30/socksd-request.log --logfile log/30/socks_server.log --backend 127.0.0.1 --config log/30/server.cmd RUN: SOCKS server is now running PID 109387 * pid socks => 109387 109387 test 0716...[SOCKS5 proxy with too long user name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind716 ../src/curl -q --output log/30/curl716.out --include --trace-ascii log/30/trace716 --trace-config all --trace-time http://hohoho.example.com:99/716 -x socks5://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:b@127.0.0.1:46473 > log/30/stdout716 2> log/30/stderr716 curl returned 1, when expecting 97 716: exit FAILED == Contents of files in the log/30/ dir after test 716 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind716 ../src/curl -q --output log/30/curl716.out --include --trace-ascii log/30/trace716 --trace-config all --trace-time http://hohoho.example.com:99/716 -x socks5://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:b@127.0.0.1:46473 > log/30/stdout716 2> log/30/stderr716 === End of file commands.log === Start of file server.cmd method 2 Testnum 716 === End of file server.cmd === Start of file socks_server.log 09:40:59.941698 Running IPv4 version 09:40:59.942302 Listening on port 46473 09:40:59.942870 Wrote pid 109387 to log/30/server/socks_server.pid 09:40:59.943237 Wrote port 46473 to log/30/server/socks_server.port === End of file socks_server.log === Start of file valgrind716 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind716 test 0719...[HTTP GET with IPv6 numerical via SOCKS5h] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind719 ../src/curl -q --output log/17/curl719.out --include --trace-ascii log/17/trace719 --trace-config all --trace-time http://[2200::33]:44383/719 --proxy socks5h://127.0.0.1:43067 > log/17/stdout719 2> log/17/stderr719 719: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 719 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/buCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind720 ../src/curl -q --output log/18/curl720.out --include --trace-ascii log/18/trace720 --trace-config all --trace-time http://12.34.56.78:41285/720 --proxy socks5h://127.0.0.1:35645 > log/18/stdout720 2> log/18/stderr720 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind721 ../src/curl -q --output log/4/curl721.out --include --trace-ascii log/4/trace721 --trace-config all --trace-time http://this.is.a.host.name:43013/721 --proxy socks5h://127.0.0.1:32783 > log/4/stdout721 2> log/4/stderr721 ild/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind719 ../src/curl -q --output log/17/curl719.out --include --trace-ascii log/17/trace719 --trace-config all --trace-time http://[2200::33]:44383/719 --proxy socks5h://127.0.0.1:43067 > log/17/stdout719 2> log/17/stderr719 === End of file commands.log === Start of file http_server.log 09:41:00.895837 ====> Client connect 09:41:00.896171 accept_connection 3 returned 4 09:41:00.896357 accept_connection 3 returned 0 09:41:00.897288 Read 93 bytes 09:41:00.897508 Process 93 bytes request 09:41:00.897649 Got request: GET /verifiedserver HTTP/1.1 09:41:00.897758 Are-we-friendly question received 09:41:00.898027 Wrote request (93 bytes) input to log/17/server.input 09:41:00.898240 Identifying ourselves as friends 09:41:00.899084 Response sent (56 bytes) and written to log/17/server.response 09:41:00.899206 special request received, no persistency 09:41:00.899284 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 719 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind719 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind719 test 0720...[HTTP GET with IPv4 numerical via SOCKS5h] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind720 ../src/curl -q --output log/18/curl720.out --include --trace-ascii log/18/trace720 --trace-config all --trace-time http://12.34.56.78:41285/720 --proxy socks5h://127.0.0.1:35645 > log/18/stdout720 2> log/18/stderr720 720: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 720 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind720 ../src/curl -q --output log/18/curl720.out --include --trace-ascii log/18/trace720 --trace-config all --trace-time http://12.34.56.78:41285/720 --proxy socks5h://127.0.0.1:35645 > log/18/stdout720 2> log/18/stderr720 === End of file commands.log === Start of file http_server.log 09:41:00.963604 ====> Client connect 09:41:00.963917 accept_connection 3 returned 4 09:41:00.964058 accept_connection 3 returned 0 09:41:00.964175 Read 93 bytes 09:41:00.964266 Process 93 bytes request 09:41:00.964357 Got request: GET /verifiedserver HTTP/1.1 09:41:00.964523 Are-we-friendly question received 09:41:00.964795 Wrote request (93 bytes) input to log/18/server.input 09:41:00.964976 Identifying ourselves as friends 09:41:00.965857 Response sent (56 bytes) and written to log/18/server.response 09:41:00.965974 special request received, no persistency 09:41:00.966045 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 720 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind720 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind720 test 0721...[HTTP GET with host name using SOCKS5h] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind721 ../src/curl -q --output log/4/curl721.out --include --trace-ascii log/4/trace721 --trace-config all --trace-time http://this.is.a.host.name:43013/721 --proxy socks5h://127.0.0.1:32783 > log/4/stdout721 2> log/4/stderr721 721: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 721 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind721 ../src/curl -q --output log/4/curl721.out --include --trace-ascii log/4/trace721 --trace-config all --trace-time http://this.is.a.host.name:43013/721 --proxy socks5h://127.0.0.1:32783 > log/4/stdout721 2> log/4/stderr721 === End of file commands.log === StarCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind723 ../src/curl -q --output log/54/curl723.out --include --trace-ascii log/54/trace723 --trace-config all --trace-time --ipfs-gateway http://nonexisting,local:8080 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/54/stdout723 2> log/54/stderr723 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind714 ../src/curl -q --output log/35/curl714.out --include --trace-ascii log/35/trace714 --trace-config all --trace-time ftp://ftp.example.com.714/714 --connect-to ::connect.example.com.714:39447 --proxytunnel --proxy http://127.0.0.1:41019 > log/35/stdout714 2> log/35/stderr714 t of file http_server.log 09:41:01.036863 ====> Client connect 09:41:01.037177 accept_connection 3 returned 4 09:41:01.037335 accept_connection 3 returned 0 09:41:01.038235 Read 93 bytes 09:41:01.038375 Process 93 bytes request 09:41:01.038521 Got request: GET /verifiedserver HTTP/1.1 09:41:01.038627 Are-we-friendly question received 09:41:01.038861 Wrote request (93 bytes) input to log/4/server.input 09:41:01.039049 Identifying ourselves as friends 09:41:01.043702 Response sent (56 bytes) and written to log/4/server.response 09:41:01.043833 special request received, no persistency 09:41:01.043909 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 721 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind721 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind721 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/35/server/http2_server.pid" --logfile "log/35/http2_server.log" --logdir "log/35" --portfile log/35/server/http2_server.port --config log/35/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 109407 port 41019 * pid http-proxy => 109407 109407 test 0714...[FTP fetch with --proxy set to http:// and with --connect-to] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind714 ../src/curl -q --output log/35/curl714.out --include --trace-ascii log/35/trace714 --trace-config all --trace-time ftp://ftp.example.com.714/714 --connect-to ::connect.example.com.714:39447 --proxytunnel --proxy http://127.0.0.1:41019 > log/35/stdout714 2> log/35/stderr714 714: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 714 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind714 ../src/curl -q --output log/35/curl714.out --include --trace-ascii log/35/trace714 --trace-config all --trace-time ftp://ftp.example.com.714/714 --connect-to ::connect.example.com.714:39447 --proxytunnel --proxy http://127.0.0.1:41019 > log/35/stdout714 2> log/35/stderr714 === End of file commands.log === Start of file ftp_server.log 09:40:59.711224 ====> Client connect 09:40:59.712936 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:59.716306 < "USER anonymous" 09:40:59.717831 > "331 We are happy you popped in![CR][LF]" 09:40:59.719051 < "PASS ftp@example.com" 09:40:59.719736 > "230 Welcome you silly person[CR][LF]" 09:40:59.721526 < "PWD" 09:40:59.721985 > "257 "/" is current directory[CR][LF]" 09:40:59.723997 < "EPSV" 09:40:59.724293 ====> Passive DATA channel requested by client 09:40:59.724488 DATA sockfilt for passive data channel starting... 09:40:59.736430 DATA sockfilt for passive data channel started (pid 109397) 09:40:59.738092 DATA sockfilt for passive data channel listens on port 40487 09:40:59.738541 > "229 Entering Passive Mode (|||40487|)[LF]" 09:40:59.738864 Client has been notified that DATA conn will be accepted on port 40487 09:40:59.741000 Client connects to port 40487 09:40:59.741300 ====> Client established passive DATA connection on port 40487 09:40:59.742207 < "TYPE I" 09:40:59.742626 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:59.744534 < "SIZE verifiedserver" 09:40:59.745115 > "213 18[CR][LF]" 09:40:59.747070 < "RETR verifiedserver" 09:40:59.748433 > "150 Binary junk (18 bytes).[CR][LF]" 09:40:59.749273 =====> Closing passive DATA connection... 09:40:59.750131 Server disconnects passive DATA connection 09:40:59.750440 Fancy that; client wants to DISC, too 09:40:59.751063 Server disconnected passive DATA connection 09:40:59.751336 DATA sockfilt for passive data channel quits (pid 109397) 09:40:59.753125 DATA sockfilt for passive data channel quit (pid 109397) 09:40:59.753382 =====> Closed passive DATA connection 09:40:59.754140 > "226 File transfer complete[CR][LF]" 09:40:59.791875 < "QUIT" 09:40:59.793215 > "221 bye bye baby[CR][LF]" 09:40:59.794206 MAIN sockfilt said DISC 09:40:59.794511 ====> Client disconnected 09:40:59.795132 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:59.964175 ====> Client connect 09:40:59.967263 Received DATA (on stdin) 09:40:59.967429 > 160 bytes data, server => client 09:40:59.967641 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:59.967745 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:59.967866 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:59.968786 < 16 bytes data, client => server 09:40:59.968955 'USER anonymous\r\n' 09:40:59.970371 Received DATA (on stdin) 09:40:59.970596 > 33 bytes data, server => client 09:40:59.970776 '331 We are happy you popped in!\r\n' 09:40:59.971967 < 22 bytes data, client => server 09:40:59.972098 'PASS ftp@example.com\r\n' 09:40:59.973114 Received DATA (on stdin) 09:40:59.973258 > 30 bytes data, server => client 09:40:59.973800 '230 Welcome you silly person\r\n' 09:40:59.974388 < 5 bytes data, client => server 09:40:59.974586 'PWD\r\n' 09:40:59.975988 Received DATA (on stdin) 09:40:59.976115 > 30 bytes data, server => client 09:40:59.976199 '257 "/" is current directory\r\n' 09:40:59.976827 < 6 bytes data, client => server 09:40:59.976959 'EPSV\r\n' 09:40:59.992947 Received DATA (on stdin) 09:40:59.993112 > 38 bytes data, server => client 09:40:59.993200 '229 Entering Passive Mode (|||40487|)\n' 09:40:59.994633 < 8 bytes data, client => server 09:40:59.994794 'TYPE I\r\n' 09:40:59.996363 Received DATA (on stdin) 09:40:59.996600 > 33 bytes data, server => client 09:40:59.996701 '200 I modify TYPE as you wanted\r\n' 09:40:59.997342CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind722 ../src/curl -q --output log/36/curl722.out --include --trace-ascii log/36/trace722 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:44255 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/36/stdout722 2> log/36/stderr722 < 21 bytes data, client => server 09:40:59.997546 'SIZE verifiedserver\r\n' 09:40:59.999152 Received DATA (on stdin) 09:40:59.999274 > 8 bytes data, server => client 09:40:59.999355 '213 18\r\n' 09:40:59.999965 < 21 bytes data, client => server 09:41:00.000103 'RETR verifiedserver\r\n' 09:41:00.001162 Received DATA (on stdin) 09:41:00.001304 > 29 bytes data, server => client 09:41:00.001525 '150 Binary junk (18 bytes).\r\n' 09:41:00.007379 Received DATA (on stdin) 09:41:00.007603 > 28 bytes data, server => client 09:41:00.008151 '226 File transfer complete\r\n' 09:41:00.044557 < 6 bytes data, client => server 09:41:00.044744 'QUIT\r\n' 09:41:00.046016 Received DATA (on stdin) 09:41:00.046190 > 18 bytes data, server => client 09:41:00.046386 '221 bye bye baby\r\n' 09:41:00.047589 ====> Client disconnect 09:41:00.049190 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:59.988630 Running IPv4 version 09:40:59.989157 Listening on port 40487 09:40:59.989637 Wrote pid 109397 to log/35/server/ftp_sockdata.pid 09:40:59.989815 Received PING (on stdin) 09:40:59.990885 Received PORT (on stdin) 09:40:59.994349 ====> Client connect 09:41:00.002641 Received DATA (on stdin) 09:41:00.002799 > 18 bytes data, server => client 09:41:00.002875 'WE ROOLZ: 100686\r\n' 09:41:00.003629 ====> Client disconnect 09:41:00.004165 Received DISC (on stdin) 09:41:00.004341 Crikey! Client also wants to disconnect 09:41:00.004605 Received ACKD (on stdin) 09:41:00.005337 Received QUIT (on stdin) 09:41:00.005539 quits 09:41:00.005917 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http2_server.log 09:41:00.273382 Run as proxy, CONNECT to host 127.0.0.1 09:41:00.274269 Running HTTP IPv4 version on port 41019 09:41:00.274749 Wrote pid 109407 to log/35/server/http2_server.pid 09:41:00.275070 Wrote port 41019 to log/35/server/http2_server.port === End of file http2_server.log === Start of file server.cmd Testnum 714 === End of file server.cmd === Start of file valgrind714 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind714 test 0723...[IPFS with malformed gateway URL (bad function argument error)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind723 ../src/curl -q --output log/54/curl723.out --include --trace-ascii log/54/trace723 --trace-config all --trace-time --ipfs-gateway http://nonexisting,local:8080 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/54/stdout723 2> log/54/stderr723 curl returned 1, when expecting 43 723: exit FAILED == Contents of files in the log/54/ dir after test 723 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind723 ../src/curl -q --output log/54/curl723.out --include --trace-ascii log/54/trace723 --trace-config all --trace-time --ipfs-gateway http://nonexisting,local:8080 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/54/stdout723 2> log/54/stderr723 === End of file commands.log === Start of file http_server.log 09:41:01.135700 ====> Client connect 09:41:01.136320 accept_connection 3 returned 4 09:41:01.136628 accept_connection 3 returned 0 09:41:01.136830 Read 93 bytes 09:41:01.136953 Process 93 bytes request 09:41:01.137070 Got request: GET /verifiedserver HTTP/1.1 09:41:01.137169 Are-we-friendly question received 09:41:01.137904 Wrote request (93 bytes) input to log/54/server.input 09:41:01.138170 Identifying ourselves as friends 09:41:01.141737 Response sent (56 bytes) and written to log/54/server.response 09:41:01.141887 special request received, no persistency 09:41:01.141973 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 723 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind723 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind723 test 0722...[IPFS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind722 ../src/curl -q --output log/36/curl722.out --include --trace-ascii log/36/trace722 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:44255 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/36/stdout722 2> log/36/stderr722 722: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 722 === Start of file commands.log ../libtool --mode=execute /usr/bin/valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind717 ../src/curl -q --output log/19/curl717.out --include --trace-ascii log/19/trace717 --trace-config all --trace-time http://127.0.0.1:1/717 -x socks5://uz3r:p4ssworm@127.0.0.1:42775 > log/19/stdout717 2> log/19/stderr717 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind726 ../src/curl -q --output log/6/curl726.out --include --trace-ascii log/6/trace726 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout726 2> log/6/stderr726 grind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind722 ../src/curl -q --output log/36/curl722.out --include --trace-ascii log/36/trace722 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:44255 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/36/stdout722 2> log/36/stderr722 === End of file commands.log === Start of file http_server.log 09:41:01.136958 ====> Client connect 09:41:01.137303 accept_connection 3 returned 4 09:41:01.137630 accept_connection 3 returned 0 09:41:01.137805 Read 93 bytes 09:41:01.137898 Process 93 bytes request 09:41:01.137993 Got request: GET /verifiedserver HTTP/1.1 09:41:01.138071 Are-we-friendly question received 09:41:01.138294 Wrote request (93 bytes) input to log/36/server.input 09:41:01.138561 Identifying ourselves as friends 09:41:01.139327 Response sent (56 bytes) and written to log/36/server.response 09:41:01.139506 special request received, no persistency 09:41:01.139602 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 722 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind722 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind722 startnew: ./server/servers socksd --port 0 --pidfile log/19/server/socks_server.pid --portfile log/19/server/socks_server.port --reqfile log/19/socksd-request.log --logfile log/19/socks_server.log --backend 127.0.0.1 --config log/19/server.cmd RUN: SOCKS server is now running PID 109392 * pid socks => 109392 109392 test 0717...[SOCKS5 proxy auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind717 ../src/curl -q --output log/19/curl717.out --include --trace-ascii log/19/trace717 --trace-config all --trace-time http://127.0.0.1:1/717 -x socks5://uz3r:p4ssworm@127.0.0.1:42775 > log/19/stdout717 2> log/19/stderr717 717: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 717 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind717 ../src/curl -q --output log/19/curl717.out --include --trace-ascii log/19/trace717 --trace-config all --trace-time http://127.0.0.1:1/717 -x socks5://uz3r:p4ssworm@127.0.0.1:42775 > log/19/stdout717 2> log/19/stderr717 === End of file commands.log === Start of file http_server.log 09:41:01.197881 ====> Client connect 09:41:01.198215 accept_connection 3 returned 4 09:41:01.198393 accept_connection 3 returned 0 09:41:01.198693 Read 93 bytes 09:41:01.198814 Process 93 bytes request 09:41:01.198946 Got request: GET /verifiedserver HTTP/1.1 09:41:01.199069 Are-we-friendly question received 09:41:01.199378 Wrote request (93 bytes) input to log/19/server.input 09:41:01.199755 Identifying ourselves as friends 09:41:01.200727 Response sent (56 bytes) and written to log/19/server.response 09:41:01.200854 special request received, no persistency 09:41:01.200931 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd method 2 user uz3r password p4ssworm backendport 35697 Testnum 717 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file socks_server.log 09:40:59.978295 Running IPv4 version 09:40:59.979255 Listening on port 42775 09:40:59.979738 Wrote pid 109392 to log/19/server/socks_server.pid 09:40:59.980102 Wrote port 42775 to log/19/server/socks_server.port === End of file socks_server.log === Start of file valgrind717 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind717 setenv HOME = /build/curl/src/build-curl/tests test 0726...[IPFS with no gateway URL (no environment or home file either)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind726 ../src/curl -q --output log/6/curl726.out --include --trace-ascii log/6/trace726 --trace-config alCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind728 ../src/curl -q --output log/9/curl728.out --include --trace-ascii log/9/trace728 --trace-config all --trace-time --no-progress-meter --location --proxy socks5h://127.0.0.1:45189 http://127.0.0.1:46607/728 > log/9/stdout728 2> log/9/stderr728 l --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout726 2> log/6/stderr726 curl returned 1, when expecting 37 726: exit FAILED == Contents of files in the log/6/ dir after test 726 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind726 ../src/curl -q --output log/6/curl726.out --include --trace-ascii log/6/trace726 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout726 2> log/6/stderr726 === End of file commands.log === Start of file http_server.log 09:41:01.405853 ====> Client connect 09:41:01.406193 accept_connection 3 returned 4 09:41:01.406366 accept_connection 3 returned 0 09:41:01.407296 Read 93 bytes 09:41:01.407542 Process 93 bytes request 09:41:01.407643 Got request: GET /verifiedserver HTTP/1.1 09:41:01.407751 Are-we-friendly question received 09:41:01.408016 Wrote request (93 bytes) input to log/6/server.input 09:41:01.408220 Identifying ourselves as friends 09:41:01.410161 Response sent (56 bytes) and written to log/6/server.response 09:41:01.410273 special request received, no persistency 09:41:01.410339 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 726 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind726 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind726 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind727 ../src/curl -q --output log/43/curl727.out --include --trace-ascii log/43/trace727 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:41267 ipns://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/43/stdout727 2> log/43/stderr727 test 0728...[SOCKS5h with HTTP redirect to hostname too long] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind728 ../src/curl -q --output log/9/curl728.out --include --trace-ascii log/9/trace728 --trace-config all --trace-time --no-progress-meter --location --proxy socks5h://127.0.0.1:45189 http://127.0.0.1:46607/728 > log/9/stdout728 2> log/9/stderr728 728: stderr FAILED: --- log/9/check-expected 2025-07-18 09:41:01.844510484 +0000 +++ log/9/check-generated 2025-07-18 09:41:01.843597485 +0000 @@ -1 +0,0 @@ -curl: (97) SOCKS5: the destination hostname is too long to be resolved remotely by the proxy.[CR][LF] == Contents of files in the log/9/ dir after test 728 === Start of file check-expected curl: (97) SOCKS5: the destination hostname is too long to be resolved remotely by the proxy.[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind728 ../src/curl -q --output log/9/curl728.out --include --trace-ascii log/9/trace728 --trace-config all --trace-time --no-progress-meter --location --proxy socks5h://127.0.0.1:45189 http://127.0.0.1:46607/728 > log/9/stdout728 2> log/9/stderr728 === End of file commands.log === Start of file http_server.log 09:41:01.441437 ====> Client connect 09:41:01.441906 accept_connection 3 returned 4 09:41:01.442090 accept_connection 3 returned 0 09:41:01.444831 Read 93 bytes 09:41:01.444988 Process 93 bytes request 09:41:01.445076 Got request: GET /verifiedserver HTTP/1.1 09:41:01.445161 Are-we-friendly question received 09:41:01.445414 Wrote request (93 bytes) input to log/9/server.input 09:41:01.445702 Identifying ourselves as friends 09:41:01.446234 Response sent (56 bytes) and written to log/9/server.response 09:41:01.446339 special request received, no persistency 09:41:01.446405 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 728 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind728 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind728 test 0727...[IPNS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind727 ../src/curl -q --output log/43/curl727.out --include --trace-ascii log/43/trace727 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:41267 ipns://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/43/stdout727 2> log/43/stderr727 727: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 727 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind727 ../src/curl -q --output log/43/curl727.out --include --trace-ascii log/43/trace727 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:41267 ipns://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/43/stdout727 2> log/43/stderr727 === End of file commands.log === Start of file http_server.log 09:41:01.429820 ====> Client connect 09:41:01.430163 accept_connection 3 returned 4 09:41:01.430339 accept_connection 3 returned 0 09:41:01.430594 Read 93 bytes 09:41:01.430736 Process 93 bytes request 09:41:01.430834 Got request: GET /verifiedserver HTTP/1.1 09:41:01.430918 Are-we-friendly question received 09:41:01.431152 Wrote request (93 bytes) input to log/43/server.input 09:41:01.431356 Identifying ourselves as friends 09:41:01.432343 Response sent (56 bytes) and written to log/43/server.response 09:41:01.432568 special request received, no persistency 09:41:01.432673 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 727 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind727 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind729 ../src/curl -q --output log/39/curl729.out --include --trace-ascii log/39/trace729 --trace-config all --trace-time http://fake --limit-rate 1 -x socks4a://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@127.0.0.1:45999 > log/39/stdout729 2> log/39/stderr729 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind732 ../src/curl -q --output log/30/curl732.out --include --trace-ascii log/30/trace732 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:43913 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b" > log/30/stdout732 2> log/30/stderr732 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind724 ../src/curl -q --output log/10/curl724.out --include --trace-ascii log/10/trace724 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/10/stdout724 2> log/10/stderr724 End of file valgrind727 test 0729...[SOCKS4 with very long proxy user name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind729 ../src/curl -q --output log/39/curl729.out --include --trace-ascii log/39/trace729 --trace-config all --trace-time http://fake --limit-rate 1 -x socks4a://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@127.0.0.1:45999 > log/39/stdout729 2> log/39/stderr729 curl returned 1, when expecting 97 729: exit FAILED == Contents of files in the log/39/ dir after test 729 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind729 ../src/curl -q --output log/39/curl729.out --include --trace-ascii log/39/trace729 --trace-config all --trace-time http://fake --limit-rate 1 -x socks4a://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@127.0.0.1:45999 > log/39/stdout729 2> log/39/stderr729 === End of file commands.log === Start of file http_server.log 09:41:01.666745 ====> Client connect 09:41:01.667049 accept_connection 3 returned 4 09:41:01.667214 accept_connection 3 returned 0 09:41:01.667348 Read 93 bytes 09:41:01.667537 Process 93 bytes request 09:41:01.667659 Got request: GET /verifiedserver HTTP/1.1 09:41:01.667743 Are-we-friendly question received 09:41:01.667963 Wrote request (93 bytes) input to log/39/server.input 09:41:01.668149 Identifying ourselves as friends 09:41:01.668942 Response sent (56 bytes) and written to log/39/server.response 09:41:01.669049 special request received, no persistency 09:41:01.669113 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 729 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind729 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind729 test 0732...[IPFS with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind732 ../src/curl -q --output log/30/curl732.out --include --trace-ascii log/30/trace732 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:43913 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b" > log/30/stdout732 2> log/30/stderr732 732: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 732 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind732 ../src/curl -q --output log/30/curl732.out --include --trace-ascii log/30/trace732 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:43913 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b" > log/30/stdout732 2> log/30/stderr732 === End of file commands.log === Start of file http_server.log 09:41:01.825406 ====> Client connect 09:41:01.825885 accept_connection 3 returned 4 09:41:01.826076 accept_connection 3 returned 0 09:41:01.826765 Read 93 bytes 09:41:01.826920 Process 93 bytes request 09:41:01.827016 Got request: GET /verifiedserver HTTP/1.1 09:41:01.827112 Are-we-friendly question received 09:41:01.827371 Wrote request (93 bytes) input to log/30/server.input 09:41:01.827663 Identifying ourselves as friends 09:41:01.828234 Response sent (56 bytes) and written to log/30/server.response 09:41:01.828344 special request received, no persistency 09:41:01.828413 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === EnCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind734 ../src/curl -q --output log/18/curl734.out --include --trace-ascii log/18/trace734 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:41285/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/18/stdout734 2> log/18/stderr734 d of file http_verify.out === Start of file server.cmd Testnum 732 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind732 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind732 setenv HOME = /build/curl/src/build-curl/tests/log/10 test 0724...[IPFS with gateway URL from gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind724 ../src/curl -q --output log/10/curl724.out --include --trace-ascii log/10/trace724 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/10/stdout724 2> log/10/stderr724 724: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 724 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind724 ../src/curl -q --output log/10/curl724.out --include --trace-ascii log/10/trace724 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/10/stdout724 2> log/10/stderr724 === End of file commands.log === Start of file http_server.log 09:41:01.253801 ====> Client connect 09:41:01.254137 accept_connection 3 returned 4 09:41:01.254324 accept_connection 3 returned 0 09:41:01.256102 Read 93 bytes 09:41:01.256245 Process 93 bytes request 09:41:01.256337 Got request: GET /verifiedserver HTTP/1.1 09:41:01.256413 Are-we-friendly question received 09:41:01.256809 Wrote request (93 bytes) input to log/10/server.input 09:41:01.257007 Identifying ourselves as friends 09:41:01.257989 Response sent (56 bytes) and written to log/10/server.response 09:41:01.258149 special request received, no persistency 09:41:01.258240 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 724 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind724 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind724 test 0734...[IPFS with path, query args and gateway with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind734 ../src/curl -q --output log/18/curl734.out --include --trace-ascii log/18/trace734 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:41285/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/18/stdout734 2> log/18/stderr734 734: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 734 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind734 ../src/curl -q --output log/18/curl734.out --include --trace-ascii log/18/trace734 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:41285/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/18/stdout734 2> log/18/stderr734 === End of file commands.log === Start of file http_server.log 09:41:01.870165 ====> Client connect 09:41:01.870650 accept_connection 3 returned 4 09:41:01.870899 accept_connection 3 returned 0 09:41:01.871102 Read 93 bytes 09:41:01.871252 Process 93 bytes request 09:41:01.871341 Got request: GET /verifiedserver HTTP/1.1 09:41:01.871419 Are-we-friendly question received 09:41:01.871850 Wrote request (93 bytes) input to log/18/server.input 09:41:01.872107 Identifying ourselves as friends 09:41:01.872981 Response sent (56 bytes) and written to log/18/server.response 09:41:01.873091 special request received, no persistency 09:41:01.873162 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 734 === End of file server.cmd === Start of file server.respCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind735 ../src/curl -q --output log/4/curl735.out --include --trace-ascii log/4/trace735 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:43013/some/path "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/4/stdout735 2> log/4/stderr735 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind725 ../src/curl -q --output log/58/curl725.out --include --trace-ascii log/58/trace725 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/58/stdout725 2> log/58/stderr725 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind733 ../src/curl -q --output log/17/curl733.out --include --trace-ascii log/17/trace733 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:44383 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/17/stdout733 2> log/17/stderr733 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind730 ../src/curl -q --output log/31/curl730.out --include --trace-ascii log/31/trace730 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:45557/foo/bar ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/31/stdout730 2> log/31/stderr730 onse HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind734 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind734 test 0735...[IPNS with path, query args and gateway with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind735 ../src/curl -q --output log/4/curl735.out --include --trace-ascii log/4/trace735 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:43013/some/path "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/4/stdout735 2> log/4/stderr735 735: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 735 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind735 ../src/curl -q --output log/4/curl735.out --include --trace-ascii log/4/trace735 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:43013/some/path "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/4/stdout735 2> log/4/stderr735 === End of file commands.log === Start of file http_server.log 09:41:01.904162 ====> Client connect 09:41:01.904595 accept_connection 3 returned 4 09:41:01.904782 accept_connection 3 returned 0 09:41:01.904916 Read 93 bytes 09:41:01.905023 Process 93 bytes request 09:41:01.905116 Got request: GET /verifiedserver HTTP/1.1 09:41:01.905202 Are-we-friendly question received 09:41:01.905441 Wrote request (93 bytes) input to log/4/server.input 09:41:01.905734 Identifying ourselves as friends 09:41:01.906523 Response sent (56 bytes) and written to log/4/server.response 09:41:01.906648 special request received, no persistency 09:41:01.906714 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 735 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind735 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind735 setenv HOME = /build/curl/src/build-curl/tests/log/58 test 0725...[IPFS with malformed gateway URL from gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind725 ../src/curl -q --output log/58/curl725.out --include --trace-ascii log/58/trace725 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/58/stdout725 2> log/58/stderr725 curl returned 1, when expecting 3 725: exit FAILED == Contents of files in the log/58/ dir after test 725 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind725 ../src/curl -q --output log/58/curl725.out --include --trace-ascii log/58/trace725 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/58/stdout725 2> log/58/stderr725 === End of file commands.log === Start of file http_server.log 09:41:01.326107 ====> Client connect 09:41:01.326424 accept_connection 3 returned 4 09:41:01.326779 accept_connection 3 returned 0 09:41:01.326921 Read 93 bytes 09:41:01.327015 Process 93 bytes request 09:41:01.327107 Got request: GET /verifiedserver HTTP/1.1 09:41:01.327186 Are-we-friendly question received 09:41:01.327409 Wrote request (93 bytes) input to log/58/server.input 09:41:01.327712 Identifying ourselves as friends 09:41:01.328548 Response sent (56 bytes) and written to log/58/server.response 09:41:01.328669 special request received, no persistency 09:41:01.328736 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 725 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind725 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind737 ../src/curl -q --output log/35/curl737.out --include --trace-ascii log/35/trace737 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/35/stdout737 2> log/35/stderr737 valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind725 test 0733...[IPFS with path and query args] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind733 ../src/curl -q --output log/17/curl733.out --include --trace-ascii log/17/trace733 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:44383 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/17/stdout733 2> log/17/stderr733 733: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 733 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind733 ../src/curl -q --output log/17/curl733.out --include --trace-ascii log/17/trace733 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:44383 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/17/stdout733 2> log/17/stderr733 === End of file commands.log === Start of file http_server.log 09:41:01.876896 ====> Client connect 09:41:01.877221 accept_connection 3 returned 4 09:41:01.877402 accept_connection 3 returned 0 09:41:01.877672 Read 93 bytes 09:41:01.877786 Process 93 bytes request 09:41:01.877877 Got request: GET /verifiedserver HTTP/1.1 09:41:01.877959 Are-we-friendly question received 09:41:01.878197 Wrote request (93 bytes) input to log/17/server.input 09:41:01.878405 Identifying ourselves as friends 09:41:01.879410 Response sent (56 bytes) and written to log/17/server.response 09:41:01.879649 special request received, no persistency 09:41:01.879729 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 733 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind733 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind733 test 0730...[IPFS arg gateway with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind730 ../src/curl -q --output log/31/curl730.out --include --trace-ascii log/31/trace730 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:45557/foo/bar ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/31/stdout730 2> log/31/stderr730 730: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 730 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind730 ../src/curl -q --output log/31/curl730.out --include --trace-ascii log/31/trace730 --trace-config all --trace-time --ipfs-gateway http://127.0.0.1:45557/foo/bar ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/31/stdout730 2> log/31/stderr730 === End of file commands.log === Start of file http_server.log 09:41:01.763956 ====> Client connect 09:41:01.764302 accept_connection 3 returned 4 09:41:01.764577 accept_connection 3 returned 0 09:41:01.764753 Read 93 bytes 09:41:01.764859 Process 93 bytes request 09:41:01.764958 Got request: GET /verifiedserver HTTP/1.1 09:41:01.765052 Are-we-friendly question received 09:41:01.765377 Wrote request (93 bytes) input to log/31/server.input 09:41:01.765942 Identifying ourselves as friends 09:41:01.766870 Response sent (56 bytes) and written to log/31/server.response 09:41:01.766986 special request received, no persistency 09:41:01.767058 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 730 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind730 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object wCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test745.pl /build/curl/src/curl/tests/.. > log/10/stdout745 2> log/10/stderr745 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind736 ../src/curl -q --output log/54/curl736.out --include --trace-ascii log/54/trace736 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/54/stdout736 2> log/54/stderr736 ith soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind730 setenv IPFS_PATH = log/35/.ipfs/ test 0737...[IPFS with IPFS_PATH set, with trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind737 ../src/curl -q --output log/35/curl737.out --include --trace-ascii log/35/trace737 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/35/stdout737 2> log/35/stderr737 737: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 737 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind737 ../src/curl -q --output log/35/curl737.out --include --trace-ascii log/35/trace737 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/35/stdout737 2> log/35/stderr737 === End of file commands.log === Start of file http_server.log 09:41:01.986060 ====> Client connect 09:41:01.986838 accept_connection 3 returned 4 09:41:01.987240 accept_connection 3 returned 0 09:41:01.987621 Read 93 bytes 09:41:01.987784 Process 93 bytes request 09:41:01.988012 Got request: GET /verifiedserver HTTP/1.1 09:41:01.988261 Are-we-friendly question received 09:41:01.989088 Wrote request (93 bytes) input to log/35/server.input 09:41:01.989351 Identifying ourselves as friends 09:41:01.995347 Response sent (56 bytes) and written to log/35/server.response 09:41:01.995607 special request received, no persistency 09:41:01.995698 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 737 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind737 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind737 * starts no server test 0745...[Verify that typecheck-gcc and curl.h are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test745.pl /build/curl/src/curl/tests/.. > log/10/stdout745 2> log/10/stderr745 valgrind SKIPPED s------e--- OK (715 out of 1707, remaining: 00:50, took 0.231s, duration: 00:36) setenv IPFS_PATH = log/54/.ipfs test 0736...[IPFS with IPFS_PATH set, no trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind736 ../src/curl -q --output log/54/curl736.out --include --trace-ascii log/54/trace736 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/54/stdout736 2> log/54/stderr736 736: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 736 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind736 ../src/curl -q --output log/54/curl736.out --include --trace-ascii log/54/trace736 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/54/stdout736 2> log/54/stderr736 === End of file commands.log === Start of file http_server.log 09:41:01.986995 ====> Client connect 09:41:01.987670 accept_connection 3 returned 4 09:41:01.988025 accept_connection 3 returned 0 09:41:01.988287 Read 93 bytes 09:41:01.988362 Process 93 bytes request 09:41:01.988432 Got request: GET /verifiedserver HTTP/1.1 09:41:01.989746 Are-we-friendly question received 09:41:01.990074 Wrote request (93 bytes) input to log/54/server.input 09:41:01.990351 Identifying ourselves as friends 09:41:01.994872 Response sent (56 bytes) and written to log/54/server.response 09:41:01.995055 special request received, no persistency 09:41:01.995193 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 736 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind736 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function vCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind738 ../src/curl -q --output log/36/curl738.out --include --trace-ascii log/36/trace738 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/36/stdout738 2> log/36/stderr738 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind715 ../src/curl -q --output log/13/curl715.out --include --trace-ascii log/13/trace715 --trace-config all --trace-time ftp://ftp.example.com.715/715 --connect-to ::connect.example.com.715:34087 --proxytunnel --proxy 127.0.0.1:43069 --preproxy socks5://127.0.0.1:36185 > log/13/stdout715 2> log/13/stderr715 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind739 ../src/curl -q --output log/19/curl739.out --include --trace-ascii log/19/trace739 --trace-config all --trace-time --ipfs-gateway "http://127.0.0.1:35697/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/19/stdout739 2> log/19/stderr739 algrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind736 setenv IPFS_PATH = log/36/.ipfs/ test 0738...[IPFS with IPFS_PATH, no gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind738 ../src/curl -q --output log/36/curl738.out --include --trace-ascii log/36/trace738 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/36/stdout738 2> log/36/stderr738 curl returned 1, when expecting 37 738: exit FAILED == Contents of files in the log/36/ dir after test 738 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind738 ../src/curl -q --output log/36/curl738.out --include --trace-ascii log/36/trace738 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/36/stdout738 2> log/36/stderr738 === End of file commands.log === Start of file http_server.log 09:41:02.088099 ====> Client connect 09:41:02.088412 accept_connection 3 returned 4 09:41:02.088764 accept_connection 3 returned 0 09:41:02.089525 Read 93 bytes 09:41:02.089680 Process 93 bytes request 09:41:02.089779 Got request: GET /verifiedserver HTTP/1.1 09:41:02.089869 Are-we-friendly question received 09:41:02.090121 Wrote request (93 bytes) input to log/36/server.input 09:41:02.090310 Identifying ourselves as friends 09:41:02.090974 Response sent (56 bytes) and written to log/36/server.response 09:41:02.091093 special request received, no persistency 09:41:02.091177 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 738 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind738 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind738 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/13/server/http2_server.pid" --logfile "log/13/http2_server.log" --logdir "log/13" --portfile log/13/server/http2_server.port --config log/13/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 109415 port 43069 * pid http-proxy => 109415 109415 startnew: ./server/servers socksd --port 0 --pidfile log/13/server/socks_server.pid --portfile log/13/server/socks_server.port --reqfile log/13/socksd-request.log --logfile log/13/socks_server.log --backend 127.0.0.1 --config log/13/server.cmd RUN: SOCKS server is now running PID 110090 * pid socks => 110090 110090 test 0715...[FTP fetch with --preproxy, --proxy and --connect-to] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind715 ../src/curl -q --output log/13/curl715.out --include --trace-ascii log/13/trace715 --trace-config all --trace-time ftp://ftp.example.com.715/715 --connect-to ::connect.example.com.715:34087 --proxytunnel --proxy 127.0.0.1:43069 --preproxy socks5://127.0.0.1:36185 > log/13/stdout715 2> log/13/stderr715 715: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 715 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind715 ../src/curl -q --output log/13/curl715.out --include --trace-ascii log/13/trace715 --trace-config all --trace-time ftp://ftp.example.com.715/715 --connect-to ::connect.example.com.715:34087 --proxytunnel --proxy 127.0.0.1:43069 --preproxy socks5://127.0.0.1:36185 > log/13/stdout715 2> log/13/stderr715 === End of file commands.log === Start of file ftp_server.log 09:40:59.761919 ====> Client connect 09:40:59.763149 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:40:59.765913 < "USER anonymous" 09:40:59.766366 > "331 We are happy you popped in![CR][LF]" 09:40:59.768504 < "PASS ftp@example.com" 09:40:59.769260 > "230 Welcome you silly person[CR][LF]" 09:40:59.775063 < "PWD" 09:40:59.776978 > "257 "/" is current directory[CR][LF]" 09:40:59.777984 < "EPSV" 09:40:59.778342 ====> Passive DATA channel requested by client 09:40:59.778616 DATA sockfilt for passive data channel starting... 09:40:59.792024 DATA sockfilt for passive data channel started (pid 109400) 09:40:59.793053 DATA sockfilt for passive data channel listens on port 41705 09:40:59.793523 > "229 Entering Passive Mode (|||41705|)[LF]" 09:40:59.793826 Client has been notified that DATA conn will be accepted on port 41705 09:40:59.797234 Client connects to port 41705 09:40:59.797634 ====> Client established passive DATA connection on port 41705 09:40:59.798971 < "TYPE I" 09:40:59.799630 > "200 I modify TYPE as you wanted[CR][LF]" 09:40:59.801307 < "SIZE verifiedserver" 09:40:59.801872 > "213 17[CR][LF]" 09:40:59.803418 < "RETR verifiedserver" 09:40:59.803984 > "150 Binary junk (17 bytes).[CR][LF]" 09:40:59.804677 =====> Closing passive DATA connection... 09:40:59.805027 Server disconnects passive DATA connection 09:40:59.807203 Server disconnected passive DATA connection 09:40:59.807578 DATA sockfilt for passive data channel quits (pid 109400) 09:40:59.809730 DATA sockfilt for passive data channel quit (pid 109400) 09:40:59.810081 =====> Closed passive DATA connection 09:40:59.810490 > "226 File transfer complete[CR][LF]" 09:40:59.847426 < "QUIT" 09:40:59.848116 > "221 bye bye baby[CR][LF]" 09:40:59.850846 MAIN sockfilt said DISC 09:40:59.851209 ====> Client disconnected 09:40:59.851728 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:40:59.014720 ====> Client connect 09:40:59.017204 Received DATA (on stdin) 09:40:59.017337 > 160 bytes data, server => client 09:40:59.017428 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:40:59.017683 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:40:59.017775 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:40:59.018749 < 16 bytes data, client => server 09:40:59.018940 'USER anonymous\r\n' 09:40:59.020086 Received DATA (on stdin) 09:40:59.020235 > 33 bytes data, server => client 09:40:59.020319 '331 We are happy you popped in!\r\n' 09:40:59.021285 < 22 bytes data, client => server 09:40:59.021515 'PASS ftp@example.com\r\n' 09:40:59.023393 Received DATA (on stdin) 09:40:59.023696 > 30 bytes data, server => client 09:40:59.023844 '230 Welcome you silly person\r\n' 09:40:59.027655 < 5 bytes data, client => server 09:40:59.027861 'PWD\r\n' 09:40:59.029575 Received DATA (on stdin) 09:40:59.029781 > 30 bytes data, server => client 09:40:59.030045 '257 "/" is current directory\r\n' 09:40:59.030850 < 6 bytes data, client => server 09:40:59.030996 'EPSV\r\n' 09:40:59.047216 Received DATA (on stdin) 09:40:59.047388 > 38 bytes data, server => client 09:40:59.047565 '229 Entering Passive Mode (|||41705|)\n' 09:40:59.050942 < 8 bytes data, client => server 09:40:59.051157 'TYPE I\r\n' 09:40:59.053319 Received DATA (on stdin) 09:40:59.053608 > 33 bytes data, server => client 09:40:59.053751 '200 I modify TYPE as you wanted\r\n' 09:40:59.054519 < 21 bytes data, client => server 09:40:59.054677 'SIZE verifiedserver\r\n' 09:40:59.055572 Received DATA (on stdin) 09:40:59.055734 > 8 bytes data, server => client 09:40:59.055815 '213 17\r\n' 09:40:59.056599 < 21 bytes data, client => server 09:40:59.056748 'RETR verifiedserver\r\n' 09:40:59.057683 Received DATA (on stdin) 09:40:59.057847 > 29 bytes data, server => client 09:40:59.057933 '150 Binary junk (17 bytes).\r\n' 09:40:59.064200 Received DATA (on stdin) 09:40:59.064398 > 28 bytes data, server => client 09:40:59.064608 '226 File transfer complete\r\n' 09:40:59.100383 < 6 bytes data, client => server 09:40:59.100634 'QUIT\r\n' 09:40:59.101790 Received DATA (on stdin) 09:40:59.101989 > 18 bytes data, server => client 09:40:59.102078 '221 bye bye baby\r\n' 09:40:59.104052 ====> Client disconnect 09:40:59.104979 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:40:59.043686 Running IPv4 version 09:40:59.044321 Listening on port 41705 09:40:59.044833 Wrote pid 109400 to log/13/server/ftp_sockdata.pid 09:40:59.045333 Received PING (on stdin) 09:40:59.046134 Received PORT (on stdin) 09:40:59.050556 ====> Client connect 09:40:59.059016 Received DATA (on stdin) 09:40:59.059162 > 17 bytes data, server => client 09:40:59.059251 'WE ROOLZ: 79551\r\n' 09:40:59.059758 Received DISC (on stdin) 09:40:59.060131 ====> Client forcibly disconnected 09:40:59.061791 Received QUIT (on stdin) 09:40:59.061937 quits 09:40:59.062343 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http2_server.log 09:41:00.337780 Run as proxy, CONNECT to host 127.0.0.1 09:41:00.338731 Running HTTP IPv4 version on port 43069 09:41:00.339222 Wrote pid 109415 to log/13/server/http2_server.pid 09:41:00.339698 Wrote port 43069 to log/13/server/http2_server.port === End of file http2_server.log === Start of file server.cmd Testnum 715 === End of file server.cmd === Start of file socks_server.log 09:41:00.150081 Running IPv4 version 09:41:00.150730 Listening on port 36185 09:41:00.151075 Wrote pid 110090 to log/13/server/socks_server.pid 09:41:00.151380 Wrote port 36185 to log/13/server/socks_server.port === End of file socks_server.log === Start of file valgrind715 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind715 test 0739...[IPNS path and query args for gateway and IPFS url (malformed gateway url)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind739 ../src/curl -q --output log/19/curl739.out --include --trace-ascii log/19/trace739 --trace-config all --trace-time --ipfs-gateway "http://127.0.0.1:35697/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/19/stdout739 2> log/19/stderr739 curl returned 1, when expecting 3 739: exit FAILED == Contents of files in the log/19/ dir after test 739 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind739 ../src/curl -q --output log/19/curl739.out --include --trace-ascii log/19/trace739 --trace-config all --trace-time --ipfs-gateway "http://127.0.0.1:35697/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/19/stdout739 2> log/19/stderr739 === End of file commands.log === Start of file http_server.log 09:41:02.215836 ====> Client connect 09:41:02.216123 accept_connection 3 returned 4 09:41:02.216273 accept_connection 3 returned 0 09:41:02.216398 Read 93 bytes 09:41:02.216762 Process 93 bytes request 09:41:02.216864 Got request: GET /verifiedserver HTTP/1.1 09:41:02.216932 Are-we-friendly question received 09:41:02.217127 Wrote request (93 bytes) input to log/19/server.input 09:41:02.217306 Identifying ourselves as friends 09:41:02.218013 Response sent (56 bytes) and written to log/19/server.response 09:41:02.218117 special request received, no persistency 09:41:02.218177 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind731 ../src/curl -q --output log/63/curl731.out --include --trace-ascii log/63/trace731 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/63/stdout731 2> log/63/stderr731 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind746 ../src/curl -q --output log/18/curl746.out --include --trace-ascii log/18/trace746 --trace-config all --trace-time http://neverused.example/ -m 22222242222222222 > log/18/stdout746 2> log/18/stderr746 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind742 ../src/curl -q --output log/43/curl742.out --include --trace-ascii log/43/trace742 --trace-config all --trace-time http://cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:41267 -x socks5h://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@127.0.0.1:46733 > log/43/stdout742 2> log/43/stderr742 /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 739 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind739 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind739 setenv HOME = /build/curl/src/build-curl/tests/log/63 test 0731...[IPFS with gateway URL and path from gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind731 ../src/curl -q --output log/63/curl731.out --include --trace-ascii log/63/trace731 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/63/stdout731 2> log/63/stderr731 731: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 731 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind731 ../src/curl -q --output log/63/curl731.out --include --trace-ascii log/63/trace731 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/63/stdout731 2> log/63/stderr731 === End of file commands.log === Start of file http_server.log 09:41:01.775870 ====> Client connect 09:41:01.776210 accept_connection 3 returned 4 09:41:01.776403 accept_connection 3 returned 0 09:41:01.777517 Read 93 bytes 09:41:01.777647 Process 93 bytes request 09:41:01.777740 Got request: GET /verifiedserver HTTP/1.1 09:41:01.777828 Are-we-friendly question received 09:41:01.778077 Wrote request (93 bytes) input to log/63/server.input 09:41:01.778286 Identifying ourselves as friends 09:41:01.780064 Response sent (56 bytes) and written to log/63/server.response 09:41:01.780180 special request received, no persistency 09:41:01.780262 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 731 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind731 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind731 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind751 ./libtest/libtests lib751 - > log/17/stdout751 2> log/17/stderr751 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind748 ../src/curl -q --output log/58/curl748.out --include --trace-ascii log/58/trace748 --trace-config all --trace-time -K log/58/cmd > log/58/stdout748 2> log/58/stderr748 * starts no server test 0746...[too large numerical value passed to -m] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind746 ../src/curl -q --output log/18/curl746.out --include --trace-ascii log/18/trace746 --trace-config all --trace-time http://neverused.example/ -m 22222242222222222 > log/18/stdout746 2> log/18/stderr746 746: stderr FAILED: --- log/18/check-expected 2025-07-18 09:41:03.044345777 +0000 +++ log/18/check-generated 2025-07-18 09:41:03.043596877 +0000 @@ -1,2 +0,0 @@ -curl: option -m: expected a proper numerical parameter[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/18/ dir after test 746 === Start of file check-expected curl: option -m: expected a proper numerical parameter[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind746 ../src/curl -q --output log/18/curl746.out --include --trace-ascii log/18/trace746 --trace-config all --trace-time http://neverused.example/ -m 22222242222222222 > log/18/stdout746 2> log/18/stderr746 === End of file commands.log === Start of file server.cmd Testnum 746 === End of file server.cmd === Start of file valgrind746 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind746 * starts no server test 0751...[multi - add many easy handles] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind751 ./libtest/libtests lib751 - > log/17/stdout751 2> log/17/stderr751 libtests returned 1, when expecting 0 751: exit FAILED == Contents of files in the log/17/ dir after test 751 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind751 ./libtest/libtests lib751 - > log/17/stdout751 2> log/17/stderr751 === End of file commands.log === Start of file server.cmd Testnum 751 === End of file server.cmd === Start of file valgrind751 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind751 test 0742...[SOCKS5-hostname with max length credentials and max host name length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind742 ../src/curl -q --output log/43/curl742.out --include --trace-ascii log/43/trace742 --trace-config all --trace-time http://cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:41267 -x socks5h://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@127.0.0.1:46733 > log/43/stdout742 2> log/43/stderr742 742: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 742 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind742 ../src/curl -q --output log/43/curl742.out --include --trace-ascii log/43/trace742 --trace-config all --trace-time http://cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:41267 -x socks5h://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@127.0.0.1:46733 > log/43/stdout742 2> log/43/stderr742 === End of file commands.log === Start of file http_server.log 09:41:02.514381 ====> Client connect 09:41:02.515397 accept_connection 3 returned 4 09:41:02.516245 accept_connection 3 returned 0 09:41:02.516733 Read 93 bytes 09:41:02.517292 Process 93 bytes request 09:41:02.521948 Got request: GET /verifiedserver HTTP/1.1 09:41:02.522245 Are-we-friendly question received 09CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind743 ../src/curl -q --output log/39/curl743.out --include --trace-ascii log/39/trace743 --trace-config all --trace-time http://127.0.0.1:42899/743 -K log/39/config > log/39/stdout743 2> log/39/stderr743 :41:02.523004 Wrote request (93 bytes) input to log/43/server.input 09:41:02.523268 Identifying ourselves as friends 09:41:02.524296 Response sent (56 bytes) and written to log/43/server.response 09:41:02.524551 special request received, no persistency 09:41:02.524668 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd method 2 user aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa password bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb backendport 41267 Testnum 742 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind742 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind742 * starts no server test 0748...[A --config file that uses -h and no URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind748 ../src/curl -q --output log/58/curl748.out --include --trace-ascii log/58/trace748 --trace-config all --trace-time -K log/58/cmd > log/58/stdout748 2> log/58/stderr748 curl returned 1, when expecting 2 748: exit FAILED == Contents of files in the log/58/ dir after test 748 === Start of file cmd -h all === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind748 ../src/curl -q --output log/58/curl748.out --include --trace-ascii log/58/trace748 --trace-config all --trace-time -K log/58/cmd > log/58/stdout748 2> log/58/stderr748 === End of file commands.log === Start of file server.cmd Testnum 748 === End of file server.cmd === Start of file valgrind748 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind748 test 0743...[--config with a 127 byte line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind743 ../src/curl -q --output log/39/curl743.out --include --trace-ascii log/39/trace743 --trace-config all --trace-time http://127.0.0.1:42899/743 -K log/39/config > log/39/stdout743 2> log/39/stderr743 743: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 743 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind743 ../src/curl -q --output log/39/curl743.out --include --trace-ascii log/39/trace743 --trace-config all --trace-time http://127.0.0.1:42899/743 -K log/39/config > log/39/stdout743 2> log/39/stderr743 === End of file commands.log === Start of file config -A pointless data = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" === End of file config === Start of file http_server.log 09:41:02.531865 ====> Client connect 09:41:02.532177 accept_connection 3 returned 4 09:41:02.532358 accept_connection 3 returned 0 09:41:02.533144 Read 93 bytes 09:41:02.533295 Process 93 bytes request 09:41:02.533388 Got request: GET /verifiedserver HTTP/1.1 09:41:02.533664 Are-we-friendly question received 09:41:02.533968 Wrote request (93 bytes) input to log/39/server.input 09:41:02.534266 Identifying ourselves as friends 09:41:02.536338 Response sent (56 bytes) and written to log/39/server.response 09:41:02.539592 special request received, no persistency 09:41:02.539740 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 743 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind743 valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind740 ../src/curl -q --output log/6/curl740.out --include --trace-ascii log/6/trace740 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout740 2> log/6/stderr740 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind749 ../src/curl -q --output log/31/curl749.out --include --trace-ascii log/31/trace749 --trace-config all --trace-time http://test.example --proxy http://127.0.0.1:45557 --proxytunnel -sS > log/31/stdout749 2> log/31/stderr749 d: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind743 setenv HOME = /build/curl/src/build-curl/tests/log/6 test 0740...[IPFS with gateway URL from multiline gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind740 ../src/curl -q --output log/6/curl740.out --include --trace-ascii log/6/trace740 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout740 2> log/6/stderr740 740: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 740 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind740 ../src/curl -q --output log/6/curl740.out --include --trace-ascii log/6/trace740 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout740 2> log/6/stderr740 === End of file commands.log === Start of file http_server.log 09:41:02.306756 ====> Client connect 09:41:02.307078 accept_connection 3 returned 4 09:41:02.307245 accept_connection 3 returned 0 09:41:02.307374 Read 93 bytes 09:41:02.307560 Process 93 bytes request 09:41:02.307675 Got request: GET /verifiedserver HTTP/1.1 09:41:02.307759 Are-we-friendly question received 09:41:02.308007 Wrote request (93 bytes) input to log/6/server.input 09:41:02.308205 Identifying ourselves as friends 09:41:02.309968 Response sent (56 bytes) and written to log/6/server.response 09:41:02.310088 special request received, no persistency 09:41:02.310161 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 740 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind740 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind740 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind752 ../src/curl -q --output log/10/curl752.out --include --trace-ascii log/10/trace752 --trace-config all --trace-time http://127.0.0.1:36913/752 -f --retry 1 > log/10/stdout752 2> log/10/stderr752 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind750 ../src/curl -q --output log/35/curl750.out --include --trace-ascii log/35/trace750 --trace-config all --trace-time http://test.example --proxy http://127.0.0.1:43179 --proxytunnel -sS > log/35/stdout750 2> log/35/stderr750 test 0749...[HTTP CONNECT with proxy returning 400 and closing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind749 ../src/curl -q --output log/31/curl749.out --include --trace-ascii log/31/trace749 --trace-config all --trace-time http://test.example --proxy http://127.0.0.1:45557 --proxytunnel -sS > log/31/stdout749 2> log/31/stderr749 749: stderr FAILED: --- log/31/check-expected 2025-07-18 09:41:03.448671512 +0000 +++ log/31/check-generated 2025-07-18 09:41:03.447596673 +0000 @@ -1 +0,0 @@ -curl: (56) CONNECT tunnel failed, response 400[CR][LF] == Contents of files in the log/31/ dir after test 749 === Start of file check-expected curl: (56) CONNECT tunnel failed, response 400[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind749 ../src/curl -q --output log/31/curl749.out --include --trace-ascii log/31/trace749 --trace-config all --trace-time http://test.example --proxy http://127.0.0.1:45557 --proxytunnel -sS > log/31/stdout749 2> log/31/stderr749 === End of file commands.log === Start of file http_server.log 09:41:02.888786 ====> Client connect 09:41:02.889171 accept_connection 3 returned 4 09:41:02.889374 accept_connection 3 returned 0 09:41:02.889657 Read 93 bytes 09:41:02.889792 Process 93 bytes request 09:41:02.889889 Got request: GET /verifiedserver HTTP/1.1 09:41:02.889984 Are-we-friendly question received 09:41:02.890268 Wrote request (93 bytes) input to log/31/server.input 09:41:02.890594 Identifying ourselves as friends 09:41:02.893701 Response sent (56 bytes) and written to log/31/server.response 09:41:02.893887 special request received, no persistency 09:41:02.893987 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 749 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind749 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind749 test 0752...[--retry and -f on a HTTP 404 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind752 ../src/curl -q --output log/10/curl752.out --include --trace-ascii log/10/trace752 --trace-config all --trace-time http://127.0.0.1:36913/752 -f --retry 1 > log/10/stdout752 2> log/10/stderr752 752: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 752 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind752 ../src/curl -q --output log/10/curl752.out --include --trace-ascii log/10/trace752 --trace-config all --trace-time http://127.0.0.1:36913/752 -f --retry 1 > log/10/stdout752 2> log/10/stderr752 === End of file commands.log === Start of file http_server.log 09:41:02.993688 ====> Client connect 09:41:02.994087 accept_connection 3 returned 4 09:41:02.994253 accept_connection 3 returned 0 09:41:02.995141 Read 93 bytes 09:41:02.995284 Process 93 bytes request 09:41:02.995374 Got request: GET /verifiedserver HTTP/1.1 09:41:02.995536 Are-we-friendly question received 09:41:02.995813 Wrote request (93 bytes) input to log/10/server.input 09:41:02.996026 Identifying ourselves as friends 09:41:02.997689 Response sent (56 bytes) and written to log/10/server.response 09:41:02.997809 special request received, no persistency 09:41:02.997880 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 752 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind752 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind752 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind747 ../src/curl -q --output log/4/curl747.out --include --trace-ascii log/4/trace747 --trace-config all --trace-time http://127.0.0.1:43013/747 > log/4/stdout747 2> log/4/stderr747 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind754 ../src/curl -q --output log/54/curl754.out --include --trace-ascii log/54/trace754 --trace-config all --trace-time ftp://127.0.0.1:41829/path/ -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/54/stdout754 2> log/54/stderr754 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind741 ../src/curl -q --output log/9/curl741.out --include --trace-ascii log/9/trace741 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/9/stdout741 2> log/9/stderr741 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind786 ../src/curl -q --output log/13/curl786.out --include --trace-ascii log/13/trace786 --trace-config all --trace-time http://127.0.0.1:44087/786 --variable "name[5-15]@-" --expand-data '{{name}}' log/13/stdout786 2> log/13/stderr786 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind784 ../src/curl -q --output log/36/curl784.out --include --trace-ascii log/36/trace784 --trace-config all --trace-time http://127.0.0.1:44255/784 --variable "name[5-15]@log/36/in784" --expand-data '{{name}}' > log/36/stdout784 2> log/36/stderr784 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind785 ../src/curl -q --output log/19/curl785.out --include --trace-ascii log/19/trace785 --trace-config all --trace-time http://127.0.0.1:35697/785 --variable "name[5-]@log/19/in785" --expand-data '{{name}}' > log/19/stdout785 2> log/19/stderr785 test 0750...[HTTP CONNECT with proxy returning just HTML and closing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind750 ../src/curl -q --output log/35/curl750.out --include --trace-ascii log/35/trace750 --trace-config all --trace-time http://test.example --proxy http://127.0.0.1:43179 --proxytunnel -sS > log/35/stdout750 2> log/35/stderr750 750: stderr FAILED: --- log/35/check-expected 2025-07-18 09:41:03.531284490 +0000 +++ log/35/check-generated 2025-07-18 09:41:03.530596631 +0000 @@ -1 +0,0 @@ -curl: (43) Invalid response header[CR][LF] == Contents of files in the log/35/ dir after test 750 === Start of file check-expected curl: (43) Invalid response header[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind750 ../src/curl -q --output log/35/curl750.out --include --trace-ascii log/35/trace750 --trace-config all --trace-time http://test.example --proxy http://127.0.0.1:43179 --proxytunnel -sS > log/35/stdout750 2> log/35/stderr750 === End of file commands.log === Start of file http_server.log 09:41:02.918358 ====> Client connect 09:41:02.918816 accept_connection 3 returned 4 09:41:02.918969 accept_connection 3 returned 0 09:41:02.919099 Read 93 bytes 09:41:02.919196 Process 93 bytes request 09:41:02.919326 Got request: GET /verifiedserver HTTP/1.1 09:41:02.919607 Are-we-friendly question received 09:41:02.920012 Wrote request (93 bytes) input to log/35/server.input 09:41:02.920223 Identifying ourselves as friends 09:41:02.921085 Response sent (56 bytes) and written to log/35/server.response 09:41:02.921202 special request received, no persistency 09:41:02.921266 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 750 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind750 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind750 test 0747...[Reject too many HTTP response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind747 ../src/curl -q --output log/4/curl747.out --include --trace-ascii log/4/trace747 --trace-config all --trace-time http://127.0.0.1:43013/747 > log/4/stdout747 2> log/4/stderr747 747: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 747 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind747 ../src/curl -q --output log/4/curl747.out --include --trace-ascii log/4/trace747 --trace-config all --trace-time http://127.0.0.1:43013/747 > log/4/stdout747 2> log/4/stderr747 === End of file commands.log === Start of file http_server.log 09:41:02.833929 ====> Client connect 09:41:02.834813 accept_connection 3 returned 4 09:41:02.834999 accept_connection 3 returned 0 09:41:02.835135 Read 93 bytes 09:41:02.835237 Process 93 bytes request 09:41:02.835326 Got request: GET /verifiedserver HTTP/1.1 09:41:02.835404 Are-we-friendly question received 09:41:02.835708 Wrote request (93 bytes) input to log/4/server.input 09:41:02.835883 Identifying ourselves as friends 09:41:02.837206 Response sent (56 bytes) and written to log/4/server.response 09:41:02.837433 special request received, no persistency 09:41:02.838923 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 747 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind747 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind747 setenv HOME = /build/curl/src/build-curl/tests/log/9 test 0741...[IPFS malformed gw URL from multiline gateway file, first line no url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind741 ../src/curl -q --output log/9/curl741.out --include --trace-ascii log/9/trace741 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/9/stdout741 2> log/9/stderr741 curl returned 1, when expecting 3 741: exit FAILED == Contents of files in the log/9/ dir after test 741 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind741 ../src/curl -q --output log/9/curl741.out --include --trace-ascii log/9/trace741 --trace-config all --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/9/stdout741 2> log/9/stderr741 === End of file commands.log === Start of file http_server.log 09:41:02.339820 ====> Client connect 09:41:02.340145 accept_connection 3 returned 4 09:41:02.340357 accept_connection 3 returned 0 09:41:02.340654 Read 93 bytes 09:41:02.340784 Process 93 bytes request 09:41:02.340893 Got request: GET /verifiedserver HTTP/1.1 09:41:02.341014 Are-we-friendly question received 09:41:02.341279 Wrote request (93 bytes) input to log/9/server.input 09:41:02.341822 Identifying ourselves as friends 09:41:02.345735 Response sent (56 bytes) and written to log/9/server.response 09:41:02.345957 special request received, no persistency 09:41:02.346115 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 741 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind741 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind741 test 0786...[--variable with a file byte range, reading from stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind786 ../src/curl -q --output log/13/curl786.out --include --trace-ascii log/13/trace786 --trace-config all --trace-time http://127.0.0.1:44087/786 --variable "name[5-15]@-" --expand-data '{{name}}' log/13/stdout786 2> log/13/stderr786 786: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 786 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind786 ../src/curl -q --output log/13/curl786.out --include --trace-ascii log/13/trace786 --trace-config all --trace-time http://127.0.0.1:44087/786 --variable "name[5-15]@-" --expand-data '{{name}}' log/13/stdout786 2> log/13/stderr786 === End of file commands.log === Start of file http_server.log 09:41:03.189688 ====> Client connect 09:41:03.190069 accept_connection 3 returned 4 09:41:03.190267 accept_connection 3 returned 0 09:41:03.190435 Read 93 bytes 09:41:03.190647 Process 93 bytes request 09:41:03.190743 Got request: GET /verifiedserver HTTP/1.1 09:41:03.190830 Are-we-friendly question received 09:41:03.191097 Wrote request (93 bytes) input to log/13/server.input 09:41:03.191317 Identifying ourselves as friends 09:41:03.192302 Response sent (56 bytes) and written to log/13/server.response 09:41:03.192426 special request received, no persistency 09:41:03.194983 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 786 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file stdin-for-786 On the first Monday of the month of April, 1625, the market town of Meung === End of file stdin-for-786 === Start of file valgrind786 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind786 test 0785...[--variable with a file byte range without end] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind785 ../src/curl -q --output log/19/curl785.out --include --trace-ascii log/19/trace785 --trace-confiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind787 ../src/curl -q --output log/63/curl787.out --include --trace-ascii log/63/trace787 --trace-config all --trace-time http://127.0.0.1:38797/787 --variable "name[15-14]@&LOGDIR/fooo" --expand-data '{{name}}' > log/63/stdout787 2> log/63/stderr787 g all --trace-time http://127.0.0.1:35697/785 --variable "name[5-]@log/19/in785" --expand-data '{{name}}' > log/19/stdout785 2> log/19/stderr785 785: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 785 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind785 ../src/curl -q --output log/19/curl785.out --include --trace-ascii log/19/trace785 --trace-config all --trace-time http://127.0.0.1:35697/785 --variable "name[5-]@log/19/in785" --expand-data '{{name}}' > log/19/stdout785 2> log/19/stderr785 === End of file commands.log === Start of file http_server.log 09:41:03.241945 ====> Client connect 09:41:03.242280 accept_connection 3 returned 4 09:41:03.242599 accept_connection 3 returned 0 09:41:03.243304 Read 93 bytes 09:41:03.243602 Process 93 bytes request 09:41:03.243739 Got request: GET /verifiedserver HTTP/1.1 09:41:03.243837 Are-we-friendly question received 09:41:03.244101 Wrote request (93 bytes) input to log/19/server.input 09:41:03.244313 Identifying ourselves as friends 09:41:03.245199 Response sent (56 bytes) and written to log/19/server.response 09:41:03.245319 special request received, no persistency 09:41:03.245389 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file in785 On the first Monday of the month of April, 1625, the market town of Meung === End of file in785 === Start of file server.cmd Testnum 785 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind785 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind785 test 0784...[--variable with a file byte range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind784 ../src/curl -q --output log/36/curl784.out --include --trace-ascii log/36/trace784 --trace-config all --trace-time http://127.0.0.1:44255/784 --variable "name[5-15]@log/36/in784" --expand-data '{{name}}' > log/36/stdout784 2> log/36/stderr784 784: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 784 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind784 ../src/curl -q --output log/36/curl784.out --include --trace-ascii log/36/trace784 --trace-config all --trace-time http://127.0.0.1:44255/784 --variable "name[5-15]@log/36/in784" --expand-data '{{name}}' > log/36/stdout784 2> log/36/stderr784 === End of file commands.log === Start of file http_server.log 09:41:03.149939 ====> Client connect 09:41:03.150334 accept_connection 3 returned 4 09:41:03.150574 accept_connection 3 returned 0 09:41:03.153296 Read 93 bytes 09:41:03.153521 Process 93 bytes request 09:41:03.153625 Got request: GET /verifiedserver HTTP/1.1 09:41:03.153719 Are-we-friendly question received 09:41:03.153972 Wrote request (93 bytes) input to log/36/server.input 09:41:03.154179 Identifying ourselves as friends 09:41:03.160622 Response sent (56 bytes) and written to log/36/server.response 09:41:03.160788 special request received, no persistency 09:41:03.160867 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file in784 On the first Monday of the month of April, 1625, the market town of Meung === End of file in784 === Start of file server.cmd Testnum 784 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind784 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind784 test 0754...[FTP list with quote ops] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind754 ../src/curl -q --output log/54/curl754.out --include --trace-ascii log/54/trace754 --trace-config all --trace-time ftp://127.0.0.1:41829/path/ -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/54/stdout754 2> log/54/stderr754 754: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 754 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind754 ../src/curl -q --output log/54/curl754.out --include --trace-ascii log/54/trace754 --trace-config all --trace-time ftp://127.0.0.1:41829/path/ -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/54/stdout754 2> log/54/stderr754 === End of file commands.log === Start of file ftp_server.log 09:41:02.792488 ====> Client connect 09:41:02.798007 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:02.800949 < "USER anonymous" 09:41:02.804942 > "331 We are happy you popped in![CR][LF]" 09:41:02.806949 < "PASS ftp@example.com" 09:41:02.807344 > "230 Welcome you silly person[CR][LF]" 09:41:02.811616 < "PWD" 09:41:02.812465 > "257 "/" is current directory[CR][LF]" 09:41:02.814432 < "EPSV" 09:41:02.814846 ====> Passive DATA channel requested by client 09:41:02.815089 DATA sockfilt for passive data channel starting... 09:41:02.827298 DATA sockfilt for passive data channel started (pid 112058) 09:41:02.828652 DATA sockfilt for passive data channel listens on port 37621 09:41:02.829235 > "229 Entering Passive Mode (|||37621|)[LF]" 09:41:02.829504 Client has been notified that DATA conn will be accepted on port 37621 09:41:02.833016 Client connects to port 37621 09:41:02.833359 ====> Client established passive DATA connection on port 37621 09:41:02.834476 < "TYPE I" 09:41:02.835474 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:02.837880 < "SIZE verifiedserver" 09:41:02.839181 > "213 17[CR][LF]" 09:41:02.841198 < "RETR verifiedserver" 09:41:02.842852 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:02.843690 =====> Closing passive DATA connection... 09:41:02.844052 Server disconnects passive DATA connection 09:41:02.844708 Server disconnected passive DATA connection 09:41:02.845100 DATA sockfilt for passive data channel quits (pid 112058) 09:41:02.847534 DATA sockfilt for passive data channel quit (pid 112058) 09:41:02.847900 =====> Closed passive DATA connection 09:41:02.848686 > "226 File transfer complete[CR][LF]" 09:41:02.884671 < "QUIT" 09:41:02.885970 > "221 bye bye baby[CR][LF]" 09:41:02.890009 MAIN sockfilt said DISC 09:41:02.890974 ====> Client disconnected 09:41:02.891517 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:03.045650 ====> Client connect 09:41:03.047744 Received DATA (on stdin) 09:41:03.047914 > 160 bytes data, server => client 09:41:03.052137 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:03.052296 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:03.052395 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:03.053296 < 16 bytes data, client => server 09:41:03.053549 'USER anonymous\r\n' 09:41:03.055210 Received DATA (on stdin) 09:41:03.055372 > 33 bytes data, server => client 09:41:03.059047 '331 We are happy you popped in!\r\n' 09:41:03.059814 < 22 bytes data, client => server 09:41:03.059966 'PASS ftp@example.com\r\n' 09:41:03.061521 Received DATA (on stdin) 09:41:03.061681 > 30 bytes data, server => client 09:41:03.061771 '230 Welcome you silly person\r\n' 09:41:03.064558 < 5 bytes data, client => server 09:41:03.064731 'PWD\r\n' 09:41:03.065803 Received DATA (on stdin) 09:41:03.065958 > 30 bytes data, server => client 09:41:03.066552 '257 "/" is current directory\r\n' 09:41:03.067306 < 6 bytes data, client => server 09:41:03.067531 'EPSV\r\n' 09:41:03.083605 Received DATA (on stdin) 09:41:03.083784 > 38 bytes data, server => client 09:41:03.083879 '229 Entering Passive Mode (|||37621|)\n' 09:41:03.086240 < 8 bytes data, client => server 09:41:03.086369 'TYPE I\r\n' 09:41:03.088795 Received DATA (on stdin) 09:41:03.088961 > 33 bytes data, server => client 09:41:03.089586 '200 I modify TYPE as you wanted\r\n' 09:41:03.090437 < 21 bytes data, client => server 09:41:03.090718 'SIZE verifiedserver\r\n' 09:41:03.092035 Received DATA (on stdin) 09:41:03.092191 > 8 bytes data, server => client 09:41:03.092381 '213 17\r\n' 09:41:03.094172 < 21 bytes data, client => server 09:41:03.094339 'RETR verifiedserver\r\n' 09:41:03.095370 Received DATA (on stdin) 09:41:03.095625 > 29 bytes data, server => client 09:41:03.095823 '150 Binary junk (17 bytes).\r\n' 09:41:03.101979 Received DATA (on stdin) 09:41:03.102151 > 28 bytes data, server => client 09:41:03.102818 '226 File transfer complete\r\n' 09:41:03.137510 < 6 bytes data, client => server 09:41:03.137689 'QUIT\r\n' 09:41:03.138907 Received DATA (on stdin) 09:41:03.139048 > 18 bytes data, server => client 09:41:03.139216 '221 bye bye baby\r\n' 09:41:03.140240 ====> Client disconnect 09:41:03.144072 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:02.079044 Running IPv4 version 09:41:02.079914 Listening on port 37621 09:41:02.080348 Wrote pid 112058 to log/54/server/ftp_sockdata.pid 09:41:02.080638 Received PING (on stdin) 09:41:02.081600 Received PORT (on stdin) 09:41:02.085973 ====> Client connect 09:41:02.097061 Received DATA (on stdin) 09:41:02.097238 > 17 bytes data, server => client 09:41:02.097331 'WE ROOLZ: 78730\r\n' 09:41:02.098094 Received DISC (on stdin) 09:41:02.098323 ====> Client forcibly disconnected 09:41:02.099166 Received QUIT (on stdin) 09:41:02.099316 quits 09:41:02.099899 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY FAIL 500 this might not be a failure Testnum 754 === End of file server.cmd === Start of file valgrind754 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind754 test 0787...[--variable with a file byte range, bad range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind787 ../src/curl -q --output log/63/curl787.out --include --trace-ascii log/63/trace787 --trace-config all --trace-time http://127.0.0.1:38797/787 --variable "name[15-14]@&LOGDIR/fooo" --expand-data '{{name}}' > log/63/stdout787 2> log/63/stderr787 curl returned 1, when expecting 2 787: exit FAILED == Contents of files in the log/63/ dir afterCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind788 ../src/curl -q --output log/18/curl788.out --include --trace-ascii log/18/trace788 --trace-config all --trace-time http://127.0.0.1:41285/788 --variable "name[15-15]@log/18/in788" --expand-data '{{name}}' > log/18/stdout788 2> log/18/stderr788 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind791 ../src/curl -q --output log/43/curl791.out --include --trace-ascii log/43/trace791 --trace-config all --trace-time http://127.0.0.1:41267/791 --variable "name[10-30]=0123456789abcdef" --expand-data '{{name}}' > log/43/stdout791 2> log/43/stderr791 test 787 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind787 ../src/curl -q --output log/63/curl787.out --include --trace-ascii log/63/trace787 --trace-config all --trace-time http://127.0.0.1:38797/787 --variable "name[15-14]@&LOGDIR/fooo" --expand-data '{{name}}' > log/63/stdout787 2> log/63/stderr787 === End of file commands.log === Start of file http_server.log 09:41:03.390625 ====> Client connect 09:41:03.390974 accept_connection 3 returned 4 09:41:03.391180 accept_connection 3 returned 0 09:41:03.391324 Read 93 bytes 09:41:03.391429 Process 93 bytes request 09:41:03.391632 Got request: GET /verifiedserver HTTP/1.1 09:41:03.391807 Are-we-friendly question received 09:41:03.392091 Wrote request (93 bytes) input to log/63/server.input 09:41:03.392280 Identifying ourselves as friends 09:41:03.395721 Response sent (56 bytes) and written to log/63/server.response 09:41:03.395887 special request received, no persistency 09:41:03.395985 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 787 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind787 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind787 test 0788...[--variable with a file and single-byte byte range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind788 ../src/curl -q --output log/18/curl788.out --include --trace-ascii log/18/trace788 --trace-config all --trace-time http://127.0.0.1:41285/788 --variable "name[15-15]@log/18/in788" --expand-data '{{name}}' > log/18/stdout788 2> log/18/stderr788 788: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 788 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind788 ../src/curl -q --output log/18/curl788.out --include --trace-ascii log/18/trace788 --trace-config all --trace-time http://127.0.0.1:41285/788 --variable "name[15-15]@log/18/in788" --expand-data '{{name}}' > log/18/stdout788 2> log/18/stderr788 === End of file commands.log === Start of file http_server.log 09:41:03.549938 ====> Client connect 09:41:03.550236 accept_connection 3 returned 4 09:41:03.550430 accept_connection 3 returned 0 09:41:03.550799 Read 93 bytes 09:41:03.550926 Process 93 bytes request 09:41:03.551123 Got request: GET /verifiedserver HTTP/1.1 09:41:03.551209 Are-we-friendly question received 09:41:03.551432 Wrote request (93 bytes) input to log/18/server.input 09:41:03.551750 Identifying ourselves as friends 09:41:03.552405 Response sent (56 bytes) and written to log/18/server.response 09:41:03.555693 special request received, no persistency 09:41:03.555776 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file in788 On the first Monday of the month of April, 1625, the market town of Meung === End of file in788 === Start of file server.cmd Testnum 788 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind788 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind788 test 0791...[--variable with a byte range using plain assign, out of range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind791 ../src/curl -q --output log/43/curl791.out --include --trace-ascii log/43/trace791 --trace-config all --trace-time http://127.0.0.1:41267/791 --variable "name[10-30]=0123456789abcdef" --expand-data '{{name}}' > log/43/stdout791 2> log/43/stderr791 791: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 791 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quietCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind789 ../src/curl -q --output log/58/curl789.out --include --trace-ascii log/58/trace789 --trace-config all --trace-time http://127.0.0.1:46727/789 --variable "name[75-85]@log/58/in789" --expand-data '{{name}}' > log/58/stdout789 2> log/58/stderr789 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind744 ../src/curl -q --output log/30/curl744.out --include --trace-ascii log/30/trace744 --trace-config all --trace-time http://foo.host:43913/744 -p --proxy1.0 127.0.0.1:33057 -A "" --netrc-file log/30/netrc744 > log/30/stdout744 2> log/30/stderr744 --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind791 ../src/curl -q --output log/43/curl791.out --include --trace-ascii log/43/trace791 --trace-config all --trace-time http://127.0.0.1:41267/791 --variable "name[10-30]=0123456789abcdef" --expand-data '{{name}}' > log/43/stdout791 2> log/43/stderr791 === End of file commands.log === Start of file http_server.log 09:41:03.707579 ====> Client connect 09:41:03.707947 accept_connection 3 returned 4 09:41:03.708119 accept_connection 3 returned 0 09:41:03.708259 Read 93 bytes 09:41:03.708362 Process 93 bytes request 09:41:03.708537 Got request: GET /verifiedserver HTTP/1.1 09:41:03.708660 Are-we-friendly question received 09:41:03.708946 Wrote request (93 bytes) input to log/43/server.input 09:41:03.709159 Identifying ourselves as friends 09:41:03.710029 Response sent (56 bytes) and written to log/43/server.response 09:41:03.710155 special request received, no persistency 09:41:03.710225 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 791 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind791 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind791 test 0789...[--variable with a file and byte range out of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind789 ../src/curl -q --output log/58/curl789.out --include --trace-ascii log/58/trace789 --trace-config all --trace-time http://127.0.0.1:46727/789 --variable "name[75-85]@log/58/in789" --expand-data '{{name}}' > log/58/stdout789 2> log/58/stderr789 789: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 789 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind789 ../src/curl -q --output log/58/curl789.out --include --trace-ascii log/58/trace789 --trace-config all --trace-time http://127.0.0.1:46727/789 --variable "name[75-85]@log/58/in789" --expand-data '{{name}}' > log/58/stdout789 2> log/58/stderr789 === End of file commands.log === Start of file http_server.log 09:41:03.616815 ====> Client connect 09:41:03.617372 accept_connection 3 returned 4 09:41:03.617803 accept_connection 3 returned 0 09:41:03.617961 Read 93 bytes 09:41:03.618079 Process 93 bytes request 09:41:03.618175 Got request: GET /verifiedserver HTTP/1.1 09:41:03.618270 Are-we-friendly question received 09:41:03.618821 Wrote request (93 bytes) input to log/58/server.input 09:41:03.619086 Identifying ourselves as friends 09:41:03.619977 Response sent (56 bytes) and written to log/58/server.response 09:41:03.620084 special request received, no persistency 09:41:03.620165 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file in789 On the first Monday of the month of April, 1625, the market town of Meung === End of file in789 === Start of file server.cmd Testnum 789 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind789 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind789 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/30/server/http2_server.pid" --logfile "log/30/http2_server.log" --logdir "log/30" --portfile log/30/server/http2_server.port --config log/30/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 111735 port 33057 * pid http-proxy => 111735 111735 test 0744...[--netrc-file with a 127 byte line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind744 ../src/curl -q --output log/30/curl744.out --include --trace-ascii log/30/trace744 --trace-config all --trace-time http://foo.host:43913/744 -p --proxy1.0 127.0.0.1:33057 -A "" --netrc-file log/30CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind792 ../src/curl -q --output log/17/curl792.out --include --trace-ascii log/17/trace792 --trace-config all --trace-time --netrc --netrc-file log/17/netrc792 ftp://127.0.0.1:33875/792 > log/17/stdout792 2> log/17/stderr792 /netrc744 > log/30/stdout744 2> log/30/stderr744 744: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 744 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind744 ../src/curl -q --output log/30/curl744.out --include --trace-ascii log/30/trace744 --trace-config all --trace-time http://foo.host:43913/744 -p --proxy1.0 127.0.0.1:33057 -A "" --netrc-file log/30/netrc744 > log/30/stdout744 2> log/30/stderr744 === End of file commands.log === Start of file http2_server.log 09:41:02.972152 Run as proxy, CONNECT to host 127.0.0.1 09:41:02.973085 Running HTTP IPv4 version on port 33057 09:41:02.973663 Wrote pid 111735 to log/30/server/http2_server.pid 09:41:02.974105 Wrote port 33057 to log/30/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:02.687872 ====> Client connect 09:41:02.688155 accept_connection 3 returned 4 09:41:02.688310 accept_connection 3 returned 0 09:41:02.688431 Read 93 bytes 09:41:02.688640 Process 93 bytes request 09:41:02.688727 Got request: GET /verifiedserver HTTP/1.1 09:41:02.688795 Are-we-friendly question received 09:41:02.688998 Wrote request (93 bytes) input to log/30/server.input 09:41:02.689160 Identifying ourselves as friends 09:41:02.689913 Response sent (56 bytes) and written to log/30/server.response 09:41:02.690017 special request received, no persistency 09:41:02.690077 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file netrc744 machine foo.host login foo password baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar === End of file netrc744 === Start of file server.cmd Testnum 744 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind744 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind744 test 0792...[.netrc with embedded NULL byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind792 ../src/curl -q --output log/17/curl792.out --include --trace-ascii log/17/trace792 --trace-config all --trace-time --netrc --netrc-file log/17/netrc792 ftp://127.0.0.1:33875/792 > log/17/stdout792 2> log/17/stderr792 792: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 792 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind792 ../src/curl -q --output log/17/curl792.out --include --trace-ascii log/17/trace792 --trace-config all --trace-time --netrc --netrc-file log/17/netrc792 ftp://127.0.0.1:33875/792 > log/17/stdout792 2> log/17/stderr792 === End of file commands.log === Start of file ftp_server.log 09:41:03.440542 ====> Client connect 09:41:03.442039 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:03.445151 < "USER anonymous" 09:41:03.446716 > "331 We are happy you popped in![CR][LF]" 09:41:03.448192 < "PASS ftp@example.com" 09:41:03.448715 > "230 Welcome you silly person[CR][LF]" 09:41:03.453095 < "PWD" 09:41:03.453918 > "257 "/" is current directory[CR][LF]" 09:41:03.456273 < "EPSV" 09:41:03.456644 ====> Passive DATA channel requested by client 09:41:03.457047 DATA sockfilt for passive data channel starting... 09:41:03.476937 DATA sockfilt for passive data channel started (pid 112632) 09:41:03.478090 DATA sockfilt for passive data channel listens on port 35957 09:41:03.478556 > "229 Entering Passive Mode (|||35957|)[LF]" 09:41:03.478898 Client has been notified that DATA conn will be accepted on port 35957 09:41:03.480719 Client connects to port 35957 09:41:03.481116 ====> Client established passive DATA connection on port 35957 09:41:03.481985 < "TYPE I" 09:41:03.482392 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:03.485339 < "SIZE verifiedserver" 09:41:03.486951 > "213 17[CR][LF]" 09:41:03.488263 < "RETR verifiedserver" 09:41:03.488735 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:03.489546 =====> Closing passive DATA connection... 09:41:03.496901 Server disconnects passive DATA connection 09:41:03.497247 Fancy that; client wants to DISC, too 09:41:03.498560 Server disconnected passive DATA connection 09:41:03.498926 DATA sockfilt for passive data channel quits (pid 112632) 09:41:03.500708 DATA sockfilt for passive data channel quit (pid 112632) 09:41:03.501029 =====> Closed passive DATA connection 09:41:03.501338 > "226 File transfer complete[CR][LF]" 09:41:03.532322 < "QUIT" 09:41:03.532732 > "221 bye bye baby[CR][LF]" 09:41:03.537865 MAIN sockfilt said DISC 09:41:03.538416 ====> Client disconnected 09:41:03.539135 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:03.693669 ====> Client connect 09:41:03.696104 Received DATA (on stdin) 09:41:03.696273 > 160 bytes data, server => client 09:41:03.696394 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:03.696642 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:03.696770 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:03.697724 < 16 bytes data, client => server 09:41:03.697883 'USER anonymous\r\n' 09:41:03.699280 Received DATA (on stdin) 09:41:03.699431 > 33 bytes data, server => client 09:41:03.699704 '331 We are happy you popped in!\r\n' 09:41:03.701002 < 22 bytes data, client => server 09:41:03.701145 'PASS ftp@example.com\r\n' 09:41:03.704382 Received DATA (on stdin) 09:41:03.704622 > 30 bytes data, server => client 09:41:03.704742 '230 Welcome you silly person\r\n' 09:41:03.705830 < 5 bytes data, clienCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind790 ../src/curl -q --output log/39/curl790.out --include --trace-ascii log/39/trace790 --trace-config all --trace-time http://127.0.0.1:42899/790 --variable "name[5-9]=0123456789abcdef" --expand-data '{{name}}' > log/39/stdout790 2> log/39/stderr790 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind793 ../src/curl -q --output log/31/curl793.out --include --trace-ascii log/31/trace793 --trace-config all --trace-time --netrc --netrc-file log/31/netrc793 ftp://127.0.0.1:40969/793 > log/31/stdout793 2> log/31/stderr793 t => server 09:41:03.706046 'PWD\r\n' 09:41:03.707195 Received DATA (on stdin) 09:41:03.707343 > 30 bytes data, server => client 09:41:03.707953 '257 "/" is current directory\r\n' 09:41:03.709139 < 6 bytes data, client => server 09:41:03.709329 'EPSV\r\n' 09:41:03.732282 Received DATA (on stdin) 09:41:03.732547 > 38 bytes data, server => client 09:41:03.732676 '229 Entering Passive Mode (|||35957|)\n' 09:41:03.734428 < 8 bytes data, client => server 09:41:03.734681 'TYPE I\r\n' 09:41:03.736128 Received DATA (on stdin) 09:41:03.736279 > 33 bytes data, server => client 09:41:03.736365 '200 I modify TYPE as you wanted\r\n' 09:41:03.737095 < 21 bytes data, client => server 09:41:03.737238 'SIZE verifiedserver\r\n' 09:41:03.739588 Received DATA (on stdin) 09:41:03.739748 > 8 bytes data, server => client 09:41:03.740661 '213 17\r\n' 09:41:03.741386 < 21 bytes data, client => server 09:41:03.741609 'RETR verifiedserver\r\n' 09:41:03.742547 Received DATA (on stdin) 09:41:03.742697 > 29 bytes data, server => client 09:41:03.742788 '150 Binary junk (17 bytes).\r\n' 09:41:03.757574 Received DATA (on stdin) 09:41:03.757853 > 28 bytes data, server => client 09:41:03.757964 '226 File transfer complete\r\n' 09:41:03.785418 < 6 bytes data, client => server 09:41:03.785663 'QUIT\r\n' 09:41:03.786567 Received DATA (on stdin) 09:41:03.786738 > 18 bytes data, server => client 09:41:03.786831 '221 bye bye baby\r\n' 09:41:03.790576 ====> Client disconnect 09:41:03.792157 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:03.725742 Running IPv4 version 09:41:03.726309 Listening on port 35957 09:41:03.727810 Wrote pid 112632 to log/17/server/ftp_sockdata.pid 09:41:03.727984 Received PING (on stdin) 09:41:03.731112 Received PORT (on stdin) 09:41:03.734152 ====> Client connect 09:41:03.745571 Received DATA (on stdin) 09:41:03.745738 > 17 bytes data, server => client 09:41:03.745855 'WE ROOLZ: 86383\r\n' 09:41:03.746806 ====> Client disconnect 09:41:03.751550 Received DISC (on stdin) 09:41:03.751734 Crikey! Client also wants to disconnect 09:41:03.751856 Received ACKD (on stdin) 09:41:03.752976 Received QUIT (on stdin) 09:41:03.753103 quits 09:41:03.753556 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc792 machine 127.0.0.1 login username password hello === End of file netrc792 === Start of file server.cmd Testnum 792 === End of file server.cmd === Start of file valgrind792 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind792 test 0790...[--variable with a byte range using plain assign] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind790 ../src/curl -q --output log/39/curl790.out --include --trace-ascii log/39/trace790 --trace-config all --trace-time http://127.0.0.1:42899/790 --variable "name[5-9]=0123456789abcdef" --expand-data '{{name}}' > log/39/stdout790 2> log/39/stderr790 790: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 790 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind790 ../src/curl -q --output log/39/curl790.out --include --trace-ascii log/39/trace790 --trace-config all --trace-time http://127.0.0.1:42899/790 --variable "name[5-9]=0123456789abcdef" --expand-data '{{name}}' > log/39/stdout790 2> log/39/stderr790 === End of file commands.log === Start of file http_server.log 09:41:03.692128 ====> Client connect 09:41:03.692733 accept_connection 3 returned 4 09:41:03.692981 accept_connection 3 returned 0 09:41:03.693734 Read 93 bytes 09:41:03.693913 Process 93 bytes request 09:41:03.694012 Got request: GET /verifiedserver HTTP/1.1 09:41:03.694099 Are-we-friendly question received 09:41:03.694379 Wrote request (93 bytes) input to log/39/server.input 09:41:03.694697 Identifying ourselves as friends 09:41:03.695355 Response sent (56 bytes) and written to log/39/server.response 09:41:03.695548 special request received, no persistency 09:41:03.695648 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 790 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind790 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind790 test 0793...[.netrc with embedded NULL byte, with quoted token] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind793 ../src/curl -q --output log/31/curl793CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind812 ../src/curl -q --output log/30/curl812.out --include --trace-ascii log/30/trace812 --trace-config all --trace-time imap://127.0.0.1:35591 -u user:secret -X 'DELETE 812' > log/30/stdout812 2> log/30/stderr812 .out --include --trace-ascii log/31/trace793 --trace-config all --trace-time --netrc --netrc-file log/31/netrc793 ftp://127.0.0.1:40969/793 > log/31/stdout793 2> log/31/stderr793 793: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 793 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind793 ../src/curl -q --output log/31/curl793.out --include --trace-ascii log/31/trace793 --trace-config all --trace-time --netrc --netrc-file log/31/netrc793 ftp://127.0.0.1:40969/793 > log/31/stdout793 2> log/31/stderr793 === End of file commands.log === Start of file ftp_server.log 09:41:03.690100 ====> Client connect 09:41:03.692015 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:03.695147 < "USER anonymous" 09:41:03.696057 > "331 We are happy you popped in![CR][LF]" 09:41:03.698476 < "PASS ftp@example.com" 09:41:03.698915 > "230 Welcome you silly person[CR][LF]" 09:41:03.700971 < "PWD" 09:41:03.701357 > "257 "/" is current directory[CR][LF]" 09:41:03.703592 < "EPSV" 09:41:03.703976 ====> Passive DATA channel requested by client 09:41:03.704359 DATA sockfilt for passive data channel starting... 09:41:03.718589 DATA sockfilt for passive data channel started (pid 112763) 09:41:03.719624 DATA sockfilt for passive data channel listens on port 41787 09:41:03.720134 > "229 Entering Passive Mode (|||41787|)[LF]" 09:41:03.720339 Client has been notified that DATA conn will be accepted on port 41787 09:41:03.722383 Client connects to port 41787 09:41:03.722658 ====> Client established passive DATA connection on port 41787 09:41:03.723461 < "TYPE I" 09:41:03.723913 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:03.725724 < "SIZE verifiedserver" 09:41:03.726516 > "213 18[CR][LF]" 09:41:03.728377 < "RETR verifiedserver" 09:41:03.728877 > "150 Binary junk (18 bytes).[CR][LF]" 09:41:03.729592 =====> Closing passive DATA connection... 09:41:03.730011 Server disconnects passive DATA connection 09:41:03.731876 Server disconnected passive DATA connection 09:41:03.732118 DATA sockfilt for passive data channel quits (pid 112763) 09:41:03.733676 DATA sockfilt for passive data channel quit (pid 112763) 09:41:03.733994 =====> Closed passive DATA connection 09:41:03.734846 > "226 File transfer complete[CR][LF]" 09:41:03.773701 < "QUIT" 09:41:03.774980 > "221 bye bye baby[CR][LF]" 09:41:03.779007 MAIN sockfilt said DISC 09:41:03.779880 ====> Client disconnected 09:41:03.780422 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:03.942937 ====> Client connect 09:41:03.946084 Received DATA (on stdin) 09:41:03.946232 > 160 bytes data, server => client 09:41:03.946323 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:03.946410 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:03.946590 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:03.947322 < 16 bytes data, client => server 09:41:03.947664 'USER anonymous\r\n' 09:41:03.949271 Received DATA (on stdin) 09:41:03.949427 > 33 bytes data, server => client 09:41:03.950095 '331 We are happy you popped in!\r\n' 09:41:03.951440 < 22 bytes data, client => server 09:41:03.951693 'PASS ftp@example.com\r\n' 09:41:03.952947 Received DATA (on stdin) 09:41:03.953077 > 30 bytes data, server => client 09:41:03.953169 '230 Welcome you silly person\r\n' 09:41:03.953790 < 5 bytes data, client => server 09:41:03.953936 'PWD\r\n' 09:41:03.955362 Received DATA (on stdin) 09:41:03.955651 > 30 bytes data, server => client 09:41:03.955781 '257 "/" is current directory\r\n' 09:41:03.956417 < 6 bytes data, client => server 09:41:03.956663 'EPSV\r\n' 09:41:03.974297 Received DATA (on stdin) 09:41:03.974435 > 38 bytes data, server => client 09:41:03.974634 '229 Entering Passive Mode (|||41787|)\n' 09:41:03.976217 < 8 bytes data, client => server 09:41:03.976385 'TYPE I\r\n' 09:41:03.977924 Received DATA (on stdin) 09:41:03.978049 > 33 bytes data, server => client 09:41:03.978131 '200 I modify TYPE as you wanted\r\n' 09:41:03.978906 < 21 bytes data, client => server 09:41:03.979083 'SIZE verifiedserver\r\n' 09:41:03.979901 Received DATA (on stdin) 09:41:03.980034 > 8 bytes data, server => client 09:41:03.980556 '213 18\r\n' 09:41:03.981307 < 21 bytes data, client => server 09:41:03.981572 'RETR verifiedserver\r\n' 09:41:03.983958 Received DATA (on stdin) 09:41:03.984086 > 29 bytes data, server => client 09:41:03.984171 '150 Binary junk (18 bytes).\r\n' 09:41:03.987965 Received DATA (on stdin) 09:41:03.988088 > 28 bytes data, server => client 09:41:03.988228 '226 File transfer complete\r\n' 09:41:04.026539 < 6 bytes data, client => server 09:41:04.026723 'QUIT\r\n' 09:41:04.027904 Received DATA (on stdin) 09:41:04.028047 > 18 bytes data, server => client 09:41:04.028206 '221 bye bye baby\r\n' 09:41:04.032364 ====> Client disconnect 09:41:04.033013 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:03.970821 Running IPv4 version 09:41:03.971380 Listening on port 41787 09:41:03.971849 Wrote pid 112763 to log/31/server/ftp_sockdata.pid 09:41:03.972009 Received PING (on stdin) 09:41:03.972827 Received PORT (on stdin) 09:41:03.975806 ====> Client connect 09:41:03.984557 Received DATA (on stdin) 09:41:03.984695 > 18 bytes data, server => client 09:41:03.984770 'WE ROOLZ: 100730\r\n' 09:41:03.985068 Received DISC (on stdin) 09:41:03.985205 ====> Client forcibly disconnected 09:41:03.986010 Received QUIT (on stdin) 09:41:03.986105 quits 09:41:03.986542 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc793 machine 127.0.0.1 login username "password" hello === End of file netrc793 === Start of file server.cmd Testnum 793 === End of file server.cmd === Start of file valgrind793 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind793 test 0812...[IMAP DELETE mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind812 ../src/curl -q --output log/30/curl812.out --include --trace-ascii log/30/trace812 --trace-config all --trace-time imap://127.0.0.1:35591 -u user:secret -X 'DELETE 812' > log/30/stdout812 2> log/30/stderr812 812: protocol FAILED! There was no content at all in the filCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind800 ../src/curl -q --output log/10/curl800.out --include --trace-ascii log/10/trace800 --trace-config all --trace-time 'imap://127.0.0.1:41017/800/;MAILINDEX=1' -u '"user:sec"ret{' > log/10/stdout800 2> log/10/stderr800 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind799 ../src/curl -q --output log/35/curl799.out --include --trace-ascii log/35/trace799 --trace-config all --trace-time 'imap://127.0.0.1:44973/799/;MAILINDEX=1' -u user:secret --login-options AUTH=+LOGIN > log/35/stdout799 2> log/35/stderr799 e log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 812 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind812 ../src/curl -q --output log/30/curl812.out --include --trace-ascii log/30/trace812 --trace-config all --trace-time imap://127.0.0.1:35591 -u user:secret -X 'DELETE 812' > log/30/stdout812 2> log/30/stderr812 === End of file commands.log === Start of file imap_server.log 09:41:04.485643 ====> Client connect 09:41:04.488920 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:04.489882 < "A001 CAPABILITY" 09:41:04.491125 > "A001 BAD Command[CR][LF]" 09:41:04.492266 < "A002 LIST "verifiedserver" *" 09:41:04.492539 LIST_imap got "verifiedserver" * 09:41:04.493214 > "* LIST () "/" "WE ROOLZ: 106142"[CR][LF]" 09:41:04.493475 > "A002 OK LIST Completed[CR][LF]" 09:41:04.493637 return proof we are we 09:41:04.539037 < "A003 LOGOUT" 09:41:04.540198 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:04.544004 > "A003 OK LOGOUT completed[CR][LF]" 09:41:04.545003 MAIN sockfilt said DISC 09:41:04.545263 ====> Client disconnected 09:41:04.545685 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.738828 ====> Client connect 09:41:04.740561 Received DATA (on stdin) 09:41:04.740712 > 178 bytes data, server => client 09:41:04.741088 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:04.741237 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:04.741312 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:04.741376 'rve\r\n' 09:41:04.742117 < 17 bytes data, client => server 09:41:04.742259 'A001 CAPABILITY\r\n' 09:41:04.743949 Received DATA (on stdin) 09:41:04.744065 > 18 bytes data, server => client 09:41:04.744211 'A001 BAD Command\r\n' 09:41:04.745225 < 30 bytes data, client => server 09:41:04.745340 'A002 LIST "verifiedserver" *\r\n' 09:41:04.746608 Received DATA (on stdin) 09:41:04.746741 > 34 bytes data, server => client 09:41:04.747656 '* LIST () "/" "WE ROOLZ: 106142"\r\n' 09:41:04.747959 Received DATA (on stdin) 09:41:04.748082 > 24 bytes data, server => client 09:41:04.748159 'A002 OK LIST Completed\r\n' 09:41:04.791696 < 13 bytes data, client => server 09:41:04.791981 'A003 LOGOUT\r\n' 09:41:04.793131 Received DATA (on stdin) 09:41:04.793275 > 36 bytes data, server => client 09:41:04.793497 '* BYE curl IMAP server signing off\r\n' 09:41:04.794228 Received DATA (on stdin) 09:41:04.794355 > 26 bytes data, server => client 09:41:04.798029 'A003 OK LOGOUT completed\r\n' 09:41:04.798401 ====> Client disconnect 09:41:04.799780 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 812 === End of file server.cmd === Start of file valgrind812 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind812 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/10/server/imap_server.pid" --logfile "log/10/imap_server.log" --logdir "log/10" --portfile "log/10/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41017 (log/10/server/imap_server.port) RUN: IMAP server is PID 112722 port 41017 * pid imap => 112722 112722 test 0800...[IMAP FETCH message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind800 ../src/curl -q --output log/10/curl800.out --include --trace-ascii log/10/trace800 --trace-config all --trace-time 'imap://127.0.0.1:41017/800/;MAILINDEX=1' -u '"user:sec"ret{' > log/10/stdout800 2> log/10/stderr800 800: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 800 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind800 ../src/curl -q --output log/10/curl800.out --include --trace-ascii log/10/trace800 --trace-config all --trace-time 'imap://127.0.0.1:41017/800/;MAILINDEX=1' -u '"user:sec"ret{' > log/10/stdout800 2> log/10/stderr800 === End of file commands.log === Start of file imap_server.log 09:41:04.190128 IMAP server listens on port IPv4/41017 09:41:04.191397 logged pid 112722 in log/10/server/imap_server.pid 09:41:04.191669 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.440740 Running IPv4 version 09:41:04.441357 Listening on port 41017 09:41:04.441974 Wrote pid 113042 to log/10/server/imap_sockfilt.pid 09:41:04.442365 Wrote port 41017 to log/10/server/imap_server.port 09:41:04.442847 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 800 === End of file server.cmd === Start of file valgrind800 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind8CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind801 ../src/curl -q --output log/6/curl801.out --include --trace-ascii log/6/trace801 --trace-config all --trace-time 'imap://127.0.0.1:37611/801/;MAILINDEX=123/;SECTION=1' -u user:secret > log/6/stdout801 2> log/6/stderr801 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind802 ../src/curl -q --output log/4/curl802.out --include --trace-ascii log/4/trace802 --trace-config all --trace-time 'imap://127.0.0.1:45445/802;UIDVALIDITY=3857529045/;MAILINDEX=123/;SECTION=TEXT' -u user:secret > log/4/stdout802 2> log/4/stderr802 00 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/35/server/imap_server.pid" --logfile "log/35/imap_server.log" --logdir "log/35" --portfile "log/35/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44973 (log/35/server/imap_server.port) RUN: IMAP server is PID 112720 port 44973 * pid imap => 112720 112720 test 0799...[IMAP with --login-options 'AUTH=+LOGIN'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind799 ../src/curl -q --output log/35/curl799.out --include --trace-ascii log/35/trace799 --trace-config all --trace-time 'imap://127.0.0.1:44973/799/;MAILINDEX=1' -u user:secret --login-options AUTH=+LOGIN > log/35/stdout799 2> log/35/stderr799 799: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 799 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind799 ../src/curl -q --output log/35/curl799.out --include --trace-ascii log/35/trace799 --trace-config all --trace-time 'imap://127.0.0.1:44973/799/;MAILINDEX=1' -u user:secret --login-options AUTH=+LOGIN > log/35/stdout799 2> log/35/stderr799 === End of file commands.log === Start of file imap_server.log 09:41:04.164914 IMAP server listens on port IPv4/44973 09:41:04.165850 logged pid 112720 in log/35/server/imap_server.pid 09:41:04.166134 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.416145 Running IPv4 version 09:41:04.416788 Listening on port 44973 09:41:04.417192 Wrote pid 113034 to log/35/server/imap_sockfilt.pid 09:41:04.417620 Wrote port 44973 to log/35/server/imap_server.port 09:41:04.417844 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY LOGIN A002 OK LOGIN completed Testnum 799 === End of file server.cmd === Start of file valgrind799 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind799 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/imap_server.pid" --logfile "log/6/imap_server.log" --logdir "log/6" --portfile "log/6/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37611 (log/6/server/imap_server.port) RUN: IMAP server is PID 112731 port 37611 * pid imap => 112731 112731 test 0801...[IMAP FETCH message by MAILINDEX and SECTION] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind801 ../src/curl -q --output log/6/curl801.out --include --trace-ascii log/6/trace801 --trace-config all --trace-time 'imap://127.0.0.1:37611/801/;MAILINDEX=123/;SECTION=1' -u user:secret > log/6/stdout801 2> log/6/stderr801 801: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 801 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind801 ../src/curl -q --output log/6/curl801.out --include --trace-ascii log/6/trace801 --trace-config all --trace-time 'imap://127.0.0.1:37611/801/;MAILINDEX=123/;SECTION=1' -u user:secret > log/6/stdout801 2> log/6/stderr801 === End of file commands.log === Start of file imap_server.log 09:41:04.056166 IMAP server listens on port IPv4/37611 09:41:04.057249 logged pid 112731 in log/6/server/imap_server.pid 09:41:04.057541 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.307363 Running IPv4 version 09:41:04.308071 Listening on port 37611 09:41:04.308542 Wrote pid 112977 to log/6/server/imap_sockfilt.pid 09:41:04.308900 Wrote port 37611 to log/6/server/imap_server.port 09:41:04.309075 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 801 === End of file server.cmd === Start of file valgrind801 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind801 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/imap_server.pid" --logfile "log/4/imap_server.log" --logdir "log/4" --portfile "log/4/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45445 (log/4/server/imap_server.port) RUN: IMAP server is PID 112803 port 45445 * pid imap => 112803 112803 test 0802...[IMAP SELECT UIDVALIDITY Success] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind802 ../src/curl -q --output log/4/curl802.out --include --trace-ascii log/4/trace802 --trace-config all --trace-time 'imap://127.0.0.1:45445/802;UIDVALIDITY=3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind803 ../src/curl -q --output log/54/curl803.out --include --trace-ascii log/54/trace803 --trace-config all --trace-time 'imap://127.0.0.1:39077/803;UIDVALIDITY=12345/;MAILINDEX=123' -u user:secret > log/54/stdout803 2> log/54/stderr803 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind807 ../src/curl -q --output log/13/curl807.out --include --trace-ascii log/13/trace807 --trace-config all --trace-time imap://127.0.0.1:38033 -u user:secret -X 'LSUB "807" *' > log/13/stdout807 2> log/13/stderr807 857529045/;MAILINDEX=123/;SECTION=TEXT' -u user:secret > log/4/stdout802 2> log/4/stderr802 802: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 802 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind802 ../src/curl -q --output log/4/curl802.out --include --trace-ascii log/4/trace802 --trace-config all --trace-time 'imap://127.0.0.1:45445/802;UIDVALIDITY=3857529045/;MAILINDEX=123/;SECTION=TEXT' -u user:secret > log/4/stdout802 2> log/4/stderr802 === End of file commands.log === Start of file imap_server.log 09:41:04.165123 IMAP server listens on port IPv4/45445 09:41:04.166152 logged pid 112803 in log/4/server/imap_server.pid 09:41:04.166436 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.415966 Running IPv4 version 09:41:04.416826 Listening on port 45445 09:41:04.417313 Wrote pid 113035 to log/4/server/imap_sockfilt.pid 09:41:04.417800 Wrote port 45445 to log/4/server/imap_server.port 09:41:04.417983 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 802 === End of file server.cmd === Start of file valgrind802 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind802 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/54/server/imap_server.pid" --logfile "log/54/imap_server.log" --logdir "log/54" --portfile "log/54/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39077 (log/54/server/imap_server.port) RUN: IMAP server is PID 112844 port 39077 * pid imap => 112844 112844 test 0803...[IMAP SELECT UIDVALIDITY Failure] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind803 ../src/curl -q --output log/54/curl803.out --include --trace-ascii log/54/trace803 --trace-config all --trace-time 'imap://127.0.0.1:39077/803;UIDVALIDITY=12345/;MAILINDEX=123' -u user:secret > log/54/stdout803 2> log/54/stderr803 803: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 803 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind803 ../src/curl -q --output log/54/curl803.out --include --trace-ascii log/54/trace803 --trace-config all --trace-time 'imap://127.0.0.1:39077/803;UIDVALIDITY=12345/;MAILINDEX=123' -u user:secret > log/54/stdout803 2> log/54/stderr803 === End of file commands.log === Start of file imap_server.log 09:41:04.293311 IMAP server listens on port IPv4/39077 09:41:04.294589 logged pid 112844 in log/54/server/imap_server.pid 09:41:04.295000 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.544356 Running IPv4 version 09:41:04.544976 Listening on port 39077 09:41:04.545404 Wrote pid 113079 to log/54/server/imap_sockfilt.pid 09:41:04.545847 Wrote port 39077 to log/54/server/imap_server.port 09:41:04.546010 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 803 === End of file server.cmd === Start of file valgrind803 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind803 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/13/server/imap_server.pid" --logfile "log/13/imap_server.log" --logdir "log/13" --portfile "log/13/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38033 (log/13/server/imap_server.port) RUN: IMAP server is PID 112884 port 38033 * pid imap => 112884 112884 test 0807...[IMAP LSUB mailbox] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind807 ../src/curl -q --output log/13/curl807.out --include --trace-ascii log/13/trace807 --trace-config all --trace-time imap://127.0.0.1:38033 -u user:secret -X 'LSUB "807" *' > log/13/stdout807 2> log/13/stderr807 807: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 807 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind807 ../src/curl -q --output log/13/curl807.out --include --trace-ascii log/13/trace807 --trace-config all --trace-time imap://127.0.0.1:38033 -u user:secret -X 'LSUB "807" *' > log/13/stdout807 2> log/13/stderr807 === End of file commands.log === Start of file imap_server.log 09:41:04.313262 IMAP server listens on port IPv4/38033 09:41:04.314409 logged pid 112884 in log/13/server/imap_server.pid 09:41:04.314715 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind815 ../src/curl -q --output log/31/curl815.out --include --trace-ascii log/31/trace815 --trace-config all --trace-time imap://127.0.0.1:38735/815 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:38735/815 -X CLOSE -u user:secret > log/31/stdout815 2> log/31/stderr815 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind804 ../src/curl -q --output log/63/curl804.out --include --trace-ascii log/63/trace804 --trace-config all --trace-time 'imap://127.0.0.1:43275/804/;MAILINDEX=123/;SECTION=1' 'imap://127.0.0.1:43275/804/;MAILINDEX=456/;SECTION=2.3' -u user:secret > log/63/stdout804 2> log/63/stderr804 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.564589 Running IPv4 version 09:41:04.565219 Listening on port 38033 09:41:04.565730 Wrote pid 113083 to log/13/server/imap_sockfilt.pid 09:41:04.566079 Wrote port 38033 to log/13/server/imap_server.port 09:41:04.566258 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 807 === End of file server.cmd === Start of file valgrind807 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind807 test 0815...[IMAP STORE - delete message (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind815 ../src/curl -q --output log/31/curl815.out --include --trace-ascii log/31/trace815 --trace-config all --trace-time imap://127.0.0.1:38735/815 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:38735/815 -X CLOSE -u user:secret > log/31/stdout815 2> log/31/stderr815 815: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 815 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind815 ../src/curl -q --output log/31/curl815.out --include --trace-ascii log/31/trace815 --trace-config all --trace-time imap://127.0.0.1:38735/815 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:38735/815 -X CLOSE -u user:secret > log/31/stdout815 2> log/31/stderr815 === End of file commands.log === Start of file imap_server.log 09:41:04.688336 ====> Client connect 09:41:04.689895 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:04.692917 < "A001 CAPABILITY" 09:41:04.694159 > "A001 BAD Command[CR][LF]" 09:41:04.695389 < "A002 LIST "verifiedserver" *" 09:41:04.695868 LIST_imap got "verifiedserver" * 09:41:04.697039 > "* LIST () "/" "WE ROOLZ: 106054"[CR][LF]" 09:41:04.698138 > "A002 OK LIST Completed[CR][LF]" 09:41:04.698378 return proof we are we 09:41:04.739822 < "A003 LOGOUT" 09:41:04.741063 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:04.741402 > "A003 OK LOGOUT completed[CR][LF]" 09:41:04.742664 MAIN sockfilt said DISC 09:41:04.743004 ====> Client disconnected 09:41:04.743472 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.941223 ====> Client connect 09:41:04.943978 Received DATA (on stdin) 09:41:04.944133 > 178 bytes data, server => client 09:41:04.944228 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:04.944316 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:04.944400 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:04.944592 'rve\r\n' 09:41:04.945410 < 17 bytes data, client => server 09:41:04.945624 'A001 CAPABILITY\r\n' 09:41:04.947036 Received DATA (on stdin) 09:41:04.947192 > 18 bytes data, server => client 09:41:04.947370 'A001 BAD Command\r\n' 09:41:04.948194 < 30 bytes data, client => server 09:41:04.948327 'A002 LIST "verifiedserver" *\r\n' 09:41:04.949936 Received DATA (on stdin) 09:41:04.950067 > 34 bytes data, server => client 09:41:04.950247 '* LIST () "/" "WE ROOLZ: 106054"\r\n' 09:41:04.951210 Received DATA (on stdin) 09:41:04.951349 > 24 bytes data, server => client 09:41:04.951578 'A002 OK LIST Completed\r\n' 09:41:04.992603 < 13 bytes data, client => server 09:41:04.992787 'A003 LOGOUT\r\n' 09:41:04.993957 Received DATA (on stdin) 09:41:04.994110 > 36 bytes data, server => client 09:41:04.994291 '* BYE curl IMAP server signing off\r\n' 09:41:04.995409 Received DATA (on stdin) 09:41:04.995627 > 26 bytes data, server => client 09:41:04.995724 'A003 OK LOGOUT completed\r\n' 09:41:04.996077 ====> Client disconnect 09:41:04.997570 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 815 === End of file server.cmd === Start of file valgrind815 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind815 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/63/server/imap_server.pid" --logfile "log/63/imap_server.log" --logdir "log/63" --portfile "log/63/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43275 (log/63/server/imap_server.port) RUN: IMAP server is PID 112855 port 43275 * pid imap => 112855 112855 test 0804...[IMAP doesn't perform SELECT if re-using the same mailbox] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind804 ../src/curl -q --output log/63/curl804.out --include --trace-ascii log/63/trace804 --trace-config all --trace-time 'imap://127.0.0.1:43275/804/;MAILINDEX=123/;SECTION=1' 'imap://127.0.0.1:43275/804/;MAILINDEX=456/;SECTION=2.3' -u user:secret > log/63/stdout804 2> log/63/stderr804 804: protocol FAILED! There was no content at all in the CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind806 ../src/curl -q --output log/19/curl806.out --include --trace-ascii log/19/trace806 --trace-config all --trace-time imap://127.0.0.1:41739/806 -u user:secret > log/19/stdout806 2> log/19/stderr806 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind809 ../src/curl -q --output log/18/curl809.out --include --trace-ascii log/18/trace809 --trace-config all --trace-time imap://127.0.0.1:34679 -u user:secret -X 'STATUS 809 (UIDNEXT MESSAGES)' > log/18/stdout809 2> log/18/stderr809 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind808 ../src/curl -q --output log/9/curl808.out --include --trace-ascii log/9/trace808 --trace-config all --trace-time imap://127.0.0.1:41403 -u user:secret -X 'EXAMINE 808' > log/9/stdout808 2> log/9/stderr808 file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 804 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind804 ../src/curl -q --output log/63/curl804.out --include --trace-ascii log/63/trace804 --trace-config all --trace-time 'imap://127.0.0.1:43275/804/;MAILINDEX=123/;SECTION=1' 'imap://127.0.0.1:43275/804/;MAILINDEX=456/;SECTION=2.3' -u user:secret > log/63/stdout804 2> log/63/stderr804 === End of file commands.log === Start of file imap_server.log 09:41:04.291527 IMAP server listens on port IPv4/43275 09:41:04.293360 logged pid 112855 in log/63/server/imap_server.pid 09:41:04.294015 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.542650 Running IPv4 version 09:41:04.543249 Listening on port 43275 09:41:04.543731 Wrote pid 113078 to log/63/server/imap_sockfilt.pid 09:41:04.544136 Wrote port 43275 to log/63/server/imap_server.port 09:41:04.544323 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 804 === End of file server.cmd === Start of file valgrind804 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind804 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/19/server/imap_server.pid" --logfile "log/19/imap_server.log" --logdir "log/19" --portfile "log/19/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41739 (log/19/server/imap_server.port) RUN: IMAP server is PID 112880 port 41739 * pid imap => 112880 112880 test 0806...[IMAP LIST mailbox] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind806 ../src/curl -q --output log/19/curl806.out --include --trace-ascii log/19/trace806 --trace-config all --trace-time imap://127.0.0.1:41739/806 -u user:secret > log/19/stdout806 2> log/19/stderr806 806: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 806 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind806 ../src/curl -q --output log/19/curl806.out --include --trace-ascii log/19/trace806 --trace-config all --trace-time imap://127.0.0.1:41739/806 -u user:secret > log/19/stdout806 2> log/19/stderr806 === End of file commands.log === Start of file imap_server.log 09:41:04.313712 IMAP server listens on port IPv4/41739 09:41:04.314618 logged pid 112880 in log/19/server/imap_server.pid 09:41:04.314982 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.565193 Running IPv4 version 09:41:04.565851 Listening on port 41739 09:41:04.566221 Wrote pid 113081 to log/19/server/imap_sockfilt.pid 09:41:04.566623 Wrote port 41739 to log/19/server/imap_server.port 09:41:04.566798 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 806 === End of file server.cmd === Start of file valgrind806 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind806 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/9/server/imap_server.pid" --logfile "log/9/imap_server.log" --logdir "log/9" --portfile "log/9/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41403 (log/9/server/imap_server.port) RUN: IMAP server is PID 112889 port 41403 * pid imap => 112889 112889 test 0808...[IMAP EXAMINE mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind808 ../src/curl -q --output log/9/curl808.out --include --trace-ascii log/9/trace808 --trace-config all --trace-time imap://127.0.0.1:41403 -u user:secret -X 'EXAMINE 808' > log/9/stdout808 2> log/9/stderr808 808: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 808 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind808 ../src/curl -q --output log/9/curl808.out --include --trace-ascii log/9/trace808 --trace-config all --trace-time imap://127.0.0.1:41403 -u user:secret -X 'EXAMINE 808' > log/9/stdout808 2> log/9/stderr808 === End of file commands.log === Start of file imap_server.log 09:41:04.320407 IMAP server listens on port IPv4/41403 09:41:04.321462 logged pid 112889 in log/9/server/imap_server.pid 09:41:04.321735 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.571931 Running IPv4 version 09:41:04.572532 Listening on port 41403 09:41:04.572938 Wrote pid 113084 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind805 ../src/curl -q --output log/36/curl805.out --include --trace-ascii log/36/trace805 --trace-config all --trace-time imap://127.0.0.1:39751/805 -T log/36/upload805 -u user:secret > log/36/stdout805 2> log/36/stderr805 to log/9/server/imap_sockfilt.pid 09:41:04.573237 Wrote port 41403 to log/9/server/imap_server.port 09:41:04.573383 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 808 === End of file server.cmd === Start of file valgrind808 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind808 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/18/server/imap_server.pid" --logfile "log/18/imap_server.log" --logdir "log/18" --portfile "log/18/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34679 (log/18/server/imap_server.port) RUN: IMAP server is PID 112972 port 34679 * pid imap => 112972 112972 test 0809...[IMAP mailbox STATUS (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind809 ../src/curl -q --output log/18/curl809.out --include --trace-ascii log/18/trace809 --trace-config all --trace-time imap://127.0.0.1:34679 -u user:secret -X 'STATUS 809 (UIDNEXT MESSAGES)' > log/18/stdout809 2> log/18/stderr809 809: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 809 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind809 ../src/curl -q --output log/18/curl809.out --include --trace-ascii log/18/trace809 --trace-config all --trace-time imap://127.0.0.1:34679 -u user:secret -X 'STATUS 809 (UIDNEXT MESSAGES)' > log/18/stdout809 2> log/18/stderr809 === End of file commands.log === Start of file imap_server.log 09:41:04.477704 IMAP server listens on port IPv4/34679 09:41:04.478896 logged pid 112972 in log/18/server/imap_server.pid 09:41:04.479213 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.728877 Running IPv4 version 09:41:04.729538 Listening on port 34679 09:41:04.730090 Wrote pid 113109 to log/18/server/imap_sockfilt.pid 09:41:04.730393 Wrote port 34679 to log/18/server/imap_server.port 09:41:04.730647 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 809 === End of file server.cmd === Start of file valgrind809 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind809 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/36/server/imap_server.pid" --logfile "log/36/imap_server.log" --logdir "log/36" --portfile "log/36/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39751 (log/36/server/imap_server.port) RUN: IMAP server is PID 112863 port 39751 * pid imap => 112863 112863 test 0805...[IMAP APPEND message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind805 ../src/curl -q --output log/36/curl805.out --include --trace-ascii log/36/trace805 --trace-config all --trace-time imap://127.0.0.1:39751/805 -T log/36/upload805 -u user:secret > log/36/stdout805 2> log/36/stderr805 805: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 805 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind805 ../src/curl -q --output log/36/curl805.out --include --trace-ascii log/36/trace805 --trace-config all --trace-time imap://127.0.0.1:39751/805 -T log/36/upload805 -u user:secret > log/36/stdout805 2> log/36/stderr805 === End of file commands.log === Start of file imap_server.log 09:41:04.272494 IMAP server listens on port IPv4/39751 09:41:04.273966 logged pid 112863 in log/36/server/imap_server.pid 09:41:04.274318 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.523669 Running IPv4 version 09:41:04.524232 Listening on port 39751 09:41:04.524798 Wrote pid 113073 to log/36/server/imap_sockfilt.pid 09:41:04.525164 Wrote port 39751 to log/36/server/imap_server.port 09:41:04.525331 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 805 === End of file server.cmd === Start of file upload805 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload805 === Start of file valgrind805 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: inCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind811 ../src/curl -q --output log/58/curl811.out --include --trace-ascii log/58/trace811 --trace-config all --trace-time imap://127.0.0.1:36021 -u user:secret -X 'CREATE 811' > log/58/stdout811 2> log/58/stderr811 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind810 ../src/curl -q --output log/43/curl810.out --include --trace-ascii log/43/trace810 --trace-config all --trace-time imap://127.0.0.1:33087/810?NEW -u user:secret > log/43/stdout810 2> log/43/stderr810 an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind805 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/58/server/imap_server.pid" --logfile "log/58/imap_server.log" --logdir "log/58" --portfile "log/58/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36021 (log/58/server/imap_server.port) RUN: IMAP server is PID 113069 port 36021 * pid imap => 113069 113069 test 0811...[IMAP CREATE mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind811 ../src/curl -q --output log/58/curl811.out --include --trace-ascii log/58/trace811 --trace-config all --trace-time imap://127.0.0.1:36021 -u user:secret -X 'CREATE 811' > log/58/stdout811 2> log/58/stderr811 811: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 811 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind811 ../src/curl -q --output log/58/curl811.out --include --trace-ascii log/58/trace811 --trace-config all --trace-time imap://127.0.0.1:36021 -u user:secret -X 'CREATE 811' > log/58/stdout811 2> log/58/stderr811 === End of file commands.log === Start of file imap_server.log 09:41:04.658202 IMAP server listens on port IPv4/36021 09:41:04.659202 logged pid 113069 in log/58/server/imap_server.pid 09:41:04.659478 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.909587 Running IPv4 version 09:41:04.910150 Listening on port 36021 09:41:04.910651 Wrote pid 113128 to log/58/server/imap_sockfilt.pid 09:41:04.911007 Wrote port 36021 to log/58/server/imap_server.port 09:41:04.911197 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 811 === End of file server.cmd === Start of file valgrind811 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind811 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/43/server/imap_server.pid" --logfile "log/43/imap_server.log" --logdir "log/43" --portfile "log/43/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33087 (log/43/server/imap_server.port) RUN: IMAP server is PID 113056 port 33087 * pid imap => 113056 113056 test 0810...[IMAP SEARCH for NEW messages] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind810 ../src/curl -q --output log/43/curl810.out --include --trace-ascii log/43/trace810 --trace-config all --trace-time imap://127.0.0.1:33087/810?NEW -u user:secret > log/43/stdout810 2> log/43/stderr810 810: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 810 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind810 ../src/curl -q --output log/43/curl810.out --include --trace-ascii log/43/trace810 --trace-config all --trace-time imap://127.0.0.1:33087/810?NEW -u user:secret > log/43/stdout810 2> log/43/stderr810 === End of file commands.log === Start of file imap_server.log 09:41:04.684426 IMAP server listens on port IPv4/33087 09:41:04.685463 logged pid 113056 in log/43/server/imap_server.pid 09:41:04.685843 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.934598 Running IPv4 version 09:41:04.935180 Listening on port 33087 09:41:04.935770 Wrote pid 113132 to log/43/server/imap_sockfilt.pid 09:41:04.936197 Wrote port 33087 to log/43/server/imap_server.port 09:41:04.936359 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 810 === End of file server.cmd === Start of file valgrind810 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind813 ../src/curl -q --output log/17/curl813.out --include --trace-ascii log/17/trace813 --trace-config all --trace-time imap://127.0.0.1:36033 -u user:secret -X 'RENAME 666 813' > log/17/stdout813 2> log/17/stderr813 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind818 ../src/curl -q --output log/35/curl818.out --include --trace-ascii log/35/trace818 --trace-config all --trace-time imap://127.0.0.1:44973 -X NOOP -u user:secret > log/35/stdout818 2> log/35/stderr818 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind816 ../src/curl -q --output log/30/curl816.out --include --trace-ascii log/30/trace816 --trace-config all --trace-time imap://127.0.0.1:35591/816 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:35591/816 -X EXPUNGE -u user:secret > log/30/stdout816 2> log/30/stderr816 bg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind810 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/17/server/imap_server.pid" --logfile "log/17/imap_server.log" --logdir "log/17" --portfile "log/17/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36033 (log/17/server/imap_server.port) RUN: IMAP server is PID 113100 port 36033 * pid imap => 113100 113100 test 0813...[IMAP RENAME mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind813 ../src/curl -q --output log/17/curl813.out --include --trace-ascii log/17/trace813 --trace-config all --trace-time imap://127.0.0.1:36033 -u user:secret -X 'RENAME 666 813' > log/17/stdout813 2> log/17/stderr813 813: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 813 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind813 ../src/curl -q --output log/17/curl813.out --include --trace-ascii log/17/trace813 --trace-config all --trace-time imap://127.0.0.1:36033 -u user:secret -X 'RENAME 666 813' > log/17/stdout813 2> log/17/stderr813 === End of file commands.log === Start of file imap_server.log 09:41:04.805943 IMAP server listens on port IPv4/36033 09:41:04.806971 logged pid 113100 in log/17/server/imap_server.pid 09:41:04.807258 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.057177 Running IPv4 version 09:41:04.057856 Listening on port 36033 09:41:04.058304 Wrote pid 113177 to log/17/server/imap_sockfilt.pid 09:41:04.058744 Wrote port 36033 to log/17/server/imap_server.port 09:41:04.058921 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 813 === End of file server.cmd === Start of file valgrind813 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind813 test 0818...[IMAP NOOP (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind818 ../src/curl -q --output log/35/curl818.out --include --trace-ascii log/35/trace818 --trace-config all --trace-time imap://127.0.0.1:44973 -X NOOP -u user:secret > log/35/stdout818 2> log/35/stderr818 818: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 818 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind818 ../src/curl -q --output log/35/curl818.out --include --trace-ascii log/35/trace818 --trace-config all --trace-time imap://127.0.0.1:44973 -X NOOP -u user:secret > log/35/stdout818 2> log/35/stderr818 === End of file commands.log === Start of file imap_server.log 09:41:05.511291 ====> Client connect 09:41:05.515282 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.517395 < "A001 CAPABILITY" 09:41:05.518106 > "A001 BAD Command[CR][LF]" 09:41:05.520258 < "A002 LIST "verifiedserver" *" 09:41:05.520594 LIST_imap got "verifiedserver" * 09:41:05.521340 > "* LIST () "/" "WE ROOLZ: 112720"[CR][LF]" 09:41:05.521634 > "A002 OK LIST Completed[CR][LF]" 09:41:05.521924 return proof we are we 09:41:05.564690 < "A003 LOGOUT" 09:41:05.565990 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.569941 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.571104 MAIN sockfilt said DISC 09:41:05.571391 ====> Client disconnected 09:41:05.571960 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:05.763839 ====> Client connect 09:41:05.767344 Received DATA (on stdin) 09:41:05.767694 > 178 bytes data, server => client 09:41:05.768005 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:05.768143 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:05.768226 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:05.768301 'rve\r\n' 09:41:05.769357 < 17 bytes data, client => server 09:41:05.769669 'A001 CAPABILITY\r\n' 09:41:05.772128 Received DATA (on stdin) 09:41:05.772262 > 18 bytes data, server => client 09:41:05.772346 'A001 BAD Command\r\n' 09:41:05.773099 < 30 bytes data, client => server 09:41:05.773239 'A002 LIST "verifiedserver" *\r\n' 09:41:05.774706 Received DATA (on stdin) 09:41:05.774848 > 34 bytes data, server => client 09:41:05.775929 '* LIST () "/" "WE ROOLZ: 112720"\r\n' 09:41:05.776495 Received DATA (on stdin) 09:41:05.776657 > 24 bytes data, server => client 09:41:05.776768 'A002 OK LIST Completed\r\n' 09:41:05.817559 < 13 bytes data, client => server 09:41:05.817729 'A003 LOGOUT\r\n' 09:41:05.818897 Received DATA (on stdin) 09:41:05.819049 > 36 bytes data, server => client 09:41:05.819225 '* BYE curl IMAP server signing off\r\n' 09:41:05.820042 Received DATA (on stdin) 09:41:05.820182 > 26 bytes data, server => client 09:41:05.824006 'A003 OK LOGOUT completed\r\n' 09:41:05.824431 ====> Client disconnect 09:41:05.825993 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 818 === End of file server.cmd === Start of file valgrind818 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind817 ../src/curl -q --output log/10/curl817.out --include --trace-ascii log/10/trace817 --trace-config all --trace-time imap://127.0.0.1:41017 -u user:secret -X 'COPY 123 817' > log/10/stdout817 2> log/10/stderr817 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind814 ../src/curl -q --output log/39/curl814.out --include --trace-ascii log/39/trace814 --trace-config all --trace-time imap://127.0.0.1:38285/814 -u user:secret -X 'CHECK' > log/39/stdout814 2> log/39/stderr814 hat exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind818 test 0816...[IMAP STORE - delete message with confirmation (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind816 ../src/curl -q --output log/30/curl816.out --include --trace-ascii log/30/trace816 --trace-config all --trace-time imap://127.0.0.1:35591/816 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:35591/816 -X EXPUNGE -u user:secret > log/30/stdout816 2> log/30/stderr816 816: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 816 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind816 ../src/curl -q --output log/30/curl816.out --include --trace-ascii log/30/trace816 --trace-config all --trace-time imap://127.0.0.1:35591/816 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:35591/816 -X EXPUNGE -u user:secret > log/30/stdout816 2> log/30/stderr816 === End of file commands.log === Start of file imap_server.log 09:41:05.357929 ====> Client connect 09:41:05.360595 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.364006 < "A001 CAPABILITY" 09:41:05.364545 > "A001 BAD Command[CR][LF]" 09:41:05.366516 < "A002 LIST "verifiedserver" *" 09:41:05.366983 LIST_imap got "verifiedserver" * 09:41:05.367419 > "* LIST () "/" "WE ROOLZ: 106142"[CR][LF]" 09:41:05.367692 > "A002 OK LIST Completed[CR][LF]" 09:41:05.368026 return proof we are we 09:41:05.411417 < "A003 LOGOUT" 09:41:05.415571 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.416013 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.421902 MAIN sockfilt said DISC 09:41:05.422843 ====> Client disconnected 09:41:05.423562 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:05.610176 ====> Client connect 09:41:05.614412 Received DATA (on stdin) 09:41:05.614703 > 178 bytes data, server => client 09:41:05.614827 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:05.614922 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:05.615016 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:05.615112 'rve\r\n' 09:41:05.616309 < 17 bytes data, client => server 09:41:05.616588 'A001 CAPABILITY\r\n' 09:41:05.618574 Received DATA (on stdin) 09:41:05.618732 > 18 bytes data, server => client 09:41:05.618823 'A001 BAD Command\r\n' 09:41:05.619658 < 30 bytes data, client => server 09:41:05.619818 'A002 LIST "verifiedserver" *\r\n' 09:41:05.621655 Received DATA (on stdin) 09:41:05.621836 > 34 bytes data, server => client 09:41:05.621948 '* LIST () "/" "WE ROOLZ: 106142"\r\n' 09:41:05.622283 Received DATA (on stdin) 09:41:05.622431 > 24 bytes data, server => client 09:41:05.622616 'A002 OK LIST Completed\r\n' 09:41:05.663753 < 13 bytes data, client => server 09:41:05.663933 'A003 LOGOUT\r\n' 09:41:05.670621 Received DATA (on stdin) 09:41:05.670894 > 36 bytes data, server => client 09:41:05.670999 '* BYE curl IMAP server signing off\r\n' 09:41:05.671667 Received DATA (on stdin) 09:41:05.671811 > 26 bytes data, server => client 09:41:05.671891 'A003 OK LOGOUT completed\r\n' 09:41:05.672226 ====> Client disconnect 09:41:05.676125 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 816 === End of file server.cmd === Start of file valgrind816 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind816 test 0817...[IMAP COPY message to mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind817 ../src/curl -q --output log/10/curl817.out --include --trace-ascii log/10/trace817 --trace-config all --trace-time imap://127.0.0.1:41017 -u user:secret -X 'COPY 123 817' > log/10/stdout817 2> log/10/stderr817 817: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 817 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind817 ../src/curl -q --output log/10/curl817.out --include --trace-ascii log/10/trace817 --trace-config all --trace-time imap://127.0.0.1:41017 -u user:secret -X 'COPY 123 817' > log/10/stdout817 2> log/10/stderr817 === End of file commands.log === Start of file imap_server.log 09:41:05.466898 ====> Client connect 09:41:05.469422 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.472297 < "A001 CAPABILITY" 09:41:05.473134 > "A001 BAD Command[CR][LF]" 09:41:05.477377 < "A002 LIST "verifiedserver" *" 09:41:05.478837 LIST_imap got "verifiedserver" * 09:41:05.479263 > "* LIST () "/" "WE ROOLZ: 112722"[CR][LF]" 09:41:05.479566 > "A002 OK LIST Completed[CR][LF]" 09:41:05.479867 return proof we are we 09:41:05.523976 < "A003 LOGOUT" 09:41:05.525162 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.528936 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.530021 MAIN sockfilt said DISC 09:41:05.530294 ====> Client disconnected 09:41:05.530811 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:05.719322 ====> Client connect 09:41:05.723201 Received DATA (on stdin) 09:41:05.723386 > 178 bytes data, server => client 09:41:05.723591 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:05.723725 ' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind819 ../src/curl -q --output log/6/curl819.out --include --trace-ascii log/6/trace819 --trace-config all --trace-time 'imap://127.0.0.1:37611/819/;MAILINDEX=1' -u user:secret > log/6/stdout819 2> log/6/stderr819 / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:05.723811 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:05.723893 'rve\r\n' 09:41:05.724852 < 17 bytes data, client => server 09:41:05.725015 'A001 CAPABILITY\r\n' 09:41:05.728563 Received DATA (on stdin) 09:41:05.728746 > 18 bytes data, server => client 09:41:05.728847 'A001 BAD Command\r\n' 09:41:05.729624 < 30 bytes data, client => server 09:41:05.729809 'A002 LIST "verifiedserver" *\r\n' 09:41:05.733020 Received DATA (on stdin) 09:41:05.733188 > 34 bytes data, server => client 09:41:05.733284 '* LIST () "/" "WE ROOLZ: 112722"\r\n' 09:41:05.733670 Received DATA (on stdin) 09:41:05.733805 > 24 bytes data, server => client 09:41:05.733886 'A002 OK LIST Completed\r\n' 09:41:05.776778 < 13 bytes data, client => server 09:41:05.776945 'A003 LOGOUT\r\n' 09:41:05.778070 Received DATA (on stdin) 09:41:05.778218 > 36 bytes data, server => client 09:41:05.778407 '* BYE curl IMAP server signing off\r\n' 09:41:05.779177 Received DATA (on stdin) 09:41:05.779294 > 26 bytes data, server => client 09:41:05.782977 'A003 OK LOGOUT completed\r\n' 09:41:05.783373 ====> Client disconnect 09:41:05.784861 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 817 === End of file server.cmd === Start of file valgrind817 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind817 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/39/server/imap_server.pid" --logfile "log/39/imap_server.log" --logdir "log/39" --portfile "log/39/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38285 (log/39/server/imap_server.port) RUN: IMAP server is PID 113110 port 38285 * pid imap => 113110 113110 test 0814...[IMAP CHECK mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind814 ../src/curl -q --output log/39/curl814.out --include --trace-ascii log/39/trace814 --trace-config all --trace-time imap://127.0.0.1:38285/814 -u user:secret -X 'CHECK' > log/39/stdout814 2> log/39/stderr814 814: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 814 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind814 ../src/curl -q --output log/39/curl814.out --include --trace-ascii log/39/trace814 --trace-config all --trace-time imap://127.0.0.1:38285/814 -u user:secret -X 'CHECK' > log/39/stdout814 2> log/39/stderr814 === End of file commands.log === Start of file imap_server.log 09:41:04.887403 IMAP server listens on port IPv4/38285 09:41:04.888501 logged pid 113110 in log/39/server/imap_server.pid 09:41:04.888855 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:04.138535 Running IPv4 version 09:41:04.139173 Listening on port 38285 09:41:04.139807 Wrote pid 113230 to log/39/server/imap_sockfilt.pid 09:41:04.140221 Wrote port 38285 to log/39/server/imap_server.port 09:41:04.140393 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 814 === End of file server.cmd === Start of file valgrind814 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind814 test 0819...[IMAP plain authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind819 ../src/curl -q --output log/6/curl819.out --include --trace-ascii log/6/trace819 --trace-config all --trace-time 'imap://127.0.0.1:37611/819/;MAILINDEX=1' -u user:secret > log/6/stdout819 2> log/6/stderr819 819: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 819 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind819 ../src/curl -q --output log/6/curl819.out --include --trace-ascii log/6/trace819 --trace-config all --trace-time 'imap://127.0.0.1:37611/819/;MAILINDEX=1' -u user:secret > log/6/stdout819 2> log/6/stderr819 === End of file commands.log === Start of file imap_server.log 09:41:05.676429 ====> Client connect 09:41:05.680997 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.683683 < "A001 CAPABILITY" 09:41:05.684198 > "A001 BAD Command[CR][LF]" 09:41:05.686855 < "A002 LIST "verifiedserver" *" 09:41:05.687260 LIST_imap got "verifiedserver" * 09:41:05.690971 > "* LIST () "/" "WE ROOLZ: 112731"[CR][LF]" 09:41:05.691358 > "A002 OK LIST Completed[CR][LF]" 09:41:05.691601 return proof we are we 09:41:05.735665 < "A003 LOGOUT" 09:41:05.736134 > "* BYE curl IMAP servCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind822 ../src/curl -q --output log/13/curl822.out --include --trace-ascii log/13/trace822 --trace-config all --trace-time 'imap://127.0.0.1:38033/822/;MAILINDEX=1' -u testuser:testpass > log/13/stdout822 2> log/13/stderr822 er signing off[CR][LF]" 09:41:05.736430 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.739409 MAIN sockfilt said DISC 09:41:05.739711 ====> Client disconnected 09:41:05.740236 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:05.929607 ====> Client connect 09:41:05.931318 Received DATA (on stdin) 09:41:05.931589 > 178 bytes data, server => client 09:41:05.935057 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:05.935195 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:05.935286 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:05.935357 'rve\r\n' 09:41:05.936186 < 17 bytes data, client => server 09:41:05.936340 'A001 CAPABILITY\r\n' 09:41:05.938691 Received DATA (on stdin) 09:41:05.938839 > 18 bytes data, server => client 09:41:05.938934 'A001 BAD Command\r\n' 09:41:05.939654 < 30 bytes data, client => server 09:41:05.939805 'A002 LIST "verifiedserver" *\r\n' 09:41:05.941357 Received DATA (on stdin) 09:41:05.941591 > 34 bytes data, server => client 09:41:05.945712 '* LIST () "/" "WE ROOLZ: 112731"\r\n' 09:41:05.946094 Received DATA (on stdin) 09:41:05.946256 > 24 bytes data, server => client 09:41:05.946353 'A002 OK LIST Completed\r\n' 09:41:05.988609 < 13 bytes data, client => server 09:41:05.988765 'A003 LOGOUT\r\n' 09:41:05.991551 Received DATA (on stdin) 09:41:05.991707 > 36 bytes data, server => client 09:41:05.991800 '* BYE curl IMAP server signing off\r\n' 09:41:05.992101 Received DATA (on stdin) 09:41:05.992251 > 26 bytes data, server => client 09:41:05.992325 'A003 OK LOGOUT completed\r\n' 09:41:05.992825 ====> Client disconnect 09:41:05.998632 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTHENTICATE + REPLY AHVzZXIAc2VjcmV0 A002 OK AUTHENTICATE completed Testnum 819 === End of file server.cmd === Start of file valgrind819 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind819 test 0822...[IMAP NTLM authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind822 ../src/curl -q --output log/13/curl822.out --include --trace-ascii log/13/trace822 --trace-config all --trace-time 'imap://127.0.0.1:38033/822/;MAILINDEX=1' -u testuser:testpass > log/13/stdout822 2> log/13/stderr822 822: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 822 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind822 ../src/curl -q --output log/13/curl822.out --include --trace-ascii log/13/trace822 --trace-config all --trace-time 'imap://127.0.0.1:38033/822/;MAILINDEX=1' -u testuser:testpass > log/13/stdout822 2> log/13/stderr822 === End of file commands.log === Start of file imap_server.log 09:41:05.790326 ====> Client connect 09:41:05.791946 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.794178 < "A001 CAPABILITY" 09:41:05.794621 > "A001 BAD Command[CR][LF]" 09:41:05.797016 < "A002 LIST "verifiedserver" *" 09:41:05.797360 LIST_imap got "verifiedserver" * 09:41:05.798575 > "* LIST () "/" "WE ROOLZ: 112884"[CR][LF]" 09:41:05.799320 > "A002 OK LIST Completed[CR][LF]" 09:41:05.799539 return proof we are we 09:41:05.840643 < "A003 LOGOUT" 09:41:05.841490 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.841899 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.847282 MAIN sockfilt said DISC 09:41:05.848044 ====> Client disconnected 09:41:05.848557 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.043336 ====> Client connect 09:41:06.045587 Received DATA (on stdin) 09:41:06.045750 > 178 bytes data, server => client 09:41:06.045838 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.045919 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.045991 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.046076 'rve\r\n' 09:41:06.046910 < 17 bytes data, client => server 09:41:06.047050 'A001 CAPABILITY\r\n' 09:41:06.048761 Received DATA (on stdin) 09:41:06.048922 > 18 bytes data, server => client 09:41:06.049021 'A001 BAD Command\r\n' 09:41:06.049822 < 30 bytes data, client => server 09:41:06.049972 'A002 LIST "verifiedserver" *\r\n' 09:41:06.051407 Received DATA (on stdin) 09:41:06.051629 > 34 bytes data, server => client 09:41:06.051826 '* LIST () "/" "WE ROOLZ: 112884"\r\n' 09:41:06.052694 Received DATA (on stdin) 09:41:06.052831 > 24 bytes data, server => client 09:41:06.053536 'A002 OK LIST Completed\r\n' 09:41:06.093376 < 13 bytes data, client => server 09:41:06.093626 'A003 LOGOUT\r\n' 09:41:06.094840 Received DATA (on stdin) 09:41:06.094991 > 36 bytes data, server => client 09:41:06.095919 '* BYE curl IMAP server signing off\r\n' 09:41:06.096383 Received DATA (on stdin) 09:41:06.096595 > 26 bytes data, server => client 09:41:06.096688 'A003 OK LOGOUT completed\r\n' 09:41:06.100655 ====> Client disconnect 09:41:06.101325 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTHENTICATE + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= A002 OK AUTHENTICATE completed Testnum 822 === End of file server.cmd === Start of file valgrind822 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on thisCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind825 ../src/curl -q --output log/63/curl825.out --include --trace-ascii log/63/trace825 --trace-config all --trace-time 'imap://127.0.0.1:43275/825/;MAILINDEX=1' -u user:secret > log/63/stdout825 2> log/63/stderr825 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind828 ../src/curl -q --output log/9/curl828.out --include --trace-ascii log/9/trace828 --trace-config all --trace-time 'imap://127.0.0.1:41403/828/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/9/stdout828 2> log/9/stderr828 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind820 ../src/curl -q --output log/4/curl820.out --include --trace-ascii log/4/trace820 --trace-config all --trace-time 'imap://127.0.0.1:45445/820/;MAILINDEX=1' -u user:secret > log/4/stdout820 2> log/4/stderr820 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind821 ../src/curl -q --output log/54/curl821.out --include --trace-ascii log/54/trace821 --trace-config all --trace-time 'imap://127.0.0.1:39077/821/;MAILINDEX=1' -u user:secret > log/54/stdout821 2> log/54/stderr821 machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind822 test 0825...[IMAP plain authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind825 ../src/curl -q --output log/63/curl825.out --include --trace-ascii log/63/trace825 --trace-config all --trace-time 'imap://127.0.0.1:43275/825/;MAILINDEX=1' -u user:secret > log/63/stdout825 2> log/63/stderr825 825: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 825 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind825 ../src/curl -q --output log/63/curl825.out --include --trace-ascii log/63/trace825 --trace-config all --trace-time 'imap://127.0.0.1:43275/825/;MAILINDEX=1' -u user:secret > log/63/stdout825 2> log/63/stderr825 === End of file commands.log === Start of file imap_server.log 09:41:05.868701 ====> Client connect 09:41:05.870316 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.873302 < "A001 CAPABILITY" 09:41:05.873792 > "A001 BAD Command[CR][LF]" 09:41:05.876046 < "A002 LIST "verifiedserver" *" 09:41:05.876433 LIST_imap got "verifiedserver" * 09:41:05.876919 > "* LIST () "/" "WE ROOLZ: 112855"[CR][LF]" 09:41:05.877247 > "A002 OK LIST Completed[CR][LF]" 09:41:05.877459 return proof we are we 09:41:05.923041 < "A003 LOGOUT" 09:41:05.923432 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.923722 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.927186 MAIN sockfilt said DISC 09:41:05.927865 ====> Client disconnected 09:41:05.928387 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.119783 ====> Client connect 09:41:06.124379 Received DATA (on stdin) 09:41:06.124676 > 178 bytes data, server => client 09:41:06.124798 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.124896 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.124978 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.125052 'rve\r\n' 09:41:06.126046 < 17 bytes data, client => server 09:41:06.126227 'A001 CAPABILITY\r\n' 09:41:06.127827 Received DATA (on stdin) 09:41:06.127961 > 18 bytes data, server => client 09:41:06.128054 'A001 BAD Command\r\n' 09:41:06.128732 < 30 bytes data, client => server 09:41:06.128867 'A002 LIST "verifiedserver" *\r\n' 09:41:06.131422 Received DATA (on stdin) 09:41:06.131640 > 34 bytes data, server => client 09:41:06.131733 '* LIST () "/" "WE ROOLZ: 112855"\r\n' 09:41:06.131993 Received DATA (on stdin) 09:41:06.132130 > 24 bytes data, server => client 09:41:06.132207 'A002 OK LIST Completed\r\n' 09:41:06.175675 < 13 bytes data, client => server 09:41:06.175954 'A003 LOGOUT\r\n' 09:41:06.177849 Received DATA (on stdin) 09:41:06.177989 > 36 bytes data, server => client 09:41:06.178087 '* BYE curl IMAP server signing off\r\n' 09:41:06.178392 Received DATA (on stdin) 09:41:06.178637 > 26 bytes data, server => client 09:41:06.178757 'A003 OK LOGOUT completed\r\n' 09:41:06.180572 ====> Client disconnect 09:41:06.181196 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 825 === End of file server.cmd === Start of file valgrind825 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind825 test 0820...[IMAP login authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind820 ../src/curl -q --output log/4/curl820.out --include --trace-ascii log/4/trace820 --trace-config all --trace-time 'imap://127.0.0.1:45445/820/;MAILINDEX=1' -u user:secret > log/4/stdout820 2> log/4/stderr820 820: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 820 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind820 ../src/curl -q --output log/4/curl820.out --include --trace-ascii log/4/trace820 --trace-config all --trace-time 'imap://127.0.0.1:45445/820/;MAILINDEX=1' -u user:secret > log/4/stdout820 2> log/4/stderr820 === End of file commands.log === Start of file imap_server.log 09:41:05.745557 ====> Client connect 09:41:05.747089 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.753006 < "A001 CAPABILITY" 09:41:05.754331 > "A001 BAD Command[CR][LF]" 09:41:05.755571 < "A002 LIST "verifiedserver" *" 09:41:05.756044 LIST_imap got "verifiedserver" * 09:41:05.756946 > "* LIST () "/" "WE ROOLZ: 112803"[CR][LF]" 09:41:05.757280 > "A002 OK LIST Completed[CR][LF]" 09:41:05.757486 return proof we are we 09:41:05.800820 < "A003 LOGOUT" 09:41:05.802250 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.802659 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.807485 MAIN sockfilt said DISC 09:41:05.807868 ====> Client disconnected 09:41:05.808399 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:05.998649 ====> Client connect 09:41:06.000763 Received DATA (on stdin) 09:41:06.000935 > 178 bytes data, server => client 09:4CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind826 ../src/curl -q --output log/19/curl826.out --include --trace-ascii log/19/trace826 --trace-config all --trace-time 'imap://127.0.0.1:41739/826/;MAILINDEX=1' -u user:secret > log/19/stdout826 2> log/19/stderr826 1:06.001043 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.001144 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.001271 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.001368 'rve\r\n' 09:41:06.005693 < 17 bytes data, client => server 09:41:06.005868 'A001 CAPABILITY\r\n' 09:41:06.007163 Received DATA (on stdin) 09:41:06.007335 > 18 bytes data, server => client 09:41:06.007591 'A001 BAD Command\r\n' 09:41:06.008315 < 30 bytes data, client => server 09:41:06.008527 'A002 LIST "verifiedserver" *\r\n' 09:41:06.010146 Received DATA (on stdin) 09:41:06.010296 > 34 bytes data, server => client 09:41:06.011529 '* LIST () "/" "WE ROOLZ: 112803"\r\n' 09:41:06.011895 Received DATA (on stdin) 09:41:06.012042 > 24 bytes data, server => client 09:41:06.012140 'A002 OK LIST Completed\r\n' 09:41:06.053553 < 13 bytes data, client => server 09:41:06.053747 'A003 LOGOUT\r\n' 09:41:06.055006 Received DATA (on stdin) 09:41:06.055174 > 36 bytes data, server => client 09:41:06.055393 '* BYE curl IMAP server signing off\r\n' 09:41:06.056580 Received DATA (on stdin) 09:41:06.056750 > 26 bytes data, server => client 09:41:06.056864 'A003 OK LOGOUT completed\r\n' 09:41:06.060879 ====> Client disconnect 09:41:06.062438 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH LOGIN REPLY AUTHENTICATE + VXNlcm5hbWU6 REPLY dXNlcg== + UGFzc3dvcmQ6 REPLY c2VjcmV0 A002 OK AUTHENTICATE completed Testnum 820 === End of file server.cmd === Start of file valgrind820 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind820 test 0828...[IMAP OAuth 2.0 (XOAUTH2) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind828 ../src/curl -q --output log/9/curl828.out --include --trace-ascii log/9/trace828 --trace-config all --trace-time 'imap://127.0.0.1:41403/828/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/9/stdout828 2> log/9/stderr828 828: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 828 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind828 ../src/curl -q --output log/9/curl828.out --include --trace-ascii log/9/trace828 --trace-config all --trace-time 'imap://127.0.0.1:41403/828/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/9/stdout828 2> log/9/stderr828 === End of file commands.log === Start of file imap_server.log 09:41:05.966449 ====> Client connect 09:41:05.968984 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.971093 < "A001 CAPABILITY" 09:41:05.972406 > "A001 BAD Command[CR][LF]" 09:41:05.974103 < "A002 LIST "verifiedserver" *" 09:41:05.974663 LIST_imap got "verifiedserver" * 09:41:05.975194 > "* LIST () "/" "WE ROOLZ: 112889"[CR][LF]" 09:41:05.975450 > "A002 OK LIST Completed[CR][LF]" 09:41:05.975632 return proof we are we 09:41:06.018991 < "A003 LOGOUT" 09:41:06.020472 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.024491 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.025884 MAIN sockfilt said DISC 09:41:06.026174 ====> Client disconnected 09:41:06.026637 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.219666 ====> Client connect 09:41:06.221395 Received DATA (on stdin) 09:41:06.221675 > 178 bytes data, server => client 09:41:06.221876 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.222002 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.222081 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.222152 'rve\r\n' 09:41:06.223876 < 17 bytes data, client => server 09:41:06.224030 'A001 CAPABILITY\r\n' 09:41:06.225225 Received DATA (on stdin) 09:41:06.225375 > 18 bytes data, server => client 09:41:06.225713 'A001 BAD Command\r\n' 09:41:06.227110 < 30 bytes data, client => server 09:41:06.227260 'A002 LIST "verifiedserver" *\r\n' 09:41:06.229560 Received DATA (on stdin) 09:41:06.229704 > 34 bytes data, server => client 09:41:06.229803 '* LIST () "/" "WE ROOLZ: 112889"\r\n' 09:41:06.230074 Received DATA (on stdin) 09:41:06.230212 > 24 bytes data, server => client 09:41:06.230290 'A002 OK LIST Completed\r\n' 09:41:06.271664 < 13 bytes data, client => server 09:41:06.271855 'A003 LOGOUT\r\n' 09:41:06.273223 Received DATA (on stdin) 09:41:06.273364 > 36 bytes data, server => client 09:41:06.273656 '* BYE curl IMAP server signing off\r\n' 09:41:06.278662 Received DATA (on stdin) 09:41:06.278826 > 26 bytes data, server => client 09:41:06.278924 'A003 OK LOGOUT completed\r\n' 09:41:06.279251 ====> Client disconnect 09:41:06.280688 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 828 === End of file server.cmd === Start of file valgrind828 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: CanCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind824 ../src/curl -q --output log/31/curl824.out --include --trace-ascii log/31/trace824 --trace-config all --trace-time 'imap://127.0.0.1:38735/824/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/31/stdout824 2> log/31/stderr824 not continue -- exiting now. Sorry. === End of file valgrind828 test 0826...[IMAP login authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind826 ../src/curl -q --output log/19/curl826.out --include --trace-ascii log/19/trace826 --trace-config all --trace-time 'imap://127.0.0.1:41739/826/;MAILINDEX=1' -u user:secret > log/19/stdout826 2> log/19/stderr826 826: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 826 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind826 ../src/curl -q --output log/19/curl826.out --include --trace-ascii log/19/trace826 --trace-config all --trace-time 'imap://127.0.0.1:41739/826/;MAILINDEX=1' -u user:secret > log/19/stdout826 2> log/19/stderr826 === End of file commands.log === Start of file imap_server.log 09:41:05.887944 ====> Client connect 09:41:05.890601 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.892026 < "A001 CAPABILITY" 09:41:05.892429 > "A001 BAD Command[CR][LF]" 09:41:05.894722 < "A002 LIST "verifiedserver" *" 09:41:05.895144 LIST_imap got "verifiedserver" * 09:41:05.896317 > "* LIST () "/" "WE ROOLZ: 112880"[CR][LF]" 09:41:05.897097 > "A002 OK LIST Completed[CR][LF]" 09:41:05.897308 return proof we are we 09:41:05.938993 < "A003 LOGOUT" 09:41:05.940270 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.941330 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.944669 MAIN sockfilt said DISC 09:41:05.946858 ====> Client disconnected 09:41:05.947419 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.140963 ====> Client connect 09:41:06.142930 Received DATA (on stdin) 09:41:06.143093 > 178 bytes data, server => client 09:41:06.143283 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.143417 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.143691 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.143803 'rve\r\n' 09:41:06.146405 < 17 bytes data, client => server 09:41:06.146624 'A001 CAPABILITY\r\n' 09:41:06.146734 Received DATA (on stdin) 09:41:06.146824 > 18 bytes data, server => client 09:41:06.146905 'A001 BAD Command\r\n' 09:41:06.147644 < 30 bytes data, client => server 09:41:06.147804 'A002 LIST "verifiedserver" *\r\n' 09:41:06.149170 Received DATA (on stdin) 09:41:06.149312 > 34 bytes data, server => client 09:41:06.149581 '* LIST () "/" "WE ROOLZ: 112880"\r\n' 09:41:06.150369 Received DATA (on stdin) 09:41:06.150592 > 24 bytes data, server => client 09:41:06.151243 'A002 OK LIST Completed\r\n' 09:41:06.191686 < 13 bytes data, client => server 09:41:06.191884 'A003 LOGOUT\r\n' 09:41:06.193114 Received DATA (on stdin) 09:41:06.193274 > 36 bytes data, server => client 09:41:06.193531 '* BYE curl IMAP server signing off\r\n' 09:41:06.194327 Received DATA (on stdin) 09:41:06.194664 > 26 bytes data, server => client 09:41:06.197581 'A003 OK LOGOUT completed\r\n' 09:41:06.198044 ====> Client disconnect 09:41:06.198820 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH LOGIN CAPA SASL-IR REPLY AUTHENTICATE + UGFzc3dvcmQ6 REPLY c2VjcmV0 A002 OK AUTHENTICATE completed Testnum 826 === End of file server.cmd === Start of file valgrind826 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind826 test 0821...[IMAP CRAM-MD5 authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind821 ../src/curl -q --output log/54/curl821.out --include --trace-ascii log/54/trace821 --trace-config all --trace-time 'imap://127.0.0.1:39077/821/;MAILINDEX=1' -u user:secret > log/54/stdout821 2> log/54/stderr821 821: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 821 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind821 ../src/curl -q --output log/54/curl821.out --include --trace-ascii log/54/trace821 --trace-config all --trace-time 'imap://127.0.0.1:39077/821/;MAILINDEX=1' -u user:secret > log/54/stdout821 2> log/54/stderr821 === End of file commands.log === Start of file imap_server.log 09:41:05.823495 ====> Client connect 09:41:05.825447 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.829869 < "A001 CAPABILITY" 09:41:05.830328 > "A001 BAD Command[CR][LF]" 09:41:05.833689 < "A002 LIST "verifiedserver" *" 09:41:05.834508 LIST_imap got "verifiedserver" * 09:41:05.835243 > "* LIST () "/" "WE ROOLZ: 112844"[CR][LF]" 09:41:05.837611 > "A002 OK LIST Completed[CR][LF]" 09:41:05.837998 return proof we are we 09:41:05.878717 < "A003 LOGOUT" 09:41:05.880016 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.883941 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.885068 MAIN sockfilt said DISC 09:41:05.885333 ====> Client disconnected 09:41:05.885864 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.076441 ====> Client connect 09:41:06.079824 Received DATA (on stdin) 09:41:06.080022 > 178 bytes data, server => client 09:41:06.080126 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.080247 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.080344 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.080568 'rve\r\n' 09:41:06.081825 < 17 bytes data, client => server 09:41:06.082161 'A001 CAPABILITY\r\n' 09:41:06.084369 Received DATA (on stdin) 09:41:06.084597 > 18 bytes data, server => client 09:41:06.084727 'A001 BAD Command\r\n' 09:41:06.085994 < 30 bytes data, client => server 09:41:06.086183 'A002 LIST "verifiedserver" *\r\n' 09:41:06.089606 Received DATA (on stdin) 09:41:06.089774 > 34 bytes data, server => client 09:41:06.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind829 ../src/curl -q --output log/36/curl829.out --include --trace-ascii log/36/trace829 --trace-config all --trace-time imap://127.0.0.1:39751/%0d%0a/829 > log/36/stdout829 2> log/36/stderr829 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind827 ../src/curl -q --output log/18/curl827.out --include --trace-ascii log/18/trace827 --trace-config all --trace-time 'imap://127.0.0.1:34679/827/;MAILINDEX=1' -u testuser:testpass > log/18/stdout827 2> log/18/stderr827 089867 '* LIST () "/" "WE ROOLZ: 112844"\r\n' 09:41:06.092055 Received DATA (on stdin) 09:41:06.092206 > 24 bytes data, server => client 09:41:06.092295 'A002 OK LIST Completed\r\n' 09:41:06.131590 < 13 bytes data, client => server 09:41:06.131771 'A003 LOGOUT\r\n' 09:41:06.132922 Received DATA (on stdin) 09:41:06.133071 > 36 bytes data, server => client 09:41:06.133239 '* BYE curl IMAP server signing off\r\n' 09:41:06.134064 Received DATA (on stdin) 09:41:06.134189 > 26 bytes data, server => client 09:41:06.137997 'A003 OK LOGOUT completed\r\n' 09:41:06.138399 ====> Client disconnect 09:41:06.139916 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTHENTICATE + PDE5NzIuOTg3NjU0MzIxQGN1cmw+ REPLY dXNlciA3MDMxNzI1NTk5ZmRiYjVkNDEyNjg5YWEzMjNlM2UwYg== A002 OK AUTHENTICATE completed Testnum 821 === End of file server.cmd === Start of file valgrind821 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind821 test 0824...[IMAP OAuth 2.0 (XOAUTH2) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind824 ../src/curl -q --output log/31/curl824.out --include --trace-ascii log/31/trace824 --trace-config all --trace-time 'imap://127.0.0.1:38735/824/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/31/stdout824 2> log/31/stderr824 824: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 824 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind824 ../src/curl -q --output log/31/curl824.out --include --trace-ascii log/31/trace824 --trace-config all --trace-time 'imap://127.0.0.1:38735/824/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/31/stdout824 2> log/31/stderr824 === End of file commands.log === Start of file imap_server.log 09:41:05.875234 ====> Client connect 09:41:05.877833 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.879482 < "A001 CAPABILITY" 09:41:05.879981 > "A001 BAD Command[CR][LF]" 09:41:05.882476 < "A002 LIST "verifiedserver" *" 09:41:05.882918 LIST_imap got "verifiedserver" * 09:41:05.884281 > "* LIST () "/" "WE ROOLZ: 106054"[CR][LF]" 09:41:05.885139 > "A002 OK LIST Completed[CR][LF]" 09:41:05.885388 return proof we are we 09:41:05.926704 < "A003 LOGOUT" 09:41:05.927950 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.928650 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.929707 MAIN sockfilt said DISC 09:41:05.930350 ====> Client disconnected 09:41:05.930904 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.128258 ====> Client connect 09:41:06.130146 Received DATA (on stdin) 09:41:06.130319 > 178 bytes data, server => client 09:41:06.130591 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.130746 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.130841 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.130937 'rve\r\n' 09:41:06.132214 < 17 bytes data, client => server 09:41:06.132371 'A001 CAPABILITY\r\n' 09:41:06.134037 Received DATA (on stdin) 09:41:06.134178 > 18 bytes data, server => client 09:41:06.134264 'A001 BAD Command\r\n' 09:41:06.135077 < 30 bytes data, client => server 09:41:06.135253 'A002 LIST "verifiedserver" *\r\n' 09:41:06.137054 Received DATA (on stdin) 09:41:06.137226 > 34 bytes data, server => client 09:41:06.137443 '* LIST () "/" "WE ROOLZ: 106054"\r\n' 09:41:06.138354 Received DATA (on stdin) 09:41:06.138602 > 24 bytes data, server => client 09:41:06.139350 'A002 OK LIST Completed\r\n' 09:41:06.179545 < 13 bytes data, client => server 09:41:06.179729 'A003 LOGOUT\r\n' 09:41:06.180871 Received DATA (on stdin) 09:41:06.181019 > 36 bytes data, server => client 09:41:06.181182 '* BYE curl IMAP server signing off\r\n' 09:41:06.182016 Received DATA (on stdin) 09:41:06.182148 > 26 bytes data, server => client 09:41:06.182547 'A003 OK LOGOUT completed\r\n' 09:41:06.183028 ====> Client disconnect 09:41:06.183788 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTHENTICATE + REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB A002 OK AUTHENTICATE completed Testnum 824 === End of file server.cmd === Start of file valgrind824 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind824 test 0829...[IMAP with URL-encoded CR LF in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind829 ../src/curl -q --output log/36/curl829.out --include --trace-ascii log/36/trace829 --trace-config all --trace-time imap://127.0.0.1:39751/%0d%0a/829 > log/36/stdout829 2> log/36/stderr829 curl returned 1, when expecting 3 829: exit FAILED == Contents of files in the log/36/ dir after test 829 === Start of file comCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind830 ../src/curl -q --output log/58/curl830.out --include --trace-ascii log/58/trace830 --trace-config all --trace-time 'imap://127.0.0.1:36021/830/;MAILINDEX=1' -u user:secret > log/58/stdout830 2> log/58/stderr830 mands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind829 ../src/curl -q --output log/36/curl829.out --include --trace-ascii log/36/trace829 --trace-config all --trace-time imap://127.0.0.1:39751/%0d%0a/829 > log/36/stdout829 2> log/36/stderr829 === End of file commands.log === Start of file imap_server.log 09:41:05.986989 ====> Client connect 09:41:05.989570 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.991254 < "A001 CAPABILITY" 09:41:05.992471 > "A001 BAD Command[CR][LF]" 09:41:05.993641 < "A002 LIST "verifiedserver" *" 09:41:05.994075 LIST_imap got "verifiedserver" * 09:41:05.995345 > "* LIST () "/" "WE ROOLZ: 112863"[CR][LF]" 09:41:05.996164 > "A002 OK LIST Completed[CR][LF]" 09:41:05.996452 return proof we are we 09:41:06.037521 < "A003 LOGOUT" 09:41:06.037998 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.038307 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.044275 MAIN sockfilt said DISC 09:41:06.044952 ====> Client disconnected 09:41:06.045446 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.240029 ====> Client connect 09:41:06.242000 Received DATA (on stdin) 09:41:06.242145 > 178 bytes data, server => client 09:41:06.242329 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.242534 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.242660 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.242744 'rve\r\n' 09:41:06.244031 < 17 bytes data, client => server 09:41:06.244174 'A001 CAPABILITY\r\n' 09:41:06.245339 Received DATA (on stdin) 09:41:06.245559 > 18 bytes data, server => client 09:41:06.245751 'A001 BAD Command\r\n' 09:41:06.246436 < 30 bytes data, client => server 09:41:06.246635 'A002 LIST "verifiedserver" *\r\n' 09:41:06.248145 Received DATA (on stdin) 09:41:06.248288 > 34 bytes data, server => client 09:41:06.248583 '* LIST () "/" "WE ROOLZ: 112863"\r\n' 09:41:06.249373 Received DATA (on stdin) 09:41:06.249609 > 24 bytes data, server => client 09:41:06.250407 'A002 OK LIST Completed\r\n' 09:41:06.290340 < 13 bytes data, client => server 09:41:06.290583 'A003 LOGOUT\r\n' 09:41:06.292367 Received DATA (on stdin) 09:41:06.292608 > 36 bytes data, server => client 09:41:06.292720 '* BYE curl IMAP server signing off\r\n' 09:41:06.296517 Received DATA (on stdin) 09:41:06.296993 > 26 bytes data, server => client 09:41:06.297123 'A003 OK LOGOUT completed\r\n' 09:41:06.297594 ====> Client disconnect 09:41:06.298290 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 829 === End of file server.cmd === Start of file valgrind829 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind829 test 0827...[IMAP NTLM authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind827 ../src/curl -q --output log/18/curl827.out --include --trace-ascii log/18/trace827 --trace-config all --trace-time 'imap://127.0.0.1:34679/827/;MAILINDEX=1' -u testuser:testpass > log/18/stdout827 2> log/18/stderr827 827: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 827 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind827 ../src/curl -q --output log/18/curl827.out --include --trace-ascii log/18/trace827 --trace-config all --trace-time 'imap://127.0.0.1:34679/827/;MAILINDEX=1' -u testuser:testpass > log/18/stdout827 2> log/18/stderr827 === End of file commands.log === Start of file imap_server.log 09:41:05.908714 ====> Client connect 09:41:05.910449 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:05.914527 < "A001 CAPABILITY" 09:41:05.915341 > "A001 BAD Command[CR][LF]" 09:41:05.918346 < "A002 LIST "verifiedserver" *" 09:41:05.918804 LIST_imap got "verifiedserver" * 09:41:05.919874 > "* LIST () "/" "WE ROOLZ: 112972"[CR][LF]" 09:41:05.920351 > "A002 OK LIST Completed[CR][LF]" 09:41:05.920599 return proof we are we 09:41:05.963622 < "A003 LOGOUT" 09:41:05.964456 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:05.964835 > "A003 OK LOGOUT completed[CR][LF]" 09:41:05.969213 MAIN sockfilt said DISC 09:41:05.969972 ====> Client disconnected 09:41:05.970564 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.161891 ====> Client connect 09:41:06.163768 Received DATA (on stdin) 09:41:06.163914 > 178 bytes data, server => client 09:41:06.164576 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.164714 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.164795 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.164862 'rve\r\n' 09:41:06.167026 < 17 bytes data, client => server 09:41:06.167201 'A001 CAPABILITY\r\n' 09:41:06.168717 Received DATA (on stdin) 09:41:06.168850 > 18 bytes data, server => client 09:41:06.169343 'A001 BAD Command\r\n' 09:41:06.170149 < 30 bytes data, client => server 09:41:06.170282 'A002 LIST "verifiedserver" *\r\n' 09:41:06.173004 Received DATA (on stdin) 09:41:06.173250 > 34 bytes data, server => client 09:41:06.174707 '* LIST () "/" "WE ROOLZ: 112972"\r\n' 09:41:06.175144 Received DATA (on stdin) 09:41:06.175328 > 24 bytes data, server => client 09:41:06.175436 'A002 OK LIST Completed\r\n' 09:41:06.216343 < 13 bytes data, client => server 09:41:06.216597 'A003 LOGOUT\r\n' 09:41:06.217820 Received DATA (on stdin) 09:41:06.217964 > 36 bytes data, server => client 09:41:06.218859 '* BYE curl IMAP server signing off\r\n' 09:41:06.219199 Received DATA (on stdin) 09:41:06.219362 > 26 bytes data, server => client 09:41:06.219540 'A003 OK LOGOUT completed\r\n' 09:41:06.222597 ====> Client disconnect 09:41:06.223255 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM CAPA SASL-IR REPLY AUTHENTICATE + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind834 ../src/curl -q --output log/35/curl834.out --include --trace-ascii log/35/trace834 --trace-config all --trace-time 'imap://127.0.0.1:44973/834/;MAILINDEX=1' -u user:secret > log/35/stdout834 2> log/35/stderr834 BFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= A002 OK AUTHENTICATE completed Testnum 827 === End of file server.cmd === Start of file valgrind827 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind827 test 0830...[IMAP CRAM-MD5 graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind830 ../src/curl -q --output log/58/curl830.out --include --trace-ascii log/58/trace830 --trace-config all --trace-time 'imap://127.0.0.1:36021/830/;MAILINDEX=1' -u user:secret > log/58/stdout830 2> log/58/stderr830 830: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 830 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind830 ../src/curl -q --output log/58/curl830.out --include --trace-ascii log/58/trace830 --trace-config all --trace-time 'imap://127.0.0.1:36021/830/;MAILINDEX=1' -u user:secret > log/58/stdout830 2> log/58/stderr830 === End of file commands.log === Start of file imap_server.log 09:41:06.106909 ====> Client connect 09:41:06.108261 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.113383 < "A001 CAPABILITY" 09:41:06.113859 > "A001 BAD Command[CR][LF]" 09:41:06.119310 < "A002 LIST "verifiedserver" *" 09:41:06.119610 LIST_imap got "verifiedserver" * 09:41:06.120033 > "* LIST () "/" "WE ROOLZ: 113069"[CR][LF]" 09:41:06.120310 > "A002 OK LIST Completed[CR][LF]" 09:41:06.120477 return proof we are we 09:41:06.165155 < "A003 LOGOUT" 09:41:06.166902 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.167218 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.168515 MAIN sockfilt said DISC 09:41:06.168851 ====> Client disconnected 09:41:06.169362 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.358643 ====> Client connect 09:41:06.364535 Received DATA (on stdin) 09:41:06.364697 > 178 bytes data, server => client 09:41:06.364790 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.364874 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.364952 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.365032 'rve\r\n' 09:41:06.365839 < 17 bytes data, client => server 09:41:06.365979 'A001 CAPABILITY\r\n' 09:41:06.368567 Received DATA (on stdin) 09:41:06.368718 > 18 bytes data, server => client 09:41:06.368794 'A001 BAD Command\r\n' 09:41:06.369925 < 30 bytes data, client => server 09:41:06.370071 'A002 LIST "verifiedserver" *\r\n' 09:41:06.374427 Received DATA (on stdin) 09:41:06.374653 > 34 bytes data, server => client 09:41:06.374740 '* LIST () "/" "WE ROOLZ: 113069"\r\n' 09:41:06.374988 Received DATA (on stdin) 09:41:06.375108 > 24 bytes data, server => client 09:41:06.375178 'A002 OK LIST Completed\r\n' 09:41:06.417680 < 13 bytes data, client => server 09:41:06.417906 'A003 LOGOUT\r\n' 09:41:06.419229 Received DATA (on stdin) 09:41:06.419363 > 36 bytes data, server => client 09:41:06.419587 '* BYE curl IMAP server signing off\r\n' 09:41:06.421189 Received DATA (on stdin) 09:41:06.421339 > 26 bytes data, server => client 09:41:06.421433 'A003 OK LOGOUT completed\r\n' 09:41:06.421887 ====> Client disconnect 09:41:06.424581 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 CAPA LOGINDISABLED REPLY AUTHENTICATE + Rubbish REPLY * A002 NO AUTH exchange cancelled by client Testnum 830 === End of file server.cmd === Start of file valgrind830 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind830 test 0834...[IMAP NTLM authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind834 ../src/curl -q --output log/35/curl834.out --include --trace-ascii log/35/trace834 --trace-config all --trace-time 'imap://127.0.0.1:44973/834/;MAILINDEX=1' -u user:secret > log/35/stdout834 2> log/35/stderr834 834: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 834 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind834 ../src/curl -q --output log/35/curl834.out --include --trace-ascii log/35/trace834 --trace-config all --trace-time 'imap://127.0.0.1:44973/834/;MAILINDEX=1' -u user:secret > log/35/stdout834 2> log/35/stderr834 === End of file commands.log === Start of file imap_server.lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind831 ../src/curl -q --output log/43/curl831.out --include --trace-ascii log/43/trace831 --trace-config all --trace-time 'imap://127.0.0.1:33087/831/;MAILINDEX=1' -u testuser:testpass > log/43/stdout831 2> log/43/stderr831 og 09:41:06.387732 ====> Client connect 09:41:06.389673 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.393720 < "A001 CAPABILITY" 09:41:06.396352 > "A001 BAD Command[CR][LF]" 09:41:06.398316 < "A002 LIST "verifiedserver" *" 09:41:06.398670 LIST_imap got "verifiedserver" * 09:41:06.399107 > "* LIST () "/" "WE ROOLZ: 112720"[CR][LF]" 09:41:06.399413 > "A002 OK LIST Completed[CR][LF]" 09:41:06.399606 return proof we are we 09:41:06.445922 < "A003 LOGOUT" 09:41:06.447247 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.447583 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.452106 MAIN sockfilt said DISC 09:41:06.452454 ====> Client disconnected 09:41:06.452983 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.640650 ====> Client connect 09:41:06.643557 Received DATA (on stdin) 09:41:06.643731 > 178 bytes data, server => client 09:41:06.643821 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.643900 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.643977 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.644046 'rve\r\n' 09:41:06.645258 < 17 bytes data, client => server 09:41:06.645779 'A001 CAPABILITY\r\n' 09:41:06.648612 Received DATA (on stdin) 09:41:06.648795 > 18 bytes data, server => client 09:41:06.649040 'A001 BAD Command\r\n' 09:41:06.650903 < 30 bytes data, client => server 09:41:06.651326 'A002 LIST "verifiedserver" *\r\n' 09:41:06.653555 Received DATA (on stdin) 09:41:06.653695 > 34 bytes data, server => client 09:41:06.653785 '* LIST () "/" "WE ROOLZ: 112720"\r\n' 09:41:06.654112 Received DATA (on stdin) 09:41:06.654251 > 24 bytes data, server => client 09:41:06.654334 'A002 OK LIST Completed\r\n' 09:41:06.698636 < 13 bytes data, client => server 09:41:06.698805 'A003 LOGOUT\r\n' 09:41:06.700041 Received DATA (on stdin) 09:41:06.700220 > 36 bytes data, server => client 09:41:06.700443 '* BYE curl IMAP server signing off\r\n' 09:41:06.701557 Received DATA (on stdin) 09:41:06.701689 > 26 bytes data, server => client 09:41:06.701771 'A003 OK LOGOUT completed\r\n' 09:41:06.705440 ====> Client disconnect 09:41:06.707020 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM PLAIN REPLY "AUTHENTICATE NTLM" + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * A002 NO AUTH exchange cancelled by client REPLY "AUTHENTICATE PLAIN" + REPLY AHVzZXIAc2VjcmV0 A003 OK AUTHENTICATE completed Testnum 834 === End of file server.cmd === Start of file valgrind834 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind834 test 0831...[IMAP NTLM graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind831 ../src/curl -q --output log/43/curl831.out --include --trace-ascii log/43/trace831 --trace-config all --trace-time 'imap://127.0.0.1:33087/831/;MAILINDEX=1' -u testuser:testpass > log/43/stdout831 2> log/43/stderr831 831: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 831 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind831 ../src/curl -q --output log/43/curl831.out --include --trace-ascii log/43/trace831 --trace-config all --trace-time 'imap://127.0.0.1:33087/831/;MAILINDEX=1' -u testuser:testpass > log/43/stdout831 2> log/43/stderr831 === End of file commands.log === Start of file imap_server.log 09:41:06.235921 ====> Client connect 09:41:06.237258 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.241588 < "A001 CAPABILITY" 09:41:06.242065 > "A001 BAD Command[CR][LF]" 09:41:06.245885 < "A002 LIST "verifiedserver" *" 09:41:06.246238 LIST_imap got "verifiedserver" * 09:41:06.246577 > "* LIST () "/" "WE ROOLZ: 113056"[CR][LF]" 09:41:06.248486 > "A002 OK LIST Completed[CR][LF]" 09:41:06.248718 return proof we are we 09:41:06.294054 < "A003 LOGOUT" 09:41:06.294493 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.294873 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.304097 MAIN sockfilt said DISC 09:41:06.304735 ====> Client disconnected 09:41:06.305362 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.486897 ====> Client connect 09:41:06.491308 Received DATA (on stdin) 09:41:06.491625 > 178 bytes data, server => client 09:41:06.491778 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.491873 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.491952 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.492018 'rve\r\n' 09:41:06.494020 < 17 bytes data, client => server 09:41:06.494167 'A001 CAPABILITY\r\n' 09:41:06.497584 Received DATA (on stdin) 09:41:06.497734 > 18 bytes data, server => client 09:41:06.497820 'A001 BAD Command\r\n' 09:41:06.498591 < 30 bytes data, client => server 09:41:06.498741 'A002 LIST "verifiedserver" *\r\n' 09:41:06.500692 Received DATA (on stdin) 09:41:06.500829 > 34 bytes data, server => client 09:41:06.500922 '* LIST () "/" "WE ROOLZ: 113056"\r\n' 09:41:06.501669 Received DATA (on stdin) 09:41:06.501813 > 24 bytes data, server => client 09:41:06.501973 'A002 OK LIST Completed\r\n' 09:41:06.546177 < 13 bytes data, client => server 09:41:06.546352 'A003 LOGOUT\r\n' 09:41:06.552598 Received DATA (on stdin) 09:41:06.552800 > 36 bytes data, server => client 09:41:06.552938 '* BYE curl IMAP server signing off\r\n' 09:41:06.553330 Received DATA (on stdin) 09:41:06.553711 > 26 bytes data, server => client 09:41:06.553832 'A003 OK LOGOUT completed\r\n' 09:41:06.557309 ====> Client disconnect 09:41:06.558172 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM CAPA LOGINDISABLED REPLY AUTHENTICATE + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * A002 NO AUTH exchange cancelled by client Testnum 831 === End of file server.cmd === Start of file valgrind831 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-toolCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind833 ../src/curl -q --output log/17/curl833.out --include --trace-ascii log/17/trace833 --trace-config all --trace-time 'imap://127.0.0.1:36033/833/;MAILINDEX=1' -u user:secret > log/17/stdout833 2> log/17/stderr833 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind837 ../src/curl -q --output log/30/curl837.out --include --trace-ascii log/30/trace837 --trace-config all --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:35591/837/;MAILINDEX=1' > log/30/stdout837 2> log/30/stderr837 combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind831 test 0833...[IMAP CRAM-MD5 authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind833 ../src/curl -q --output log/17/curl833.out --include --trace-ascii log/17/trace833 --trace-config all --trace-time 'imap://127.0.0.1:36033/833/;MAILINDEX=1' -u user:secret > log/17/stdout833 2> log/17/stderr833 833: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 833 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind833 ../src/curl -q --output log/17/curl833.out --include --trace-ascii log/17/trace833 --trace-config all --trace-time 'imap://127.0.0.1:36033/833/;MAILINDEX=1' -u user:secret > log/17/stdout833 2> log/17/stderr833 === End of file commands.log === Start of file imap_server.log 09:41:06.300502 ====> Client connect 09:41:06.302021 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.305581 < "A001 CAPABILITY" 09:41:06.306072 > "A001 BAD Command[CR][LF]" 09:41:06.309708 < "A002 LIST "verifiedserver" *" 09:41:06.310167 LIST_imap got "verifiedserver" * 09:41:06.310548 > "* LIST () "/" "WE ROOLZ: 113100"[CR][LF]" 09:41:06.314038 > "A002 OK LIST Completed[CR][LF]" 09:41:06.314301 return proof we are we 09:41:06.355887 < "A003 LOGOUT" 09:41:06.358953 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.359295 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.361062 MAIN sockfilt said DISC 09:41:06.361347 ====> Client disconnected 09:41:06.361924 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:05.551778 ====> Client connect 09:41:05.556104 Received DATA (on stdin) 09:41:05.556254 > 178 bytes data, server => client 09:41:05.556348 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:05.556441 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:05.556626 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:05.556708 'rve\r\n' 09:41:05.558077 < 17 bytes data, client => server 09:41:05.558228 'A001 CAPABILITY\r\n' 09:41:05.561575 Received DATA (on stdin) 09:41:05.561743 > 18 bytes data, server => client 09:41:05.561854 'A001 BAD Command\r\n' 09:41:05.562608 < 30 bytes data, client => server 09:41:05.562751 'A002 LIST "verifiedserver" *\r\n' 09:41:05.565571 Received DATA (on stdin) 09:41:05.565744 > 34 bytes data, server => client 09:41:05.565859 '* LIST () "/" "WE ROOLZ: 113100"\r\n' 09:41:05.568289 Received DATA (on stdin) 09:41:05.568438 > 24 bytes data, server => client 09:41:05.568628 'A002 OK LIST Completed\r\n' 09:41:05.608629 < 13 bytes data, client => server 09:41:05.608819 'A003 LOGOUT\r\n' 09:41:05.610036 Received DATA (on stdin) 09:41:05.610189 > 36 bytes data, server => client 09:41:05.613308 '* BYE curl IMAP server signing off\r\n' 09:41:05.613731 Received DATA (on stdin) 09:41:05.613883 > 26 bytes data, server => client 09:41:05.613972 'A003 OK LOGOUT completed\r\n' 09:41:05.614398 ====> Client disconnect 09:41:05.617643 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 PLAIN REPLY "AUTHENTICATE CRAM-MD5" + Rubbish REPLY * A002 NO AUTH exchange cancelled by client REPLY "AUTHENTICATE PLAIN" + REPLY AHVzZXIAc2VjcmV0 A003 OK AUTHENTICATE completed Testnum 833 === End of file server.cmd === Start of file valgrind833 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind833 test 0837...[IMAP external authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind837 ../src/curl -q --output log/30/curl837.out --include --trace-ascii log/30/trace837 --trace-config all --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:35591/837/;MAILINDEX=1' > log/30/stdout837 2> log/30/stderr837 837: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 837 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind837 ../src/curl -q --output log/30/curl837.out --include --trace-ascii log/30/trace837 --trace-config all --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:35591/837/;MAILINDEX=1' > log/30/stdout837 2> log/30/stderr837 === End of file commands.log === Start of file imap_server.log 09:41:06.429089 ====> Client connect 09:41:06.430471 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.433626 < "A001 CAPABILITY" 09:41:06.435283 > "A001 BAD Command[CR][LF]" 09:41:06.437360 < "A002 LIST "verifiedserver" *" 09:41:06.437679 LIST_imap got "verCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind839 ../src/curl -q --output log/39/curl839.out --include --trace-ascii log/39/trace839 --trace-config all --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:38285/839/;MAILINDEX=1' > log/39/stdout839 2> log/39/stderr839 ifiedserver" * 09:41:06.438479 > "* LIST () "/" "WE ROOLZ: 106142"[CR][LF]" 09:41:06.438874 > "A002 OK LIST Completed[CR][LF]" 09:41:06.439111 return proof we are we 09:41:06.482152 < "A003 LOGOUT" 09:41:06.483482 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.484121 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.487200 MAIN sockfilt said DISC 09:41:06.489878 ====> Client disconnected 09:41:06.490438 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.682088 ====> Client connect 09:41:06.684708 Received DATA (on stdin) 09:41:06.684875 > 178 bytes data, server => client 09:41:06.684979 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.685072 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.685155 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.685236 'rve\r\n' 09:41:06.686023 < 17 bytes data, client => server 09:41:06.686207 'A001 CAPABILITY\r\n' 09:41:06.688575 Received DATA (on stdin) 09:41:06.688746 > 18 bytes data, server => client 09:41:06.689324 'A001 BAD Command\r\n' 09:41:06.690187 < 30 bytes data, client => server 09:41:06.690347 'A002 LIST "verifiedserver" *\r\n' 09:41:06.691846 Received DATA (on stdin) 09:41:06.691992 > 34 bytes data, server => client 09:41:06.693109 '* LIST () "/" "WE ROOLZ: 106142"\r\n' 09:41:06.693560 Received DATA (on stdin) 09:41:06.693730 > 24 bytes data, server => client 09:41:06.693857 'A002 OK LIST Completed\r\n' 09:41:06.734784 < 13 bytes data, client => server 09:41:06.734972 'A003 LOGOUT\r\n' 09:41:06.736247 Received DATA (on stdin) 09:41:06.736436 > 36 bytes data, server => client 09:41:06.736798 '* BYE curl IMAP server signing off\r\n' 09:41:06.738175 Received DATA (on stdin) 09:41:06.738316 > 26 bytes data, server => client 09:41:06.738409 'A003 OK LOGOUT completed\r\n' 09:41:06.740589 ====> Client disconnect 09:41:06.741319 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTHENTICATE + REPLY dXNlcg== A002 OK AUTHENTICATE completed Testnum 837 === End of file server.cmd === Start of file valgrind837 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind837 test 0839...[IMAP external authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind839 ../src/curl -q --output log/39/curl839.out --include --trace-ascii log/39/trace839 --trace-config all --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:38285/839/;MAILINDEX=1' > log/39/stdout839 2> log/39/stderr839 839: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 839 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind839 ../src/curl -q --output log/39/curl839.out --include --trace-ascii log/39/trace839 --trace-config all --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:38285/839/;MAILINDEX=1' > log/39/stdout839 2> log/39/stderr839 === End of file commands.log === Start of file imap_server.log 09:41:06.481706 ====> Client connect 09:41:06.483257 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.486544 < "A001 CAPABILITY" 09:41:06.487079 > "A001 BAD Command[CR][LF]" 09:41:06.489484 < "A002 LIST "verifiedserver" *" 09:41:06.489922 LIST_imap got "verifiedserver" * 09:41:06.490337 > "* LIST () "/" "WE ROOLZ: 113110"[CR][LF]" 09:41:06.490700 > "A002 OK LIST Completed[CR][LF]" 09:41:06.492303 return proof we are we 09:41:06.534718 < "A003 LOGOUT" 09:41:06.535223 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.535531 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.543035 MAIN sockfilt said DISC 09:41:06.543371 ====> Client disconnected 09:41:06.544311 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:05.734900 ====> Client connect 09:41:05.737359 Received DATA (on stdin) 09:41:05.737656 > 178 bytes data, server => client 09:41:05.737802 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:05.737958 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:05.738065 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:05.738154 'rve\r\n' 09:41:05.739034 < 17 bytes data, client => server 09:41:05.739190 'A001 CAPABILITY\r\n' 09:41:05.741108 Received DATA (on stdin) 09:41:05.741270 > 18 bytes data, server => client 09:41:05.741364 'A001 BAD Command\r\n' 09:41:05.742197 < 30 bytes data, client => server 09:41:05.742346 'A002 LIST "verifiedserver" *\r\n' 09:41:05.744570 Received DATA (on stdin) 09:41:05.744749 > 34 bytes data, server => client 09:41:05.744848 '* LIST () "/" "WE ROOLZ: 113110"\r\n' 09:41:05.745108 Received DATA (on stdin) 09:41:05.745246 > 24 bytes data, server => client 09:41:05.745335 'A002 OK LIST Completed\r\n' 09:41:05.787639 < 13 bytes data, client => server 09:41:05.787804 'A003 LOGOUT\r\n' 09:41:05.790559 Received DATA (on stdin) 09:41:05.790725 > 36 bytes data, server => client 09:41:05.790814 '* BYE curl IMAP server signing off\r\n' 09:41:05.791095 Received DATA (on stdin) 09:41:05.791242 > 26 bytes data, server => client 09:41:05.791320 'A003 OK LOGOUT completed\r\n' 09:41:05.794633 ====> Client disconnect 09:41:05.797556 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 839 === End of file server.cmd === Start of file valgrind839 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind841 ../src/curl -q --output log/13/curl841.out --include --trace-ascii log/13/trace841 --trace-config all --trace-time imap://127.0.0.1:38033/841/ -u user:secret -X 'FETCH 123 BODY[1]' > log/13/stdout841 2> log/13/stderr841 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind838 ../src/curl -q --output log/10/curl838.out --include --trace-ascii log/10/trace838 --trace-config all --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:41017/838/;MAILINDEX=1' > log/10/stdout838 2> log/10/stderr838 o is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind839 test 0838...[IMAP external authentication without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind838 ../src/curl -q --output log/10/curl838.out --include --trace-ascii log/10/trace838 --trace-config all --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:41017/838/;MAILINDEX=1' > log/10/stdout838 2> log/10/stderr838 838: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 838 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind838 ../src/curl -q --output log/10/curl838.out --include --trace-ascii log/10/trace838 --trace-config all --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:41017/838/;MAILINDEX=1' > log/10/stdout838 2> log/10/stderr838 === End of file commands.log === Start of file imap_server.log 09:41:06.468888 ====> Client connect 09:41:06.469973 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.473081 < "A001 CAPABILITY" 09:41:06.474585 > "A001 BAD Command[CR][LF]" 09:41:06.475731 < "A002 LIST "verifiedserver" *" 09:41:06.476131 LIST_imap got "verifiedserver" * 09:41:06.476866 > "* LIST () "/" "WE ROOLZ: 112722"[CR][LF]" 09:41:06.477163 > "A002 OK LIST Completed[CR][LF]" 09:41:06.477387 return proof we are we 09:41:06.521733 < "A003 LOGOUT" 09:41:06.522988 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.523321 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.527863 MAIN sockfilt said DISC 09:41:06.528445 ====> Client disconnected 09:41:06.528991 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.721995 ====> Client connect 09:41:06.724210 Received DATA (on stdin) 09:41:06.724368 > 178 bytes data, server => client 09:41:06.724593 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.724723 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.724800 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.724870 'rve\r\n' 09:41:06.725693 < 17 bytes data, client => server 09:41:06.725841 'A001 CAPABILITY\r\n' 09:41:06.727171 Received DATA (on stdin) 09:41:06.727314 > 18 bytes data, server => client 09:41:06.727539 'A001 BAD Command\r\n' 09:41:06.728599 < 30 bytes data, client => server 09:41:06.728744 'A002 LIST "verifiedserver" *\r\n' 09:41:06.730168 Received DATA (on stdin) 09:41:06.730314 > 34 bytes data, server => client 09:41:06.731395 '* LIST () "/" "WE ROOLZ: 112722"\r\n' 09:41:06.731845 Received DATA (on stdin) 09:41:06.732005 > 24 bytes data, server => client 09:41:06.732095 'A002 OK LIST Completed\r\n' 09:41:06.774641 < 13 bytes data, client => server 09:41:06.774806 'A003 LOGOUT\r\n' 09:41:06.775913 Received DATA (on stdin) 09:41:06.776047 > 36 bytes data, server => client 09:41:06.776225 '* BYE curl IMAP server signing off\r\n' 09:41:06.777297 Received DATA (on stdin) 09:41:06.777430 > 26 bytes data, server => client 09:41:06.780888 'A003 OK LOGOUT completed\r\n' 09:41:06.781245 ====> Client disconnect 09:41:06.781896 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTHENTICATE + REPLY = A002 OK AUTHENTICATE completed Testnum 838 === End of file server.cmd === Start of file valgrind838 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind838 test 0841...[IMAP custom request doesn't check continuation data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind841 ../src/curl -q --output log/13/curl841.out --include --trace-ascii log/13/trace841 --trace-config all --trace-time imap://127.0.0.1:38033/841/ -u user:secret -X 'FETCH 123 BODY[1]' > log/13/stdout841 2> log/13/stderr841 841: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 841 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind841 ../src/curl -q --output log/13/curl841.out --include --trace-ascii log/13/trace841 --trace-config all --trace-time imap://127.0.0.1:38033/841/ -u user:secret -X 'FETCH 123 BODY[1]' > log/13/stdout841 2> log/13/stderr841 === End of file commands.log === Start of file imap_server.log 09:41:06.666236 ====> Client connect 09:41:06.668855 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.670913 < "A001 CAPABILITY" 09:41:06.671288 > "A001 BAD Command[CR][LF]" 09:41:06.673286 < "A002 LIST "verifiedserver" *" 09:41:06.673537 LIST_imap got "verifiedserver" * 09:41:06.674026 > "* LIST () "/" "WE ROOLZ: 112884"[CR][LF]" 09:41:06.674303 > "A002 OK LIST Completed[CR][LF]" 09:41:06.674475 return proof we are we 09:41:06.718449 < "A003 LOGOUT" 09:41:06.718859 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.719191 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.723829 MAIN sockfilt said DISC 09:41:06.724382 ====> Client disconnected 09:41:06.724904 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.919312 ====> Client connect 09:41:06.921027 Received DATA (on stdin) 09:41:06.921168 > 178 bytes data, server => client 09:41:06.921774 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.921934 ' / __| | | | |_) | | \rCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind840 ../src/curl -q --output log/6/curl840.out --include --trace-ascii log/6/trace840 --trace-config all --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:37611/840/;MAILINDEX=1' > log/6/stdout840 2> log/6/stderr840 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind843 ../src/curl -q --output log/9/curl843.out --include --trace-ascii log/9/trace843 --trace-config all --trace-time 'imap://127.0.0.1:41403/843/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/9/stdout843 2> log/9/stderr843 \n | (__| |_| | _ {| |___ \r\n ' 09:41:06.922014 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.922085 'rve\r\n' 09:41:06.923251 < 17 bytes data, client => server 09:41:06.923402 'A001 CAPABILITY\r\n' 09:41:06.925288 Received DATA (on stdin) 09:41:06.925414 > 18 bytes data, server => client 09:41:06.925588 'A001 BAD Command\r\n' 09:41:06.926134 < 30 bytes data, client => server 09:41:06.926266 'A002 LIST "verifiedserver" *\r\n' 09:41:06.928425 Received DATA (on stdin) 09:41:06.928613 > 34 bytes data, server => client 09:41:06.928692 '* LIST () "/" "WE ROOLZ: 112884"\r\n' 09:41:06.928928 Received DATA (on stdin) 09:41:06.929043 > 24 bytes data, server => client 09:41:06.929114 'A002 OK LIST Completed\r\n' 09:41:06.970255 < 13 bytes data, client => server 09:41:06.970419 'A003 LOGOUT\r\n' 09:41:06.973196 Received DATA (on stdin) 09:41:06.973345 > 36 bytes data, server => client 09:41:06.973435 '* BYE curl IMAP server signing off\r\n' 09:41:06.973789 Received DATA (on stdin) 09:41:06.973911 > 26 bytes data, server => client 09:41:06.973986 'A003 OK LOGOUT completed\r\n' 09:41:06.977229 ====> Client disconnect 09:41:06.977841 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 841 === End of file server.cmd === Start of file valgrind841 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind841 test 0840...[IMAP external authentication with initial response without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind840 ../src/curl -q --output log/6/curl840.out --include --trace-ascii log/6/trace840 --trace-config all --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:37611/840/;MAILINDEX=1' > log/6/stdout840 2> log/6/stderr840 840: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 840 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind840 ../src/curl -q --output log/6/curl840.out --include --trace-ascii log/6/trace840 --trace-config all --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:37611/840/;MAILINDEX=1' > log/6/stdout840 2> log/6/stderr840 === End of file commands.log === Start of file imap_server.log 09:41:06.666282 ====> Client connect 09:41:06.668705 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.670263 < "A001 CAPABILITY" 09:41:06.671560 > "A001 BAD Command[CR][LF]" 09:41:06.672669 < "A002 LIST "verifiedserver" *" 09:41:06.673062 LIST_imap got "verifiedserver" * 09:41:06.674180 > "* LIST () "/" "WE ROOLZ: 112731"[CR][LF]" 09:41:06.675124 > "A002 OK LIST Completed[CR][LF]" 09:41:06.675348 return proof we are we 09:41:06.716623 < "A003 LOGOUT" 09:41:06.717473 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.717976 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.722143 MAIN sockfilt said DISC 09:41:06.722725 ====> Client disconnected 09:41:06.723284 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:06.919366 ====> Client connect 09:41:06.921088 Received DATA (on stdin) 09:41:06.921233 > 178 bytes data, server => client 09:41:06.921432 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:06.921730 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:06.921856 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:06.921933 'rve\r\n' 09:41:06.923121 < 17 bytes data, client => server 09:41:06.923261 'A001 CAPABILITY\r\n' 09:41:06.924521 Received DATA (on stdin) 09:41:06.924665 > 18 bytes data, server => client 09:41:06.924840 'A001 BAD Command\r\n' 09:41:06.925578 < 30 bytes data, client => server 09:41:06.925705 'A002 LIST "verifiedserver" *\r\n' 09:41:06.927084 Received DATA (on stdin) 09:41:06.927218 > 34 bytes data, server => client 09:41:06.927392 '* LIST () "/" "WE ROOLZ: 112731"\r\n' 09:41:06.928199 Received DATA (on stdin) 09:41:06.928326 > 24 bytes data, server => client 09:41:06.928581 'A002 OK LIST Completed\r\n' 09:41:06.969406 < 13 bytes data, client => server 09:41:06.969655 'A003 LOGOUT\r\n' 09:41:06.970821 Received DATA (on stdin) 09:41:06.970972 > 36 bytes data, server => client 09:41:06.972259 '* BYE curl IMAP server signing off\r\n' 09:41:06.972618 Received DATA (on stdin) 09:41:06.972742 > 26 bytes data, server => client 09:41:06.972821 'A003 OK LOGOUT completed\r\n' 09:41:06.975583 ====> Client disconnect 09:41:06.976153 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 840 === End of file server.cmd === Start of file valgrind840 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind840 test 0843...[IMAP OAuth 2.0 (OAUTHBEARER) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind846 ../src/curl -q --output log/58/curl846.out --include --trace-ascii log/58/trace846 --trace-config all --trace-time 'imap://127.0.0.1:36021/846/;MAILINDEX=1' -u notused:still-provided > log/58/stdout846 2> log/58/stderr846 --num-callers=16 --log-file=log/9/valgrind843 ../src/curl -q --output log/9/curl843.out --include --trace-ascii log/9/trace843 --trace-config all --trace-time 'imap://127.0.0.1:41403/843/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/9/stdout843 2> log/9/stderr843 843: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 843 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind843 ../src/curl -q --output log/9/curl843.out --include --trace-ascii log/9/trace843 --trace-config all --trace-time 'imap://127.0.0.1:41403/843/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/9/stdout843 2> log/9/stderr843 === End of file commands.log === Start of file imap_server.log 09:41:06.898509 ====> Client connect 09:41:06.900916 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.903016 < "A001 CAPABILITY" 09:41:06.903427 > "A001 BAD Command[CR][LF]" 09:41:06.905841 < "A002 LIST "verifiedserver" *" 09:41:06.906162 LIST_imap got "verifiedserver" * 09:41:06.907290 > "* LIST () "/" "WE ROOLZ: 112889"[CR][LF]" 09:41:06.908061 > "A002 OK LIST Completed[CR][LF]" 09:41:06.908292 return proof we are we 09:41:06.950907 < "A003 LOGOUT" 09:41:06.952113 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.955942 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.957014 MAIN sockfilt said DISC 09:41:06.957274 ====> Client disconnected 09:41:06.957710 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.151324 ====> Client connect 09:41:07.153416 Received DATA (on stdin) 09:41:07.153788 > 178 bytes data, server => client 09:41:07.154087 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.154220 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.154301 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.154371 'rve\r\n' 09:41:07.155644 < 17 bytes data, client => server 09:41:07.155793 'A001 CAPABILITY\r\n' 09:41:07.157526 Received DATA (on stdin) 09:41:07.157670 > 18 bytes data, server => client 09:41:07.157757 'A001 BAD Command\r\n' 09:41:07.158710 < 30 bytes data, client => server 09:41:07.158855 'A002 LIST "verifiedserver" *\r\n' 09:41:07.160205 Received DATA (on stdin) 09:41:07.160338 > 34 bytes data, server => client 09:41:07.160578 '* LIST () "/" "WE ROOLZ: 112889"\r\n' 09:41:07.161344 Received DATA (on stdin) 09:41:07.161552 > 24 bytes data, server => client 09:41:07.162259 'A002 OK LIST Completed\r\n' 09:41:07.203671 < 13 bytes data, client => server 09:41:07.203845 'A003 LOGOUT\r\n' 09:41:07.205054 Received DATA (on stdin) 09:41:07.205187 > 36 bytes data, server => client 09:41:07.205366 '* BYE curl IMAP server signing off\r\n' 09:41:07.206145 Received DATA (on stdin) 09:41:07.206273 > 26 bytes data, server => client 09:41:07.209998 'A003 OK LOGOUT completed\r\n' 09:41:07.210410 ====> Client disconnect 09:41:07.211798 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 843 === End of file server.cmd === Start of file valgrind843 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind843 test 0846...[IMAP PREAUTH response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind846 ../src/curl -q --output log/58/curl846.out --include --trace-ascii log/58/trace846 --trace-config all --trace-time 'imap://127.0.0.1:36021/846/;MAILINDEX=1' -u notused:still-provided > log/58/stdout846 2> log/58/stderr846 846: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 846 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind846 ../src/curl -q --output log/58/curl846.out --include --trace-ascii log/58/trace846 --trace-config all --trace-time 'imap://127.0.0.1:36021/846/;MAILINDEX=1' -u notused:still-provided > log/58/stdout846 2> log/58/stderr846 === End of file commands.log === Start of file imap_server.log 09:41:07.055130 ====> Client connect 09:41:07.057370 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:07.058525 < "A001 CAPABILITY" 09:41:07.058928 > "A001 BAD Command[CR][LF]" 09:41:07.061115 < "A002 LIST "verifiedserver" *" 09:41:07.061388 LIST_imap got "verifiedserver" * 09:41:07.062419 > "* LIST () "/" "WE ROOLZ: 113069"[CR][LF]" 09:41:07.063116 > "A002 OK LIST Completed[CR][LF]" 09:41:07.063316 return proof we are we 09:41:07.105665 < "A003 LOGOUT" 09:41:07.106168 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:07.106485 > "A003 OK LOGOUT completed[CR][LF]" 09:41:07.111178 MAIN sockfilt said DISC 09:41:07.111919 ====> Client disconnected 09:41:07.112441 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.308198 ====> Client connect 09:41:07.309933 Received DATA (on stdin) 09:41:07.310077 > 178 bytes data, server => client 09:41:07.310261 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.310384 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.310545 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.310639 'rve\r\n' 09:41:07.312914 < 17 bytes data, client => server 09:41:07.313042 'A001 CAPABILITY\r\n' 09:41:07.313143 Received DATA (on stdin) 09:41:07.313227 > 18 bytes data, server => client 09:41:07.313301 'A001 BAD Command\r\n' 09:41:07.314013 < 30 bytes data, client => server 09:41:07.314157 'A002 LIST "verifiedserver" *\r\n' 09:41:07.315368 Received DATA (on stdin) 09:41:07.315573 > 34 bytes data, server => client 09:41:07.315748 '* LIST () "/" "WE ROOLZ: 113069"\r\n' 09:41:07.316429 Received DATA (on stdin) 09:41:07.316617 > 24 bytes data, server => client 09:41:07.317228 'A002 OK LIST Completed\r\n' 09:41:07.358307 < 13 bytes data, client => server 09:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind842 ../src/curl -q --output log/63/curl842.out --include --trace-ascii log/63/trace842 --trace-config all --trace-time 'imap://127.0.0.1:43275/842/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/63/stdout842 2> log/63/stderr842 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind845 ../src/curl -q --output log/36/curl845.out --include --trace-ascii log/36/trace845 --trace-config all --trace-time 'imap://127.0.0.1:39751/845/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/36/stdout845 2> log/36/stderr845 41:07.358565 'A003 LOGOUT\r\n' 09:41:07.360552 Received DATA (on stdin) 09:41:07.360700 > 36 bytes data, server => client 09:41:07.360785 '* BYE curl IMAP server signing off\r\n' 09:41:07.361043 Received DATA (on stdin) 09:41:07.361177 > 26 bytes data, server => client 09:41:07.361261 'A003 OK LOGOUT completed\r\n' 09:41:07.364584 ====> Client disconnect 09:41:07.365256 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd REPLY welcome * PREAUTH ready to serve already REPLY CAPABILITY * CAPABILITY IMAP4REV1 I18NLEVEL=1 LITERAL+ IDLE UIDPLUS NAMESPACE CHILDREN MAILBOX-REFERRALS BINARY UNSELECT ESEARCH WITHIN SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND SASL-IR LOGIN-REFERRALS STARTTLS LOGINDISABLED\r\nA001 OK CAPABILITY completed Testnum 846 === End of file server.cmd === Start of file valgrind846 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind846 test 0842...[IMAP OAuth 2.0 (OAUTHBEARER) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind842 ../src/curl -q --output log/63/curl842.out --include --trace-ascii log/63/trace842 --trace-config all --trace-time 'imap://127.0.0.1:43275/842/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/63/stdout842 2> log/63/stderr842 842: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 842 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind842 ../src/curl -q --output log/63/curl842.out --include --trace-ascii log/63/trace842 --trace-config all --trace-time 'imap://127.0.0.1:43275/842/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/63/stdout842 2> log/63/stderr842 === End of file commands.log === Start of file imap_server.log 09:41:06.873872 ====> Client connect 09:41:06.875114 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.877401 < "A001 CAPABILITY" 09:41:06.877868 > "A001 BAD Command[CR][LF]" 09:41:06.879461 < "A002 LIST "verifiedserver" *" 09:41:06.879861 LIST_imap got "verifiedserver" * 09:41:06.880218 > "* LIST () "/" "WE ROOLZ: 112855"[CR][LF]" 09:41:06.880451 > "A002 OK LIST Completed[CR][LF]" 09:41:06.880620 return proof we are we 09:41:06.925534 < "A003 LOGOUT" 09:41:06.926692 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:06.927390 > "A003 OK LOGOUT completed[CR][LF]" 09:41:06.928958 MAIN sockfilt said DISC 09:41:06.929491 ====> Client disconnected 09:41:06.930035 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.126789 ====> Client connect 09:41:07.128830 Received DATA (on stdin) 09:41:07.128999 > 178 bytes data, server => client 09:41:07.129089 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.129173 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.129252 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.129329 'rve\r\n' 09:41:07.130273 < 17 bytes data, client => server 09:41:07.130428 'A001 CAPABILITY\r\n' 09:41:07.131595 Received DATA (on stdin) 09:41:07.131760 > 18 bytes data, server => client 09:41:07.131849 'A001 BAD Command\r\n' 09:41:07.132633 < 30 bytes data, client => server 09:41:07.132785 'A002 LIST "verifiedserver" *\r\n' 09:41:07.133989 Received DATA (on stdin) 09:41:07.134166 > 34 bytes data, server => client 09:41:07.134262 '* LIST () "/" "WE ROOLZ: 112855"\r\n' 09:41:07.134604 Received DATA (on stdin) 09:41:07.134746 > 24 bytes data, server => client 09:41:07.134826 'A002 OK LIST Completed\r\n' 09:41:07.178665 < 13 bytes data, client => server 09:41:07.178830 'A003 LOGOUT\r\n' 09:41:07.179675 Received DATA (on stdin) 09:41:07.179815 > 36 bytes data, server => client 09:41:07.179983 '* BYE curl IMAP server signing off\r\n' 09:41:07.180801 Received DATA (on stdin) 09:41:07.180922 > 26 bytes data, server => client 09:41:07.181367 'A003 OK LOGOUT completed\r\n' 09:41:07.182336 ====> Client disconnect 09:41:07.182942 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTHENTICATE + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9NDMyNzUBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= A002 OK AUTHENTICATE completed Testnum 842 === End of file server.cmd === Start of file valgrind842 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind842 test 0845...[IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind845 ../src/curl -q --output log/36/curl845.out --include --trace-ascii log/36/trace845 --trace-config all --trace-time 'imap://127.0.0.1:39751/845/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/36/stdout845 2> log/36/stderr845 845: protocol FAILED! There was no content at all in the file lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind844 ../src/curl -q --output log/54/curl844.out --include --trace-ascii log/54/trace844 --trace-config all --trace-time 'imap://127.0.0.1:39077/844/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/54/stdout844 2> log/54/stderr844 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind849 ../src/curl -q --output log/19/curl849.out --include --trace-ascii log/19/trace849 --trace-config all --trace-time 'imap://127.0.0.1:41739/849/;MAILINDEX=1' -u kurt:xipj3plmq --sasl-authzid ursel > log/19/stdout849 2> log/19/stderr849 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind847 ../src/curl -q --output log/18/curl847.out --include --trace-ascii log/18/trace847 --trace-config all --trace-time 'imap://127.0.0.1:34679/847/;UID=1' -u '"user:sec"ret{' > log/18/stdout847 2> log/18/stderr847 og/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 845 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind845 ../src/curl -q --output log/36/curl845.out --include --trace-ascii log/36/trace845 --trace-config all --trace-time 'imap://127.0.0.1:39751/845/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/36/stdout845 2> log/36/stderr845 === End of file commands.log === Start of file imap_server.log 09:41:07.061608 ====> Client connect 09:41:07.062974 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:07.069502 < "A001 CAPABILITY" 09:41:07.073981 > "A001 BAD Command[CR][LF]" 09:41:07.076087 < "A002 LIST "verifiedserver" *" 09:41:07.076407 LIST_imap got "verifiedserver" * 09:41:07.076829 > "* LIST () "/" "WE ROOLZ: 112863"[CR][LF]" 09:41:07.077138 > "A002 OK LIST Completed[CR][LF]" 09:41:07.077352 return proof we are we 09:41:07.120581 < "A003 LOGOUT" 09:41:07.121418 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:07.121723 > "A003 OK LOGOUT completed[CR][LF]" 09:41:07.125466 MAIN sockfilt said DISC 09:41:07.126119 ====> Client disconnected 09:41:07.126626 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.314746 ====> Client connect 09:41:07.320581 Received DATA (on stdin) 09:41:07.320759 > 178 bytes data, server => client 09:41:07.320865 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.320970 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.321072 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.321149 'rve\r\n' 09:41:07.322108 < 17 bytes data, client => server 09:41:07.322260 'A001 CAPABILITY\r\n' 09:41:07.323701 Received DATA (on stdin) 09:41:07.323857 > 18 bytes data, server => client 09:41:07.328047 'A001 BAD Command\r\n' 09:41:07.328863 < 30 bytes data, client => server 09:41:07.329017 'A002 LIST "verifiedserver" *\r\n' 09:41:07.331319 Received DATA (on stdin) 09:41:07.331550 > 34 bytes data, server => client 09:41:07.331670 '* LIST () "/" "WE ROOLZ: 112863"\r\n' 09:41:07.331895 Received DATA (on stdin) 09:41:07.332035 > 24 bytes data, server => client 09:41:07.332120 'A002 OK LIST Completed\r\n' 09:41:07.373401 < 13 bytes data, client => server 09:41:07.373641 'A003 LOGOUT\r\n' 09:41:07.374754 Received DATA (on stdin) 09:41:07.374905 > 36 bytes data, server => client 09:41:07.375819 '* BYE curl IMAP server signing off\r\n' 09:41:07.376176 Received DATA (on stdin) 09:41:07.376321 > 26 bytes data, server => client 09:41:07.376408 'A003 OK LOGOUT completed\r\n' 09:41:07.378901 ====> Client disconnect 09:41:07.379540 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER CAPA SASL-IR REPLY AUTHENTICATE + eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0= REPLY AQ== A002 NO Authentication failed Testnum 845 === End of file server.cmd === Start of file valgrind845 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind845 test 0849...[IMAP plain auth with alt authorization identity (Not authorized)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind849 ../src/curl -q --output log/19/curl849.out --include --trace-ascii log/19/trace849 --trace-config all --trace-time 'imap://127.0.0.1:41739/849/;MAILINDEX=1' -u kurt:xipj3plmq --sasl-authzid ursel > log/19/stdout849 2> log/19/stderr849 849: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 849 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind849 ../src/curl -q --output log/19/curl849.out --include --trace-ascii log/19/trace849 --trace-config all --trace-time 'imap://127.0.0.1:41739/849/;MAILINDEX=1' -u kurt:xipj3plmq --sasl-authzid ursel > log/19/stdout849 2> log/19/stderr849 === End of file commands.log === Start of file imap_server.log 09:41:07.112376 ====> Client connect 09:41:07.115096 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:07.119146 < "A001 CAPABILITY" 09:41:07.119545 > "A001 BAD Command[CR][LF]" 09:41:07.121671 < "A002 LIST "verifiedserver" *" 09:41:07.122077 LIST_imap got "verifiedserver" * 09:41:07.122447 > "* LIST () "/" "WE ROOLZ: 112880"[CR][LF]" 09:41:07.124980 > "A002 OK LIST Completed[CR][LF]" 09:41:07.125216 return proof we are we 09:41:07.167605 < "A003 LOGOUT" 09:41:07.168137 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:07.168443 > "A003 OK LOGOUT completed[CR][LF]" 09:41:07.170263 MAIN sockfilt said DISC 09:41:07.170501 ====> Client disconnected 09:41:07.171236 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.365327 ====> Client connect 09:41:07.367260 Received DATA (on stdin) 09:41:07.367418 > 178 bytes data, server => client 09:41:07.367922 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.368086 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.368164 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.368231 'rve\r\n' 09:41:07.371538 < 17 bytes data, client => server 09:41:07.371716 'A001 CAPABILITY\r\n' 09:41:07.373726 Received DATA (on stdin) 09:41:07.373874 > 18 bytes data, server => client 09:41:07.373953 'A001 BAD Command\r\n' 09:41:07.374637 < 30 bytes data, client => server 09:41:07.374795 'A002 LIST "verifiedserver" *\r\n' 09:41:07.378576 Received DATA (on stdin) 09:41:07.378742 > 34 bytes data, server => client 09:41:07.378828 '* LIST () "/" "WE ROOLZ: 112880"\r\n' 09:41:07.379315 Received DATA (on stdin) 09:41:07.379571 > 24 bytes data, server => client 09:41:07.379713 'A002 OK LIST Completed\r\n' 09:41:07.420629 < 13 bytes data, client => server 09:41:07.420854 'A003 LOGOUT\r\n' 09:41:07.422418 Received DATA (on stdin) 09:41:07.422668 > 36 bytes data, server => client 09:41:07.422776 '* BYE curl IMAP server signing off\r\n' 09:41:07.423118 Received DATA (on stdin) 09:41:07.423270 > 26 bytes data, server => client 09:41:07.423351 'A003 OK LOGOUT completed\r\n' 09:41:07.423745 ====> Client disconnect 09:41:07.424549 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTHENTICATE + REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= A002 NO Not authorized Testnum 849 === End of file server.cmd === Start of file valgrind849 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind849 test 0844...[IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind844 ../src/curl -q --output log/54/curl844.out --include --trace-ascii log/54/trace844 --trace-config all --trace-time 'imap://127.0.0.1:39077/844/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/54/stdout844 2> log/54/stderr844 844: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 844 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind844 ../src/curl -q --output log/54/curl844.out --include --trace-ascii log/54/trace844 --trace-config all --trace-time 'imap://127.0.0.1:39077/844/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/54/stdout844 2> log/54/stderr844 === End of file commands.log === Start of file imap_server.log 09:41:06.972025 ====> Client connect 09:41:06.973183 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:06.976286 < "A001 CAPABILITY" 09:41:06.978136 > "A001 BAD Command[CR][LF]" 09:41:06.978931 < "A002 LIST "verifiedserver" *" 09:41:06.979244 LIST_imap got "verifiedserver" * 09:41:06.979594 > "* LIST () "/" "WE ROOLZ: 112844"[CR][LF]" 09:41:06.980608 > "A002 OK LIST Completed[CR][LF]" 09:41:06.981566 return proof we are we 09:41:07.022686 < "A003 LOGOUT" 09:41:07.023954 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:07.024855 > "A003 OK LOGOUT completed[CR][LF]" 09:41:07.028528 MAIN sockfilt said DISC 09:41:07.029171 ====> Client disconnected 09:41:07.029649 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.225129 ====> Client connect 09:41:07.227211 Received DATA (on stdin) 09:41:07.227354 > 178 bytes data, server => client 09:41:07.227534 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.227651 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.227738 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.227810 'rve\r\n' 09:41:07.228753 < 17 bytes data, client => server 09:41:07.228899 'A001 CAPABILITY\r\n' 09:41:07.230382 Received DATA (on stdin) 09:41:07.230604 > 18 bytes data, server => client 09:41:07.230799 'A001 BAD Command\r\n' 09:41:07.231426 < 30 bytes data, client => server 09:41:07.231642 'A002 LIST "verifiedserver" *\r\n' 09:41:07.233576 Received DATA (on stdin) 09:41:07.233724 > 34 bytes data, server => client 09:41:07.233813 '* LIST () "/" "WE ROOLZ: 112844"\r\n' 09:41:07.234781 Received DATA (on stdin) 09:41:07.234929 > 24 bytes data, server => client 09:41:07.235020 'A002 OK LIST Completed\r\n' 09:41:07.275443 < 13 bytes data, client => server 09:41:07.275711 'A003 LOGOUT\r\n' 09:41:07.276877 Received DATA (on stdin) 09:41:07.277019 > 36 bytes data, server => client 09:41:07.277188 '* BYE curl IMAP server signing off\r\n' 09:41:07.278060 Received DATA (on stdin) 09:41:07.278239 > 26 bytes data, server => client 09:41:07.281557 'A003 OK LOGOUT completed\r\n' 09:41:07.281977 ====> Client disconnect 09:41:07.282605 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTHENTICATE + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9MzkwNzcBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= A002 NO Authentication failed Testnum 844 === End of file server.cmd === Start of file valgrind844 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind844 test 0847...[IMAP FETCH message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind847 ../src/curl -q --output log/18/curl847.out --include --trace-ascii log/18/trace847 --trace-config all --trace-time 'imap://127.0.0.1:34679/847/;UID=1' -u '"user:sec"ret{' > log/18/stdout847 2> log/18/stderr847 847: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 847 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind847 ../src/curl -q --output log/18/curl847.out --includeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind848 ../src/curl -q --output log/31/curl848.out --include --trace-ascii log/31/trace848 --trace-config all --trace-time 'imap://127.0.0.1:38735/848/;MAILINDEX=1' -u user:secret --sasl-authzid shared-mailbox > log/31/stdout848 2> log/31/stderr848 --trace-ascii log/18/trace847 --trace-config all --trace-time 'imap://127.0.0.1:34679/847/;UID=1' -u '"user:sec"ret{' > log/18/stdout847 2> log/18/stderr847 === End of file commands.log === Start of file imap_server.log 09:41:07.074360 ====> Client connect 09:41:07.075561 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:07.078546 < "A001 CAPABILITY" 09:41:07.079333 > "A001 BAD Command[CR][LF]" 09:41:07.081259 < "A002 LIST "verifiedserver" *" 09:41:07.081573 LIST_imap got "verifiedserver" * 09:41:07.082327 > "* LIST () "/" "WE ROOLZ: 112972"[CR][LF]" 09:41:07.082613 > "A002 OK LIST Completed[CR][LF]" 09:41:07.082906 return proof we are we 09:41:07.126712 < "A003 LOGOUT" 09:41:07.127912 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:07.131929 > "A003 OK LOGOUT completed[CR][LF]" 09:41:07.133016 MAIN sockfilt said DISC 09:41:07.133288 ====> Client disconnected 09:41:07.133703 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.327309 ====> Client connect 09:41:07.329854 Received DATA (on stdin) 09:41:07.330015 > 178 bytes data, server => client 09:41:07.330108 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.330197 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.330285 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.330370 'rve\r\n' 09:41:07.331113 < 17 bytes data, client => server 09:41:07.331252 'A001 CAPABILITY\r\n' 09:41:07.332701 Received DATA (on stdin) 09:41:07.332842 > 18 bytes data, server => client 09:41:07.333338 'A001 BAD Command\r\n' 09:41:07.334106 < 30 bytes data, client => server 09:41:07.334248 'A002 LIST "verifiedserver" *\r\n' 09:41:07.335689 Received DATA (on stdin) 09:41:07.335834 > 34 bytes data, server => client 09:41:07.336903 '* LIST () "/" "WE ROOLZ: 112972"\r\n' 09:41:07.337233 Received DATA (on stdin) 09:41:07.337377 > 24 bytes data, server => client 09:41:07.337532 'A002 OK LIST Completed\r\n' 09:41:07.379588 < 13 bytes data, client => server 09:41:07.379762 'A003 LOGOUT\r\n' 09:41:07.380873 Received DATA (on stdin) 09:41:07.381015 > 36 bytes data, server => client 09:41:07.381177 '* BYE curl IMAP server signing off\r\n' 09:41:07.381972 Received DATA (on stdin) 09:41:07.382109 > 26 bytes data, server => client 09:41:07.385980 'A003 OK LOGOUT completed\r\n' 09:41:07.386393 ====> Client disconnect 09:41:07.387808 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 847 === End of file server.cmd === Start of file valgrind847 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind847 test 0848...[IMAP plain authentication with alternative authorization identity] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind848 ../src/curl -q --output log/31/curl848.out --include --trace-ascii log/31/trace848 --trace-config all --trace-time 'imap://127.0.0.1:38735/848/;MAILINDEX=1' -u user:secret --sasl-authzid shared-mailbox > log/31/stdout848 2> log/31/stderr848 848: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 848 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind848 ../src/curl -q --output log/31/curl848.out --include --trace-ascii log/31/trace848 --trace-config all --trace-time 'imap://127.0.0.1:38735/848/;MAILINDEX=1' -u user:secret --sasl-authzid shared-mailbox > log/31/stdout848 2> log/31/stderr848 === End of file commands.log === Start of file imap_server.log 09:41:07.141973 ====> Client connect 09:41:07.143384 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:07.149647 < "A001 CAPABILITY" 09:41:07.152030 > "A001 BAD Command[CR][LF]" 09:41:07.152843 < "A002 LIST "verifiedserver" *" 09:41:07.153172 LIST_imap got "verifiedserver" * 09:41:07.153555 > "* LIST () "/" "WE ROOLZ: 106054"[CR][LF]" 09:41:07.156381 > "A002 OK LIST Completed[CR][LF]" 09:41:07.156642 return proof we are we 09:41:07.198505 < "A003 LOGOUT" 09:41:07.199324 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:07.199630 > "A003 OK LOGOUT completed[CR][LF]" 09:41:07.206251 MAIN sockfilt said DISC 09:41:07.206676 ====> Client disconnected 09:41:07.207238 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:07.394985 ====> Client connect 09:41:07.400582 Received DATA (on stdin) 09:41:07.400763 > 178 bytes data, server => client 09:41:07.400869 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.400979 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.401080 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:07.401164 'rve\r\n' 09:41:07.402119 < 17 bytes data, client => server 09:41:07.402276 'A001 CAPABILITY\r\n' 09:41:07.403852 Received DATA (on stdin) 09:41:07.404002 > 18 bytes data, server => client 09:41:07.404386 'A001 BAD Command\r\n' 09:41:07.405166 < 30 bytes data, client => server 09:41:07.405316 'A002 LIST "verifiedserver" *\r\n' 09:41:07.407588 Received DATA (on stdin) 09:41:07.407758 > 34 bytes data, server => client 09:41:07.407863 '* LIST () "/" "WE ROOLZ: 106054"\r\n' 09:41:07.409675 Received DATA (on stdin) 09:41:07.409847 > 24 bytes data, server => client 09:41:07.410712 'A002 OK LIST Completed\r\n' 09:41:07.451272 < 13 bytes data, client => server 09:41:07.451533 'A003 LOGOUT\r\n' 09:41:07.452663 Received DATA (on stdin) 09:41:07.452820 > 36 bytes data, server => client 09:41:07.453730 '* BYE curl IMAP server signing off\r\n' 09:41:07.454115 Received DATA (on stdin) 09:41:07.454272 > 26 bytes data, server => client 09:41:07.454348 'A003 OK LOGOUT completed\r\n' 09:41:07.459583 ====> Client disconnect 09:41:07.460402 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTHENTICATE + REPLY c2hhcmVkLW1haWxib3gAdXNlcgBzZWNyZXQ= A002 OK AUTHENTICATE completed Testnum 848 === End of file server.cmd === Start of file valgrind848 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind852 ../src/curl -q --output log/43/curl852.out --include --trace-ascii log/43/trace852 --trace-config all --trace-time pop3://127.0.0.1:33889/852 -l -u user:secret > log/43/stdout852 2> log/43/stderr852 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind850 ../src/curl -q --output log/4/curl850.out --include --trace-ascii log/4/trace850 --trace-config all --trace-time pop3://127.0.0.1:45461/850 -u user:secret > log/4/stdout850 2> log/4/stderr850 combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind848 test 0852...[POP3 LIST invalid message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind852 ../src/curl -q --output log/43/curl852.out --include --trace-ascii log/43/trace852 --trace-config all --trace-time pop3://127.0.0.1:33889/852 -l -u user:secret > log/43/stdout852 2> log/43/stderr852 852: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 852 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind852 ../src/curl -q --output log/43/curl852.out --include --trace-ascii log/43/trace852 --trace-config all --trace-time pop3://127.0.0.1:33889/852 -l -u user:secret > log/43/stdout852 2> log/43/stderr852 === End of file commands.log === Start of file pop3_server.log 09:41:07.356699 ====> Client connect 09:41:07.359937 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:07.361574 < "CAPA" 09:41:07.362105 > "-ERR Unrecognized command[CR][LF]" 09:41:07.364540 < "RETR verifiedserver" 09:41:07.364956 return proof we are we 09:41:07.366150 > "+OK Mail transfer starts[CR][LF]" 09:41:07.366487 > "WE ROOLZ: 96591[CR][LF]" 09:41:07.366853 > ".[CR][LF]" 09:41:07.408974 < "QUIT" 09:41:07.410214 > "+OK curl POP3 server signing off[CR][LF]" 09:41:07.414230 MAIN sockfilt said DISC 09:41:07.415249 ====> Client disconnected 09:41:07.415820 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.609838 ====> Client connect 09:41:07.612248 Received DATA (on stdin) 09:41:07.612412 > 178 bytes data, server => client 09:41:07.612771 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:07.612912 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:07.613002 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:07.613084 've \r\n' 09:41:07.614316 < 6 bytes data, client => server 09:41:07.614544 'CAPA\r\n' 09:41:07.616136 Received DATA (on stdin) 09:41:07.616274 > 27 bytes data, server => client 09:41:07.616361 '-ERR Unrecognized command\r\n' 09:41:07.617352 < 21 bytes data, client => server 09:41:07.617573 'RETR verifiedserver\r\n' 09:41:07.619004 Received DATA (on stdin) 09:41:07.619151 > 26 bytes data, server => client 09:41:07.619391 '+OK Mail transfer starts\r\n' 09:41:07.620945 Received DATA (on stdin) 09:41:07.621159 > 17 bytes data, server => client 09:41:07.621243 'WE ROOLZ: 96591\r\n' 09:41:07.621359 Received DATA (on stdin) 09:41:07.621541 > 3 bytes data, server => client 09:41:07.621653 '.\r\n' 09:41:07.661749 < 6 bytes data, client => server 09:41:07.661928 'QUIT\r\n' 09:41:07.663085 Received DATA (on stdin) 09:41:07.663233 > 34 bytes data, server => client 09:41:07.663423 '+OK curl POP3 server signing off\r\n' 09:41:07.667591 ====> Client disconnect 09:41:07.668290 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY LIST -ERR no such message Testnum 852 === End of file server.cmd === Start of file valgrind852 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind852 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/pop3_server.pid" --logfile "log/4/pop3_server.log" --logdir "log/4" --portfile "log/4/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45461 (log/4/server/pop3_server.port) RUN: POP3 server is PID 115326 port 45461 * pid pop3 => 115326 115326 test 0850...[POP3 RETR message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind850 ../src/curl -q --output log/4/curl850.out --include --trace-ascii log/4/trace850 --trace-config all --trace-time pop3://127.0.0.1:45461/850 -u user:secret > log/4/stdout850 2> log/4/stderr850 850: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 850 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind850 ../src/curl -q --output log/4/curl850.out --include --trace-ascii log/4/trace850 --trace-config all --trace-time pop3://127.0.0.1:45461/850 -u user:secret > log/4/stdout850 2> log/4/stderr850 === End of file commands.log === Start of file pop3_server.log 09:41:07.414883 POP3 server listens on port IPv4/45461 09:41:07.416014 logged pid 115326 in log/4/server/pop3_server.pid 09:41:07.416310 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.665533 Running IPv4 version 09:41:07.666298 Listening on port 45461 09:41:07.666948 Wrote pid 115712 to log/4/server/pop3_sockfilt.pid 09:41:07.667352 Wrote port 45461 to log/4/server/pop3_server.port CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind851 ../src/curl -q --output log/35/curl851.out --include --trace-ascii log/35/trace851 --trace-config all --trace-time pop3://127.0.0.1:44529/851 -l -u user:secret > log/35/stdout851 2> log/35/stderr851 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind853 ../src/curl -q --output log/17/curl853.out --include --trace-ascii log/17/trace853 --trace-config all --trace-time pop3://127.0.0.1:35579/ -u user:secret > log/17/stdout853 2> log/17/stderr853 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind854 ../src/curl -q --output log/30/curl854.out --include --trace-ascii log/30/trace854 --trace-config all --trace-time pop3://127.0.0.1:39241/ -u user:secret > log/30/stdout854 2> log/30/stderr854 09:41:07.667645 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 850 === End of file server.cmd === Start of file valgrind850 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind850 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/35/server/pop3_server.pid" --logfile "log/35/pop3_server.log" --logdir "log/35" --portfile "log/35/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44529 (log/35/server/pop3_server.port) RUN: POP3 server is PID 115473 port 44529 * pid pop3 => 115473 115473 test 0851...[POP3 LIST one message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind851 ../src/curl -q --output log/35/curl851.out --include --trace-ascii log/35/trace851 --trace-config all --trace-time pop3://127.0.0.1:44529/851 -l -u user:secret > log/35/stdout851 2> log/35/stderr851 851: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 851 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind851 ../src/curl -q --output log/35/curl851.out --include --trace-ascii log/35/trace851 --trace-config all --trace-time pop3://127.0.0.1:44529/851 -l -u user:secret > log/35/stdout851 2> log/35/stderr851 === End of file commands.log === Start of file pop3_server.log 09:41:07.608877 POP3 server listens on port IPv4/44529 09:41:07.609738 logged pid 115473 in log/35/server/pop3_server.pid 09:41:07.610113 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.856992 Running IPv4 version 09:41:07.857655 Listening on port 44529 09:41:07.858118 Wrote pid 115875 to log/35/server/pop3_sockfilt.pid 09:41:07.861559 Wrote port 44529 to log/35/server/pop3_server.port 09:41:07.861843 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd # include the '.\r\n' 3-byte trailer to end the transfer properly REPLY LIST +OK 851 100\r\n. Testnum 851 === End of file server.cmd === Start of file valgrind851 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind851 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/17/server/pop3_server.pid" --logfile "log/17/pop3_server.log" --logdir "log/17" --portfile "log/17/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35579 (log/17/server/pop3_server.port) RUN: POP3 server is PID 115522 port 35579 * pid pop3 => 115522 115522 test 0853...[POP3 LIST messages from *SLOW* server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind853 ../src/curl -q --output log/17/curl853.out --include --trace-ascii log/17/trace853 --trace-config all --trace-time pop3://127.0.0.1:35579/ -u user:secret > log/17/stdout853 2> log/17/stderr853 853: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 853 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind853 ../src/curl -q --output log/17/curl853.out --include --trace-ascii log/17/trace853 --trace-config all --trace-time pop3://127.0.0.1:35579/ -u user:secret > log/17/stdout853 2> log/17/stderr853 === End of file commands.log === Start of file pop3_server.log 09:41:07.620714 POP3 server listens on port IPv4/35579 09:41:07.621711 logged pid 115522 in log/17/server/pop3_server.pid 09:41:07.622587 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.869049 Running IPv4 version 09:41:07.872744 Listening on port 35579 09:41:07.873215 Wrote pid 115885 to log/17/server/pop3_sockfilt.pid 09:41:07.873638 Wrote port 35579 to log/17/server/pop3_server.port 09:41:07.873822 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd SLOWDOWN Testnum 853 === End of file server.cmd === Start of file valgrind853 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.soCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind867 ../src/curl -q --output log/43/curl867.out --include --trace-ascii log/43/trace867 --trace-config all --trace-time pop3://127.0.0.1:33889/867 -u user:secret > log/43/stdout867 2> log/43/stderr867 (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind853 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/30/server/pop3_server.pid" --logfile "log/30/pop3_server.log" --logdir "log/30" --portfile "log/30/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39241 (log/30/server/pop3_server.port) RUN: POP3 server is PID 115540 port 39241 * pid pop3 => 115540 115540 test 0854...[POP3 LIST no messages available] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind854 ../src/curl -q --output log/30/curl854.out --include --trace-ascii log/30/trace854 --trace-config all --trace-time pop3://127.0.0.1:39241/ -u user:secret > log/30/stdout854 2> log/30/stderr854 854: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 854 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind854 ../src/curl -q --output log/30/curl854.out --include --trace-ascii log/30/trace854 --trace-config all --trace-time pop3://127.0.0.1:39241/ -u user:secret > log/30/stdout854 2> log/30/stderr854 === End of file commands.log === Start of file pop3_server.log 09:41:07.640967 POP3 server listens on port IPv4/39241 09:41:07.642007 logged pid 115540 in log/30/server/pop3_server.pid 09:41:07.642298 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.891867 Running IPv4 version 09:41:07.892719 Listening on port 39241 09:41:07.893182 Wrote pid 115911 to log/30/server/pop3_sockfilt.pid 09:41:07.893654 Wrote port 39241 to log/30/server/pop3_server.port 09:41:07.893839 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY LIST +OK but no messages\r\n. Testnum 854 === End of file server.cmd === Start of file valgrind854 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind854 test 0867...[POP3 CRAM-MD5 authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind867 ../src/curl -q --output log/43/curl867.out --include --trace-ascii log/43/trace867 --trace-config all --trace-time pop3://127.0.0.1:33889/867 -u user:secret > log/43/stdout867 2> log/43/stderr867 867: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 867 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind867 ../src/curl -q --output log/43/curl867.out --include --trace-ascii log/43/trace867 --trace-config all --trace-time pop3://127.0.0.1:33889/867 -u user:secret > log/43/stdout867 2> log/43/stderr867 === End of file commands.log === Start of file pop3_server.log 09:41:08.243982 ====> Client connect 09:41:08.247050 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:08.248500 < "CAPA" 09:41:08.249027 > "-ERR Unrecognized command[CR][LF]" 09:41:08.251224 < "RETR verifiedserver" 09:41:08.251510 return proof we are we 09:41:08.251864 > "+OK Mail transfer starts[CR][LF]" 09:41:08.252217 > "WE ROOLZ: 96591[CR][LF]" 09:41:08.252548 > ".[CR][LF]" 09:41:08.295712 < "QUIT" 09:41:08.296236 > "+OK curl POP3 server signing off[CR][LF]" 09:41:08.301164 MAIN sockfilt said DISC 09:41:08.302056 ====> Client disconnected 09:41:08.302571 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.496978 ====> Client connect 09:41:08.498952 Received DATA (on stdin) 09:41:08.499115 > 178 bytes data, server => client 09:41:08.499341 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:08.499570 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:08.499693 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:08.499784 've \r\n' 09:41:08.501152 < 6 bytes data, client => server 09:41:08.501286 'CAPA\r\n' 09:41:08.503081 Received DATA (on stdin) 09:41:08.503215 > 27 bytes data, server => client 09:41:08.503301 '-ERR Unrecognized command\r\n' 09:41:08.503971 < 21 bytes data, client => server 09:41:08.504111 'RETR verifiedserver\r\n' 09:41:08.506588 Received DATA (on stdin) 09:41:08.506736 > 26 bytes data, server => client 09:41:08.506817 '+OK Mail transfer starts\r\n' 09:41:08.507078 Received DATA (on stdin) 09:41:08.507209 > 17 bytes data, server => client 09:41:08.507282 'WE ROOLZ: 96591\r\n' 09:41:08.507391 Received DATA (on stdin) 09:41:08.507570 > 3 bytes data, server => client 09:41:08.507679 '.\r\n' 09:41:08.548526 < 6 bytes data, client => server 09:41:08.548719 'QUIT\r\n' 09:41:08.550351 Received DATA (on stdin) 09:41:08.550575 > 34 bytes data, server => client 09:41:08.550670 '+OK curl POP3 server signing off\r\n' 09:41:08.554586 ====> Client disconnect 09:41:08.555197 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH + PDE5NzIuOTg3NjU0MzIxQGN1cmw+ REPLY dXNlciA3MDMxNzI1NTk5ZmRiYjVkNDEyNjg5YWEzMjNlM2UwYg== +OK Login successful Testnum 867 === End of file server.cmd === Start of file valgrind867 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind856 ../src/curl -q --output log/13/curl856.out --include --trace-ascii log/13/trace856 --trace-config all --trace-time pop3://127.0.0.1:46435/856 -u user:wrong > log/13/stdout856 2> log/13/stderr856 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind855 ../src/curl -q --output log/39/curl855.out --include --trace-ascii log/39/trace855 --trace-config all --trace-time pop3://127.0.0.1:45559/855 -u user:secret > log/39/stdout855 2> log/39/stderr855 p valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind867 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/13/server/pop3_server.pid" --logfile "log/13/pop3_server.log" --logdir "log/13" --portfile "log/13/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46435 (log/13/server/pop3_server.port) RUN: POP3 server is PID 115723 port 46435 * pid pop3 => 115723 115723 test 0856...[POP3 invalid login] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind856 ../src/curl -q --output log/13/curl856.out --include --trace-ascii log/13/trace856 --trace-config all --trace-time pop3://127.0.0.1:46435/856 -u user:wrong > log/13/stdout856 2> log/13/stderr856 856: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 856 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind856 ../src/curl -q --output log/13/curl856.out --include --trace-ascii log/13/trace856 --trace-config all --trace-time pop3://127.0.0.1:46435/856 -u user:wrong > log/13/stdout856 2> log/13/stderr856 === End of file commands.log === Start of file pop3_server.log 09:41:07.794428 POP3 server listens on port IPv4/46435 09:41:07.795577 logged pid 115723 in log/13/server/pop3_server.pid 09:41:07.796052 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.045837 Running IPv4 version 09:41:07.046565 Listening on port 46435 09:41:07.046986 Wrote pid 115974 to log/13/server/pop3_sockfilt.pid 09:41:07.047279 Wrote port 46435 to log/13/server/pop3_server.port 09:41:07.047426 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY PASS -ERR Login failure Testnum 856 === End of file server.cmd === Start of file valgrind856 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind856 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/39/server/pop3_server.pid" --logfile "log/39/pop3_server.log" --logdir "log/39" --portfile "log/39/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45559 (log/39/server/pop3_server.port) RUN: POP3 server is PID 115662 port 45559 * pid pop3 => 115662 115662 test 0855...[POP3 RETR invalid message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind855 ../src/curl -q --output log/39/curl855.out --include --trace-ascii log/39/trace855 --trace-config all --trace-time pop3://127.0.0.1:45559/855 -u user:secret > log/39/stdout855 2> log/39/stderr855 855: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 855 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind855 ../src/curl -q --output log/39/curl855.out --include --trace-ascii log/39/trace855 --trace-config all --trace-time pop3://127.0.0.1:45559/855 -u user:secret > log/39/stdout855 2> log/39/stderr855 === End of file commands.log === Start of file pop3_server.log 09:41:07.738718 POP3 server listens on port IPv4/45559 09:41:07.739721 logged pid 115662 in log/39/server/pop3_server.pid 09:41:07.740124 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.987374 Running IPv4 version 09:41:07.990028 Listening on port 45559 09:41:07.990406 Wrote pid 115957 to log/39/server/pop3_sockfilt.pid 09:41:07.991643 Wrote port 45559 to log/39/server/pop3_server.port 09:41:07.991815 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY RETR -ERR no such message Testnum 855 === End of file server.cmd === Start of file valgrind855 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind858 ../src/curl -q --output log/6/curl858.out --include --trace-ascii log/6/trace858 --trace-config all --trace-time pop3://127.0.0.1:41275/858 -u user:secret -X DELE -I > log/6/stdout858 2> log/6/stderr858 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind857 ../src/curl -q --output log/10/curl857.out --include --trace-ascii log/10/trace857 --trace-config all --trace-time pop3://127.0.0.1:36573/857 -u user:secret > log/10/stdout857 2> log/10/stderr857 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind859 ../src/curl -q --output log/9/curl859.out --include --trace-ascii log/9/trace859 --trace-config all --trace-time pop3://127.0.0.1:39233 -u user:secret -X STAT -I > log/9/stdout859 2> log/9/stderr859 nd: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind855 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/pop3_server.pid" --logfile "log/6/pop3_server.log" --logdir "log/6" --portfile "log/6/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41275 (log/6/server/pop3_server.port) RUN: POP3 server is PID 115770 port 41275 * pid pop3 => 115770 115770 test 0858...[POP3 DELE message (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind858 ../src/curl -q --output log/6/curl858.out --include --trace-ascii log/6/trace858 --trace-config all --trace-time pop3://127.0.0.1:41275/858 -u user:secret -X DELE -I > log/6/stdout858 2> log/6/stderr858 858: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 858 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind858 ../src/curl -q --output log/6/curl858.out --include --trace-ascii log/6/trace858 --trace-config all --trace-time pop3://127.0.0.1:41275/858 -u user:secret -X DELE -I > log/6/stdout858 2> log/6/stderr858 === End of file commands.log === Start of file pop3_server.log 09:41:07.962237 POP3 server listens on port IPv4/41275 09:41:07.963152 logged pid 115770 in log/6/server/pop3_server.pid 09:41:07.963392 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.211424 Running IPv4 version 09:41:07.212171 Listening on port 41275 09:41:07.214766 Wrote pid 115996 to log/6/server/pop3_sockfilt.pid 09:41:07.215146 Wrote port 41275 to log/6/server/pop3_server.port 09:41:07.215323 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 858 === End of file server.cmd === Start of file valgrind858 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind858 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/10/server/pop3_server.pid" --logfile "log/10/pop3_server.log" --logdir "log/10" --portfile "log/10/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36573 (log/10/server/pop3_server.port) RUN: POP3 server is PID 115725 port 36573 * pid pop3 => 115725 115725 test 0857...[POP3 RETR message with dot-prefixed line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind857 ../src/curl -q --output log/10/curl857.out --include --trace-ascii log/10/trace857 --trace-config all --trace-time pop3://127.0.0.1:36573/857 -u user:secret > log/10/stdout857 2> log/10/stderr857 857: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 857 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind857 ../src/curl -q --output log/10/curl857.out --include --trace-ascii log/10/trace857 --trace-config all --trace-time pop3://127.0.0.1:36573/857 -u user:secret > log/10/stdout857 2> log/10/stderr857 === End of file commands.log === Start of file pop3_server.log 09:41:07.982926 POP3 server listens on port IPv4/36573 09:41:07.983911 logged pid 115725 in log/10/server/pop3_server.pid 09:41:07.984207 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.234137 Running IPv4 version 09:41:07.234812 Listening on port 36573 09:41:07.235292 Wrote pid 115998 to log/10/server/pop3_sockfilt.pid 09:41:07.235739 Wrote port 36573 to log/10/server/pop3_server.port 09:41:07.235900 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 857 === End of file server.cmd === Start of file valgrind857 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind857 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/9/server/pop3_server.pid" --logfile "log/9/pop3_server.log" --logdir "log/9" --portfile "log/9/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39233 (log/9/server/pop3_server.port) RUN: POP3 server is PID 115864 port 39233 * pid pop3 => 115864 115864 test 0859...[POP3 STAT (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind859 ../src/curl -q --output log/9/curl859.out --include --trace-ascii log/9/trace859 --trace-config all --trace-time pop3://127.0.0.1:39233 -u user:secret -X STAT -I > log/9/stdout859 2> log/9/stderr859 859: protocCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind860 ../src/curl -q --output log/58/curl860.out --include --trace-ascii log/58/trace860 --trace-config all --trace-time pop3://127.0.0.1:39361 -u user:secret -X NOOP -I > log/58/stdout860 2> log/58/stderr860 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind861 ../src/curl -q --output log/63/curl861.out --include --trace-ascii log/63/trace861 --trace-config all --trace-time pop3://127.0.0.1:42877 -u user:secret -X UIDL > log/63/stdout861 2> log/63/stderr861 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind868 ../src/curl -q --output log/4/curl868.out --include --trace-ascii log/4/trace868 --trace-config all --trace-time pop3://127.0.0.1:45461/868 -u testuser:testpass > log/4/stdout868 2> log/4/stderr868 ol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 859 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind859 ../src/curl -q --output log/9/curl859.out --include --trace-ascii log/9/trace859 --trace-config all --trace-time pop3://127.0.0.1:39233 -u user:secret -X STAT -I > log/9/stdout859 2> log/9/stderr859 === End of file commands.log === Start of file pop3_server.log 09:41:07.988204 POP3 server listens on port IPv4/39233 09:41:07.989173 logged pid 115864 in log/9/server/pop3_server.pid 09:41:07.989443 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:07.239665 Running IPv4 version 09:41:07.240213 Listening on port 39233 09:41:07.240654 Wrote pid 116000 to log/9/server/pop3_sockfilt.pid 09:41:07.240954 Wrote port 39233 to log/9/server/pop3_server.port 09:41:07.241094 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 859 === End of file server.cmd === Start of file valgrind859 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind859 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/58/server/pop3_server.pid" --logfile "log/58/pop3_server.log" --logdir "log/58" --portfile "log/58/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39361 (log/58/server/pop3_server.port) RUN: POP3 server is PID 115963 port 39361 * pid pop3 => 115963 115963 test 0860...[POP3 NOOP (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind860 ../src/curl -q --output log/58/curl860.out --include --trace-ascii log/58/trace860 --trace-config all --trace-time pop3://127.0.0.1:39361 -u user:secret -X NOOP -I > log/58/stdout860 2> log/58/stderr860 860: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 860 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind860 ../src/curl -q --output log/58/curl860.out --include --trace-ascii log/58/trace860 --trace-config all --trace-time pop3://127.0.0.1:39361 -u user:secret -X NOOP -I > log/58/stdout860 2> log/58/stderr860 === End of file commands.log === Start of file pop3_server.log 09:41:08.152106 POP3 server listens on port IPv4/39361 09:41:08.153147 logged pid 115963 in log/58/server/pop3_server.pid 09:41:08.153410 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.403560 Running IPv4 version 09:41:08.404116 Listening on port 39361 09:41:08.404609 Wrote pid 116025 to log/58/server/pop3_sockfilt.pid 09:41:08.404943 Wrote port 39361 to log/58/server/pop3_server.port 09:41:08.405096 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 860 === End of file server.cmd === Start of file valgrind860 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind860 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/63/server/pop3_server.pid" --logfile "log/63/pop3_server.log" --logdir "log/63" --portfile "log/63/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42877 (log/63/server/pop3_server.port) RUN: POP3 server is PID 115976 port 42877 * pid pop3 => 115976 115976 test 0861...[POP3 UIDL (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind861 ../src/curl -q --output log/63/curl861.out --include --trace-ascii log/63/trace861 --trace-config all --trace-time pop3://127.0.0.1:42877 -u user:secret -X UIDL > log/63/stdout861 2> log/63/stderr861 861: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 861 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind861 ../src/curl -q --output log/63/curl861.out --include --trace-ascii log/63/trace861 --trace-config all --trace-time pop3://127.0.0.1:42877 -u user:secret -X UIDL > log/63/stdout861 2> log/63/stderr861 === End of file commands.log === Start of file pop3_server.log 09:41:08.229366 POP3 server listens on port IPv4/42877 09:41:08.232640 logged pid 115976 in log/63/server/pop3_server.pid 09:41:08.233071 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.480400 Running IPv4 version 09:41:08.481117 Listening on port 42877 09:41:08.481671 Wrote pid 116045 to log/63/server/pop3_sockfiltCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind862 ../src/curl -q --output log/36/curl862.out --include --trace-ascii log/36/trace862 --trace-config all --trace-time pop3://127.0.0.1:45329 -u user:secret -X 'TOP 862 0' > log/36/stdout862 2> log/36/stderr862 .pid 09:41:08.482028 Wrote port 42877 to log/63/server/pop3_server.port 09:41:08.482183 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA UIDL USER Testnum 861 === End of file server.cmd === Start of file valgrind861 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind861 test 0868...[POP3 NTLM authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind868 ../src/curl -q --output log/4/curl868.out --include --trace-ascii log/4/trace868 --trace-config all --trace-time pop3://127.0.0.1:45461/868 -u testuser:testpass > log/4/stdout868 2> log/4/stderr868 868: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 868 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind868 ../src/curl -q --output log/4/curl868.out --include --trace-ascii log/4/trace868 --trace-config all --trace-time pop3://127.0.0.1:45461/868 -u testuser:testpass > log/4/stdout868 2> log/4/stderr868 === End of file commands.log === Start of file pop3_server.log 09:41:08.792327 ====> Client connect 09:41:08.794626 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:08.798146 < "CAPA" 09:41:08.799542 > "-ERR Unrecognized command[CR][LF]" 09:41:08.800940 < "RETR verifiedserver" 09:41:08.801861 return proof we are we 09:41:08.802445 > "+OK Mail transfer starts[CR][LF]" 09:41:08.804150 > "WE ROOLZ: 115326[CR][LF]" 09:41:08.804459 > ".[CR][LF]" 09:41:08.846255 < "QUIT" 09:41:08.847655 > "+OK curl POP3 server signing off[CR][LF]" 09:41:08.852445 MAIN sockfilt said DISC 09:41:08.852861 ====> Client disconnected 09:41:08.853598 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.045083 ====> Client connect 09:41:09.047815 Received DATA (on stdin) 09:41:09.048033 > 178 bytes data, server => client 09:41:09.048890 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.049047 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.049148 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.049247 've \r\n' 09:41:09.050245 < 6 bytes data, client => server 09:41:09.050572 'CAPA\r\n' 09:41:09.052294 Received DATA (on stdin) 09:41:09.052532 > 27 bytes data, server => client 09:41:09.052760 '-ERR Unrecognized command\r\n' 09:41:09.053584 < 21 bytes data, client => server 09:41:09.053763 'RETR verifiedserver\r\n' 09:41:09.056561 Received DATA (on stdin) 09:41:09.056716 > 26 bytes data, server => client 09:41:09.056810 '+OK Mail transfer starts\r\n' 09:41:09.057362 Received DATA (on stdin) 09:41:09.057621 > 18 bytes data, server => client 09:41:09.058539 'WE ROOLZ: 115326\r\n' 09:41:09.058809 Received DATA (on stdin) 09:41:09.058940 > 3 bytes data, server => client 09:41:09.059038 '.\r\n' 09:41:09.098923 < 6 bytes data, client => server 09:41:09.099126 'QUIT\r\n' 09:41:09.100395 Received DATA (on stdin) 09:41:09.100675 > 34 bytes data, server => client 09:41:09.100906 '+OK curl POP3 server signing off\r\n' 09:41:09.105812 ====> Client disconnect 09:41:09.107715 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTH + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= +OK Login successful Testnum 868 === End of file server.cmd === Start of file valgrind868 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind868 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/36/server/pop3_server.pid" --logfile "log/36/pop3_server.log" --logdir "log/36" --portfile "log/36/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45329 (log/36/server/pop3_server.port) RUN: POP3 server is PID 115991 port 45329 * pid pop3 => 115991 115991 test 0862...[POP3 retrieve message header (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind862 ../src/curl -q --output log/36/curl862.out --include --trace-ascii log/36/trace862 --trace-config all --trace-time pop3://127.0.0.1:45329 -u user:secret -X 'TOP 862 0' > log/36/stdout862 2> log/36/stderr862 862: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 862 === Start of file commCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind870 ../src/curl -q --output log/35/curl870.out --include --trace-ascii log/35/trace870 --trace-config all --trace-time pop3://127.0.0.1:44529/870 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/35/stdout870 2> log/35/stderr870 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind865 ../src/curl -q --output log/31/curl865.out --include --trace-ascii log/31/trace865 --trace-config all --trace-time pop3://127.0.0.1:37483/865 -u user:secret > log/31/stdout865 2> log/31/stderr865 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind864 ../src/curl -q --output log/18/curl864.out --include --trace-ascii log/18/trace864 --trace-config all --trace-time pop3://127.0.0.1:45521/864 -u user:secret > log/18/stdout864 2> log/18/stderr864 ands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind862 ../src/curl -q --output log/36/curl862.out --include --trace-ascii log/36/trace862 --trace-config all --trace-time pop3://127.0.0.1:45329 -u user:secret -X 'TOP 862 0' > log/36/stdout862 2> log/36/stderr862 === End of file commands.log === Start of file pop3_server.log 09:41:08.281338 POP3 server listens on port IPv4/45329 09:41:08.282538 logged pid 115991 in log/36/server/pop3_server.pid 09:41:08.282880 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.532648 Running IPv4 version 09:41:08.533204 Listening on port 45329 09:41:08.533733 Wrote pid 116062 to log/36/server/pop3_sockfilt.pid 09:41:08.534063 Wrote port 45329 to log/36/server/pop3_server.port 09:41:08.534223 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA TOP USER Testnum 862 === End of file server.cmd === Start of file valgrind862 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind862 test 0870...[POP3 OAuth 2.0 (XOAUTH2) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind870 ../src/curl -q --output log/35/curl870.out --include --trace-ascii log/35/trace870 --trace-config all --trace-time pop3://127.0.0.1:44529/870 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/35/stdout870 2> log/35/stderr870 870: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 870 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind870 ../src/curl -q --output log/35/curl870.out --include --trace-ascii log/35/trace870 --trace-config all --trace-time pop3://127.0.0.1:44529/870 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/35/stdout870 2> log/35/stderr870 === End of file commands.log === Start of file pop3_server.log 09:41:08.896550 ====> Client connect 09:41:08.899091 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:08.900632 < "CAPA" 09:41:08.901360 > "-ERR Unrecognized command[CR][LF]" 09:41:08.904993 < "RETR verifiedserver" 09:41:08.905304 return proof we are we 09:41:08.906679 > "+OK Mail transfer starts[CR][LF]" 09:41:08.907432 > "WE ROOLZ: 115473[CR][LF]" 09:41:08.907707 > ".[CR][LF]" 09:41:08.951121 < "QUIT" 09:41:08.951982 > "+OK curl POP3 server signing off[CR][LF]" 09:41:08.956907 MAIN sockfilt said DISC 09:41:08.957500 ====> Client disconnected 09:41:08.958135 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.149630 ====> Client connect 09:41:09.151628 Received DATA (on stdin) 09:41:09.151792 > 178 bytes data, server => client 09:41:09.151964 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.152086 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.152163 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.152233 've \r\n' 09:41:09.153541 < 6 bytes data, client => server 09:41:09.153684 'CAPA\r\n' 09:41:09.154778 Received DATA (on stdin) 09:41:09.154902 > 27 bytes data, server => client 09:41:09.155328 '-ERR Unrecognized command\r\n' 09:41:09.157927 < 21 bytes data, client => server 09:41:09.158062 'RETR verifiedserver\r\n' 09:41:09.159318 Received DATA (on stdin) 09:41:09.159542 > 26 bytes data, server => client 09:41:09.159749 '+OK Mail transfer starts\r\n' 09:41:09.160819 Received DATA (on stdin) 09:41:09.160950 > 18 bytes data, server => client 09:41:09.161781 'WE ROOLZ: 115473\r\n' 09:41:09.161946 Received DATA (on stdin) 09:41:09.162040 > 3 bytes data, server => client 09:41:09.162122 '.\r\n' 09:41:09.201822 < 6 bytes data, client => server 09:41:09.201978 'QUIT\r\n' 09:41:09.206105 Received DATA (on stdin) 09:41:09.206245 > 34 bytes data, server => client 09:41:09.206336 '+OK curl POP3 server signing off\r\n' 09:41:09.206922 ====> Client disconnect 09:41:09.212310 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH + REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB +OK Login successful Testnum 870 === End of file server.cmd === Start of file valgrind870 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind870 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/31/server/pop3_server.pid" --logfile "log/31/pop3_server.log" --logdir "log/31" --portfile "log/31/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37483 (log/31/server/pop3_server.port) RUN: POP3 server is PID 115997 port 37483 * pid pop3 => 115997 115997 test 0865...[POP3 plain authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/cuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind863 ../src/curl -q --output log/54/curl863.out --include --trace-ascii log/54/trace863 --trace-config all --trace-time pop3://127.0.0.1:33351 -u user:secret -X RSET -I > log/54/stdout863 2> log/54/stderr863 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind866 ../src/curl -q --output log/19/curl866.out --include --trace-ascii log/19/trace866 --trace-config all --trace-time pop3://127.0.0.1:34723/866 -u user:secret > log/19/stdout866 2> log/19/stderr866 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind871 ../src/curl -q --output log/17/curl871.out --include --trace-ascii log/17/trace871 --trace-config all --trace-time pop3://127.0.0.1:35579/871 -u user:secret --sasl-ir > log/17/stdout871 2> log/17/stderr871 rl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind865 ../src/curl -q --output log/31/curl865.out --include --trace-ascii log/31/trace865 --trace-config all --trace-time pop3://127.0.0.1:37483/865 -u user:secret > log/31/stdout865 2> log/31/stderr865 865: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 865 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind865 ../src/curl -q --output log/31/curl865.out --include --trace-ascii log/31/trace865 --trace-config all --trace-time pop3://127.0.0.1:37483/865 -u user:secret > log/31/stdout865 2> log/31/stderr865 === End of file commands.log === Start of file pop3_server.log 09:41:08.372702 POP3 server listens on port IPv4/37483 09:41:08.376174 logged pid 115997 in log/31/server/pop3_server.pid 09:41:08.376521 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.623797 Running IPv4 version 09:41:08.624413 Listening on port 37483 09:41:08.625034 Wrote pid 116112 to log/31/server/pop3_sockfilt.pid 09:41:08.625397 Wrote port 37483 to log/31/server/pop3_server.port 09:41:08.625690 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH + REPLY AHVzZXIAc2VjcmV0 +OK Login successful Testnum 865 === End of file server.cmd === Start of file valgrind865 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind865 test 0871...[POP3 plain authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind871 ../src/curl -q --output log/17/curl871.out --include --trace-ascii log/17/trace871 --trace-config all --trace-time pop3://127.0.0.1:35579/871 -u user:secret --sasl-ir > log/17/stdout871 2> log/17/stderr871 871: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 871 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind871 ../src/curl -q --output log/17/curl871.out --include --trace-ascii log/17/trace871 --trace-config all --trace-time pop3://127.0.0.1:35579/871 -u user:secret --sasl-ir > log/17/stdout871 2> log/17/stderr871 === End of file commands.log === Start of file pop3_server.log 09:41:09.057929 ====> Client connect 09:41:09.059346 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.062429 < "CAPA" 09:41:09.063229 > "-ERR Unrecognized command[CR][LF]" 09:41:09.065078 < "RETR verifiedserver" 09:41:09.065364 return proof we are we 09:41:09.066698 > "+OK Mail transfer starts[CR][LF]" 09:41:09.067483 > "WE ROOLZ: 115522[CR][LF]" 09:41:09.067845 > ".[CR][LF]" 09:41:09.108878 < "QUIT" 09:41:09.109261 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.113887 MAIN sockfilt said DISC 09:41:09.114241 ====> Client disconnected 09:41:09.114726 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.311048 ====> Client connect 09:41:09.313556 Received DATA (on stdin) 09:41:09.313740 > 178 bytes data, server => client 09:41:09.313841 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.313928 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.314007 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.314096 've \r\n' 09:41:09.315019 < 6 bytes data, client => server 09:41:09.315160 'CAPA\r\n' 09:41:09.316604 Received DATA (on stdin) 09:41:09.316746 > 27 bytes data, server => client 09:41:09.317236 '-ERR Unrecognized command\r\n' 09:41:09.317959 < 21 bytes data, client => server 09:41:09.318100 'RETR verifiedserver\r\n' 09:41:09.319367 Received DATA (on stdin) 09:41:09.319596 > 26 bytes data, server => client 09:41:09.319801 '+OK Mail transfer starts\r\n' 09:41:09.320872 Received DATA (on stdin) 09:41:09.321008 > 18 bytes data, server => client 09:41:09.321853 'WE ROOLZ: 115522\r\n' 09:41:09.322015 Received DATA (on stdin) 09:41:09.322110 > 3 bytes data, server => client 09:41:09.322187 '.\r\n' 09:41:09.361699 < 6 bytes data, client => server 09:41:09.363311 'QUIT\r\n' 09:41:09.363549 Received DATA (on stdin) 09:41:09.363674 > 34 bytes data, server => client 09:41:09.363761 '+OK curl POP3 server signing off\r\n' 09:41:09.364292 ====> Client disconnect 09:41:09.368814 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH +OK Login successful Testnum 871 === End of file server.cmd === Start of file valgrind871 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind871 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/18/server/pop3_server.pid" --logfile "log/18/pop3_server.log" CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind872 ../src/curl -q --output log/30/curl872.out --include --trace-ascii log/30/trace872 --trace-config all --trace-time pop3://127.0.0.1:39241/872 -u user:secret --sasl-ir > log/30/stdout872 2> log/30/stderr872 --logdir "log/18" --portfile "log/18/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45521 (log/18/server/pop3_server.port) RUN: POP3 server is PID 115995 port 45521 * pid pop3 => 115995 115995 test 0864...[POP3 APOP authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind864 ../src/curl -q --output log/18/curl864.out --include --trace-ascii log/18/trace864 --trace-config all --trace-time pop3://127.0.0.1:45521/864 -u user:secret > log/18/stdout864 2> log/18/stderr864 864: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 864 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind864 ../src/curl -q --output log/18/curl864.out --include --trace-ascii log/18/trace864 --trace-config all --trace-time pop3://127.0.0.1:45521/864 -u user:secret > log/18/stdout864 2> log/18/stderr864 === End of file commands.log === Start of file pop3_server.log 09:41:08.326447 POP3 server listens on port IPv4/45521 09:41:08.327520 logged pid 115995 in log/18/server/pop3_server.pid 09:41:08.327881 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.577754 Running IPv4 version 09:41:08.578373 Listening on port 45521 09:41:08.578912 Wrote pid 116086 to log/18/server/pop3_sockfilt.pid 09:41:08.579284 Wrote port 45521 to log/18/server/pop3_server.port 09:41:08.579529 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA APOP REPLY welcome +OK curl POP3 server ready to serve <1972.987654321\@curl> Testnum 864 === End of file server.cmd === Start of file valgrind864 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind864 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/19/server/pop3_server.pid" --logfile "log/19/pop3_server.log" --logdir "log/19" --portfile "log/19/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34723 (log/19/server/pop3_server.port) RUN: POP3 server is PID 115999 port 34723 * pid pop3 => 115999 115999 test 0866...[POP3 login authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind866 ../src/curl -q --output log/19/curl866.out --include --trace-ascii log/19/trace866 --trace-config all --trace-time pop3://127.0.0.1:34723/866 -u user:secret > log/19/stdout866 2> log/19/stderr866 866: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 866 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind866 ../src/curl -q --output log/19/curl866.out --include --trace-ascii log/19/trace866 --trace-config all --trace-time pop3://127.0.0.1:34723/866 -u user:secret > log/19/stdout866 2> log/19/stderr866 === End of file commands.log === Start of file pop3_server.log 09:41:08.384367 POP3 server listens on port IPv4/34723 09:41:08.385450 logged pid 115999 in log/19/server/pop3_server.pid 09:41:08.385730 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.635539 Running IPv4 version 09:41:08.636200 Listening on port 34723 09:41:08.636793 Wrote pid 116118 to log/19/server/pop3_sockfilt.pid 09:41:08.637139 Wrote port 34723 to log/19/server/pop3_server.port 09:41:08.637316 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH LOGIN REPLY AUTH + VXNlcm5hbWU6 REPLY dXNlcg== + UGFzc3dvcmQ6 REPLY c2VjcmV0 +OK Login successful Testnum 866 === End of file server.cmd === Start of file valgrind866 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind866 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/54/server/pop3_server.pid" --logfile "log/54/pop3_server.log" --logdir "log/54" --portfile "log/54/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33351 (log/54/server/pop3_server.port) RUN: POP3 server is PID 115994 port 33351 * pid pop3 => 115994 115994 test 0863...[POP3 RSET (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind863 ../src/curl -q --output log/54/curl863.out --include --trace-ascii log/54/trace863 --trace-config all --trace-time pop3://127.0.0.1:33351 -u user:secret -X RSET -I > log/54/stdout863 2> log/54/stderr863 863: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 863 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind863 ../src/curl -q --output log/54/curl863.out --include --trace-ascii log/54/trace863 --trace-config all --trace-time pop3://127.0.0.1:33351 -u user:secret -X RSET -I > log/54/stdout863 2> log/54/stderr863 === End of file commands.log === Start of file pop3_server.log 09:41:08.315492 POP3 server listens on port IPv4/33351 09:41:08.316420 logged pid 115994 in log/54/server/pop3_server.pid 09:41:08.316687 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.566902 Running IPv4 version 09:41:08.567549 Listening on port 33351 09:41:08.567987 Wrote pid 116079 to log/54/server/pop3_sockfilt.pid 09:41:08.568327 Wrote port 33351 to log/54/server/pop3_server.port 09:41:08.568616 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 863 === End of file server.cmd === Start of file valgrind863 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind863 test 0872...[POP3 login authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind872 ../src/curl -q --output log/30/curl872.out --include --trace-ascii log/30/trace872 --trace-config all --trace-time pop3://127.0.0.1:39241/872 -u user:secret --sasl-ir > log/30/stdout872 2> log/30/stderr872 872: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 872 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind872 ../src/curl -q --output log/30/curl872.out --include --trace-ascii log/30/trace872 --trace-config all --trace-time pop3://127.0.0.1:39241/872 -u user:secret --sasl-ir > log/30/stdout872 2> log/30/stderr872 === End of file commands.log === Start of file pop3_server.log 09:41:09.164711 ====> Client connect 09:41:09.169863 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.173165 < "CAPA" 09:41:09.174703 > "-ERR Unrecognized command[CR][LF]" 09:41:09.176177 < "RETR verifiedserver" 09:41:09.176418 return proof we are we 09:41:09.177670 > "+OK Mail transfer starts[CR][LF]" 09:41:09.178472 > "WE ROOLZ: 115540[CR][LF]" 09:41:09.178862 > ".[CR][LF]" 09:41:09.222873 < "QUIT" 09:41:09.224051 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.228413 MAIN sockfilt said DISC 09:41:09.229480 ====> Client disconnected 09:41:09.230079 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.417651 ====> Client connect 09:41:09.423953 Received DATA (on stdin) 09:41:09.424105 > 178 bytes data, server => client 09:41:09.424199 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.424306 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.424418 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.424621 've \r\n' 09:41:09.425941 < 6 bytes data, client => server 09:41:09.426100 'CAPA\r\n' 09:41:09.427255 Received DATA (on stdin) 09:41:09.427421 > 27 bytes data, server => client 09:41:09.427700 '-ERR Unrecognized command\r\n' 09:41:09.428947 < 21 bytes data, client => server 09:41:09.429109 'RETR verifiedserver\r\n' 09:41:09.430399 Received DATA (on stdin) 09:41:09.430602 > 26 bytes data, server => client 09:41:09.430784 '+OK Mail transfer starts\r\n' 09:41:09.431833 Received DATA (on stdin) 09:41:09.431978 > 18 bytes data, server => client 09:41:09.432861 'WE ROOLZ: 115540\r\n' 09:41:09.433025 Received DATA (on stdin) 09:41:09.433119 > 3 bytes data, server => client 09:41:09.433185 '.\r\n' 09:41:09.475599 < 6 bytes data, client => server 09:41:09.475790 'QUIT\r\n' 09:41:09.476995 Received DATA (on stdin) 09:41:09.477139 > 34 bytes data, server => client 09:41:09.477312 '+OK curl POP3 server signing off\r\n' 09:41:09.481640 ====> Client disconnect 09:41:09.482548 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH LOGIN REPLY AUTH + UGFzc3dvcmQ6 REPLY c2VjcmV0 +OK Login successful Testnum 872 === End of file server.cmd === Start of file valgrind872 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind872 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/44/server/ssh_server.pid" --logdir "log/44" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37957 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37957 test 0583 SKIPPED: failed starting SSH server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/49/server/ssh_server.pid" --logdir "log/49" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 42951 startnew: chiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind875 ../src/curl -q --output log/39/curl875.out --include --trace-ascii log/39/trace875 --trace-config all --trace-time pop3://127.0.0.1:45559/%0d%0a/875 > log/39/stdout875 2> log/39/stderr875 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind874 ../src/curl -q --output log/13/curl874.out --include --trace-ascii log/13/trace874 --trace-config all --trace-time pop3://127.0.0.1:46435/874 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/13/stdout874 2> log/13/stderr874 ld process has died, server might start up RUN: failed to start the SSH server on 42951 test 0582 SKIPPED: failed starting SSH server test 0875...[POP3 with URL-encoded CR LF in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind875 ../src/curl -q --output log/39/curl875.out --include --trace-ascii log/39/trace875 --trace-config all --trace-time pop3://127.0.0.1:45559/%0d%0a/875 > log/39/stdout875 2> log/39/stderr875 curl returned 1, when expecting 3 875: exit FAILED == Contents of files in the log/39/ dir after test 875 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind875 ../src/curl -q --output log/39/curl875.out --include --trace-ascii log/39/trace875 --trace-config all --trace-time pop3://127.0.0.1:45559/%0d%0a/875 > log/39/stdout875 2> log/39/stderr875 === End of file commands.log === Start of file pop3_server.log 09:41:09.293637 ====> Client connect 09:41:09.296362 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.299258 < "CAPA" 09:41:09.300385 > "-ERR Unrecognized command[CR][LF]" 09:41:09.302034 < "RETR verifiedserver" 09:41:09.302369 return proof we are we 09:41:09.303704 > "+OK Mail transfer starts[CR][LF]" 09:41:09.304158 > "WE ROOLZ: 115662[CR][LF]" 09:41:09.304412 > ".[CR][LF]" 09:41:09.346116 < "QUIT" 09:41:09.347336 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.351281 MAIN sockfilt said DISC 09:41:09.352321 ====> Client disconnected 09:41:09.353004 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.546603 ====> Client connect 09:41:09.548886 Received DATA (on stdin) 09:41:09.549048 > 178 bytes data, server => client 09:41:09.549231 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.549363 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.550437 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.550647 've \r\n' 09:41:09.551934 < 6 bytes data, client => server 09:41:09.552097 'CAPA\r\n' 09:41:09.553548 Received DATA (on stdin) 09:41:09.553701 > 27 bytes data, server => client 09:41:09.553779 '-ERR Unrecognized command\r\n' 09:41:09.554863 < 21 bytes data, client => server 09:41:09.555025 'RETR verifiedserver\r\n' 09:41:09.556402 Received DATA (on stdin) 09:41:09.556630 > 26 bytes data, server => client 09:41:09.556818 '+OK Mail transfer starts\r\n' 09:41:09.558428 Received DATA (on stdin) 09:41:09.558644 > 18 bytes data, server => client 09:41:09.558744 'WE ROOLZ: 115662\r\n' 09:41:09.558884 Received DATA (on stdin) 09:41:09.559004 > 3 bytes data, server => client 09:41:09.559088 '.\r\n' 09:41:09.598793 < 6 bytes data, client => server 09:41:09.599008 'QUIT\r\n' 09:41:09.600221 Received DATA (on stdin) 09:41:09.600371 > 34 bytes data, server => client 09:41:09.600627 '+OK curl POP3 server signing off\r\n' 09:41:09.604616 ====> Client disconnect 09:41:09.605352 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 875 === End of file server.cmd === Start of file valgrind875 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind875 test 0874...[POP3 OAuth 2.0 (XOAUTH2) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind874 ../src/curl -q --output log/13/curl874.out --include --trace-ascii log/13/trace874 --trace-config all --trace-time pop3://127.0.0.1:46435/874 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/13/stdout874 2> log/13/stderr874 874: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 874 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind874 ../src/curl -q --output log/13/curl874.out --include --trace-ascii log/13/trace874 --trace-config all --trace-time pop3://127.0.0.1:46435/874 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/13/stdout874 2> log/13/stderr874 === End of file commands.log === Start of file pop3_server.log 09:41:09.227579 ====> Client connect 09:41:09.231411 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.232504 < "CAPA" 09:41:09.233029 > "-ERR Unrecognized command[CR][LF]" 09:41:09.235724 < "RETR verifiedserver" 09:41:09.236199 return proof we are we 09:41:09.237658 > "+OK Mail transfer starts[CR][LF]" 09:41:09.238935 > "WE ROOLZ: 115723[CR][LF]" 09:41:09.239284 > ".[CR][LF]" 09:41:09.280254 < "QUIT" 09:41:09.284911 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.285607 MAIN sockfilt said DISC 09:41:09.286001 ====> Client disconnected 09:41:09.286520 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.480440 ====> Client connect 09:41:08.483141 Received DATA (on stdin) 09:41:08.483325 > 178 bytes data, server => client 09:41:08.483590 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:08.483731 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:08.483814 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:08.483885 've \r\n' 09:41:08.484620 < 6 bytes data, client => server 09:41:08.484765 'CAPA\r\n' 09:41:08.487114 Received DATA (on stdin) 09:41:08.487284 > 27 bytes data, server => client 09:41:08.487389 '-ERR Unrecognized command\r\n' 09:41:08.488225 < 21 bytes data, client => server 09:41:08.488445 'RETR verifiedserver\r\n' 09:41:08.490331 Received DATA (on stdin) 09:41:08.490626 > 26 bytes data, server => client 09:41:08.490844 '+OK Mail transfer starts\r\n' 09:41:08.491864 Received DATA (on stdin) 09:41:08.492076 > 18 bytes data, server => client 09:41:08.493355 'WE ROOLZ: 115723\r\n' 09:41:08.493634 Received DATA (on stdin) 09:41:08.493756 > 3 bytes data, server => client 09:41:08.493846 '.\r\n' 09:41:08.533002 < 6 bytes data, client => server 09:41:08.533181 'QUIT\r\n' 09:41:08.534387 ReceiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind873 ../src/curl -q --output log/43/curl873.out --include --trace-ascii log/43/trace873 --trace-config all --trace-time pop3://127.0.0.1:33889/873 -u testuser:testpass --sasl-ir > log/43/stdout873 2> log/43/stderr873 ved DATA (on stdin) 09:41:08.534641 > 34 bytes data, server => client 09:41:08.534849 '+OK curl POP3 server signing off\r\n' 09:41:08.539004 ====> Client disconnect 09:41:08.540599 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH +OK Login successful Testnum 874 === End of file server.cmd === Start of file valgrind874 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind874 test 0873...[POP3 NTLM authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind873 ../src/curl -q --output log/43/curl873.out --include --trace-ascii log/43/trace873 --trace-config all --trace-time pop3://127.0.0.1:33889/873 -u testuser:testpass --sasl-ir > log/43/stdout873 2> log/43/stderr873 873: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 873 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind873 ../src/curl -q --output log/43/curl873.out --include --trace-ascii log/43/trace873 --trace-config all --trace-time pop3://127.0.0.1:33889/873 -u testuser:testpass --sasl-ir > log/43/stdout873 2> log/43/stderr873 === End of file commands.log === Start of file pop3_server.log 09:41:09.262895 ====> Client connect 09:41:09.266232 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.268470 < "CAPA" 09:41:09.269030 > "-ERR Unrecognized command[CR][LF]" 09:41:09.271872 < "RETR verifiedserver" 09:41:09.272165 return proof we are we 09:41:09.272470 > "+OK Mail transfer starts[CR][LF]" 09:41:09.272882 > "WE ROOLZ: 96591[CR][LF]" 09:41:09.273205 > ".[CR][LF]" 09:41:09.319580 < "QUIT" 09:41:09.321463 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.321832 MAIN sockfilt said DISC 09:41:09.322137 ====> Client disconnected 09:41:09.322601 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.515650 ====> Client connect 09:41:09.519935 Received DATA (on stdin) 09:41:09.520108 > 178 bytes data, server => client 09:41:09.520208 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.520307 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.520406 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.520622 've \r\n' 09:41:09.521410 < 6 bytes data, client => server 09:41:09.521635 'CAPA\r\n' 09:41:09.522754 Received DATA (on stdin) 09:41:09.522901 > 27 bytes data, server => client 09:41:09.522987 '-ERR Unrecognized command\r\n' 09:41:09.525006 < 21 bytes data, client => server 09:41:09.525169 'RETR verifiedserver\r\n' 09:41:09.526217 Received DATA (on stdin) 09:41:09.526521 > 26 bytes data, server => client 09:41:09.526669 '+OK Mail transfer starts\r\n' 09:41:09.526973 Received DATA (on stdin) 09:41:09.527107 > 17 bytes data, server => client 09:41:09.527190 'WE ROOLZ: 96591\r\n' 09:41:09.527301 Received DATA (on stdin) 09:41:09.527413 > 3 bytes data, server => client 09:41:09.527613 '.\r\n' 09:41:09.571676 < 6 bytes data, client => server 09:41:09.571854 'QUIT\r\n' 09:41:09.573883 Received DATA (on stdin) 09:41:09.574039 > 34 bytes data, server => client 09:41:09.574221 '+OK curl POP3 server signing off\r\n' 09:41:09.574903 ====> Client disconnect 09:41:09.578542 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTH + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= +OK Login successful Testnum 873 === End of file server.cmd === Start of file valgrind873 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind873 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/32/server/ssh_server.pid" --logdir "log/32" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 35081 startnew: child process has died, server might start up RUN: failed to start the SSH server on 35081 test 0600 SKIPPED: failed starting SSH server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/28/server/ssh_server.pid" --logdir "log/28" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 41733 startnew: child process has died, server might start up RUN: failed to start the SSH server on 41733 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/24/server/ssh_server.pid" --logdir "log/24" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 35567 startnew: child process has died, server might start up RUN: faileCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind877 ../src/curl -q --output log/10/curl877.out --include --trace-ascii log/10/trace877 --trace-config all --trace-time pop3://127.0.0.1:36573/877 -u testuser:testpass > log/10/stdout877 2> log/10/stderr877 d to start the SSH server on 35567 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/20/server/ssh_server.pid" --logdir "log/20" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 33149 startnew: child process has died, server might start up RUN: failed to start the SSH server on 33149 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/23/server/ssh_server.pid" --logdir "log/23" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 35905 startnew: child process has died, server might start up RUN: failed to start the SSH server on 35905 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/12/server/ssh_server.pid" --logdir "log/12" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 42245 startnew: child process has died, server might start up RUN: failed to start the SSH server on 42245 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/15/server/ssh_server.pid" --logdir "log/15" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37363 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37363 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/22/server/ssh_server.pid" --logdir "log/22" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 32847 startnew: child process has died, server might start up RUN: failed to start the SSH server on 32847 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/8/server/ssh_server.pid" --logdir "log/8" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 33365 startnew: child process has died, server might start up RUN: failed to start the SSH server on 33365 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/11/server/ssh_server.pid" --logdir "log/11" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 42377 startnew: child process has died, server might start up RUN: failed to start the SSH server on 42377 test 0877...[POP3 NTLM graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind877 ../src/curl -q --output log/10/curl877.out --include --trace-ascii log/10/trace877 --trace-config all --trace-time pop3://127.0.0.1:36573/877 -u testuser:testpass > log/10/stdout877 2> log/10/stderr877 877: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 877 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind877 ../src/curl -q --output log/10/curl877.out --include --trace-ascii log/10/trace877 --trace-config all --trace-time pop3://127.0.0.1:36573/877 -u testuser:testpass > log/10/stdout877 2> log/10/stderr877 === End of file commands.log === Start of file pop3_server.log 09:41:09.404464 ====> Client connect 09:41:09.407605 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.409215 < "CAPA" 09:41:09.410664 > "-ERR Unrecognized command[CR][LF]" 09:41:09.411461 < "RETR verifiedserver" 09:41:09.412053 return proof we are we 09:41:09.412633 > "+OK Mail transfer starts[CR][LF]" 09:41:09.413269 > "WE ROOLZ: 115725[CR][LF]" 09:41:09.413546 > ".[CR][LF]" 09:41:09.458609 < "QUIT" 09:41:09.459122 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.463294 MAIN sockfilt said DISC 09:41:09.464288 ====> Client disconnected 09:41:09.464937 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.657660 ====> Client connect 09:41:08.659577 Received DATA (on stdin) 09:41:08.659735 > 178 bytes data, server => client 09:41:08.659928 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:08.660051 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:08.660137 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:08.660212 've \r\n' 09:41:08.660948 < 6 bytes data, client => server 09:41:08.661090 'CAPA\r\n' 09:41:08.663515 Received DATA (on stdin) 09:41:08.663690 > 27 bytes data, server => client 09:41:08.663888 '-ERR Unrecognized command\r\n' 09:41:08.664630 < 21 bytes data, client => server 09:41:08.664795 'RETR verifiedserver\r\n' 09:41:08.667654 Received DATA (on stdin) 09:41:08.667828 > 26 bytes data, server => client 09:41:08.667920 '+OK Mail transfer starts\r\n' 09:41:08.668787 Received DATA (on stdin) 09:41:08.669115 > 18 bytes data, server => client 09:41:08.669203 'WE ROOLZ: 115725\r\n' 09:41:08.669640 Received DATA (on stdin) 09:41:08.669848 > 3 bytes data, server => client 09:41:08.669927 '.\r\n' 09:41:08.713157 < 6 bytes data, client => server 09:41:08.713306 'QUIT\r\n' 09:41:08.713410 Received DATA (on stdin) 09:41:08.713588 > 34 bytes data, server => client 09:41:08.713697 '+OK curl POP3 server signing off\r\n' 09:41:08.716648 ====> Client disconnect 09:41:08.717383 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTH + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * -ERR AUTH exchange cancelled by client Testnum 877 === End of file server.cmd === Start of file valgrind877 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind877 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/7/server/ssh_server.pid" --logdir "log/7" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 36053 startnew: child process has died, server might start up RUN: failed to start the SSH server on 36053 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/41/server/ssh_server.pid" --logdir "log/41" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 36731 startnew: child process has died, server might start up RUN: failed to start the SSH server on 36731 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/3/server/ssh_server.pid" --logdir "logCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind876 ../src/curl -q --output log/6/curl876.out --include --trace-ascii log/6/trace876 --trace-config all --trace-time pop3://127.0.0.1:41275/876 -u user:secret > log/6/stdout876 2> log/6/stderr876 RUN: Process with pid 102446 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind879 ../src/curl -q --output log/9/curl879.out --include --trace-ascii log/9/trace879 --trace-config all --trace-time pop3://127.0.0.1:39233/879 -u user:secret > log/9/stdout879 2> log/9/stderr879 /3" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 46783 startnew: child process has died, server might start up RUN: failed to start the SSH server on 46783 test 0876...[POP3 CRAM-MD5 graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind876 ../src/curl -q --output log/6/curl876.out --include --trace-ascii log/6/trace876 --trace-config all --trace-time pop3://127.0.0.1:41275/876 -u user:secret > log/6/stdout876 2> log/6/stderr876 876: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 876 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind876 ../src/curl -q --output log/6/curl876.out --include --trace-ascii log/6/trace876 --trace-config all --trace-time pop3://127.0.0.1:41275/876 -u user:secret > log/6/stdout876 2> log/6/stderr876 === End of file commands.log === Start of file pop3_server.log 09:41:09.430514 ====> Client connect 09:41:09.433042 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.436443 < "CAPA" 09:41:09.439024 > "-ERR Unrecognized command[CR][LF]" 09:41:09.441085 < "RETR verifiedserver" 09:41:09.441444 return proof we are we 09:41:09.442577 > "+OK Mail transfer starts[CR][LF]" 09:41:09.443220 > "WE ROOLZ: 115770[CR][LF]" 09:41:09.443669 > ".[CR][LF]" 09:41:09.486671 < "QUIT" 09:41:09.487710 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.493295 MAIN sockfilt said DISC 09:41:09.494578 ====> Client disconnected 09:41:09.495339 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.683617 ====> Client connect 09:41:08.687158 Received DATA (on stdin) 09:41:08.687314 > 178 bytes data, server => client 09:41:08.687421 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:08.687669 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:08.687759 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:08.687825 've \r\n' 09:41:08.688896 < 6 bytes data, client => server 09:41:08.689084 'CAPA\r\n' 09:41:08.690629 Received DATA (on stdin) 09:41:08.690789 > 27 bytes data, server => client 09:41:08.693101 '-ERR Unrecognized command\r\n' 09:41:08.693912 < 21 bytes data, client => server 09:41:08.694061 'RETR verifiedserver\r\n' 09:41:08.695663 Received DATA (on stdin) 09:41:08.696073 > 26 bytes data, server => client 09:41:08.697968 '+OK Mail transfer starts\r\n' 09:41:08.698706 Received DATA (on stdin) 09:41:08.699060 > 18 bytes data, server => client 09:41:08.699186 'WE ROOLZ: 115770\r\n' 09:41:08.699685 Received DATA (on stdin) 09:41:08.699881 > 3 bytes data, server => client 09:41:08.699981 '.\r\n' 09:41:08.739517 < 6 bytes data, client => server 09:41:08.739697 'QUIT\r\n' 09:41:08.740889 Received DATA (on stdin) 09:41:08.741077 > 34 bytes data, server => client 09:41:08.741922 '+OK curl POP3 server signing off\r\n' 09:41:08.746599 ====> Client disconnect 09:41:08.747644 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH + Rubbish REPLY * -ERR AUTH exchange cancelled by client Testnum 876 === End of file server.cmd === Start of file valgrind876 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind876 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/2/server/ssh_server.pid" --logdir "log/2" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 40303 startnew: child process has died, server might start up RUN: failed to start the SSH server on 40303 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/1/server/ssh_server.pid" --logdir "log/1" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37781 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37781 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/37/server/ssh_server.pid" --logdir "log/37" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 43843 startnew: child process has died, server might start up RUN: failed to start the SSH server on 43843 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/38/server/ssh_server.pid" --logdir "log/38" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 38269 startnew: child process has died, server might start up RUN: failed to start the SSH server on 38269 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/27/server/ssh_server.pid" --logdir "log/27" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 33525 startnew: child process has died, server might start up RUN: failed to start the SSH server on 33525 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/29/server/ssh_server.pid" --logdir "log/29" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 39077 startnew: child process has died, server might start up RUN: failed to start the SSH server on 39077 test 0879...[POP3 CRAM-MD5 authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind879 ../src/curl -q --output log/9/curl879.out --include --trace-ascii log/9/trace879 --trace-config all --trace-time pop3://127.0.0.1:39233/879 -u user:secret > log/9/stdout879 2> log/9/stderr879 879: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 879 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind879 ../src/curl -q --output log/9/curl879.out --include --trace-ascii log/9/trace879 --trace-config all --trace-time pop3://127.0.0.1:39233/879 -u user:secret > log/9/stdout879 2> log/9/stderr879 === End of file commands.log === Start ofRUN: Process with pid 102446 gracefully died CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind880 ../src/curl -q --output log/58/curl880.out --include --trace-ascii log/58/trace880 --trace-config all --trace-time pop3://127.0.0.1:39361/880 -u user:secret > log/58/stdout880 2> log/58/stderr880 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind883 ../src/curl -q --output log/63/curl883.out --include --trace-ascii log/63/trace883 --trace-config all --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:42877/883' > log/63/stdout883 2> log/63/stderr883 file pop3_server.log 09:41:09.662506 ====> Client connect 09:41:09.664947 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.666581 < "CAPA" 09:41:09.667391 > "-ERR Unrecognized command[CR][LF]" 09:41:09.671214 < "RETR verifiedserver" 09:41:09.671531 return proof we are we 09:41:09.671928 > "+OK Mail transfer starts[CR][LF]" 09:41:09.672225 > "WE ROOLZ: 115864[CR][LF]" 09:41:09.672472 > ".[CR][LF]" 09:41:09.715939 < "QUIT" 09:41:09.717342 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.721654 MAIN sockfilt said DISC 09:41:09.722058 ====> Client disconnected 09:41:09.722516 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:08.915658 ====> Client connect 09:41:08.917529 Received DATA (on stdin) 09:41:08.917682 > 178 bytes data, server => client 09:41:08.917864 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:08.917985 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:08.918061 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:08.918139 've \r\n' 09:41:08.919161 < 6 bytes data, client => server 09:41:08.919298 'CAPA\r\n' 09:41:08.920760 Received DATA (on stdin) 09:41:08.920902 > 27 bytes data, server => client 09:41:08.921397 '-ERR Unrecognized command\r\n' 09:41:08.924032 < 21 bytes data, client => server 09:41:08.924189 'RETR verifiedserver\r\n' 09:41:08.926545 Received DATA (on stdin) 09:41:08.926693 > 26 bytes data, server => client 09:41:08.926783 '+OK Mail transfer starts\r\n' 09:41:08.927072 Received DATA (on stdin) 09:41:08.927206 > 18 bytes data, server => client 09:41:08.927278 'WE ROOLZ: 115864\r\n' 09:41:08.927389 Received DATA (on stdin) 09:41:08.927585 > 3 bytes data, server => client 09:41:08.927692 '.\r\n' 09:41:08.968678 < 6 bytes data, client => server 09:41:08.968850 'QUIT\r\n' 09:41:08.970123 Received DATA (on stdin) 09:41:08.970282 > 34 bytes data, server => client 09:41:08.970544 '+OK curl POP3 server signing off\r\n' 09:41:08.971839 ====> Client disconnect 09:41:08.976548 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 PLAIN REPLY "AUTH CRAM-MD5" + Rubbish REPLY * -ERR AUTH exchange cancelled by client REPLY "AUTH PLAIN" + REPLY AHVzZXIAc2VjcmV0 +OK Login successful Testnum 879 === End of file server.cmd === Start of file valgrind879 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind879 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/16/server/ssh_server.pid" --logdir "log/16" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 36057 startnew: child process has died, server might start up RUN: failed to start the SSH server on 36057 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/25/server/ssh_server.pid" --logdir "log/25" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 36617 startnew: child process has died, server might start up RUN: failed to start the SSH server on 36617 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/46/server/ssh_server.pid" --logdir "log/46" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 33645 startnew: child process has died, server might start up RUN: failed to start the SSH server on 33645 test 0880...[POP3 NTLM authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind880 ../src/curl -q --output log/58/curl880.out --include --trace-ascii log/58/trace880 --trace-config all --trace-time pop3://127.0.0.1:39361/880 -u user:secret > log/58/stdout880 2> log/58/stderr880 880: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 880 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind880 ../src/curl -q --output log/58/curl880.out --include --trace-ascii log/58/trace880 --trace-config all --trace-time pop3://127.0.0.1:39361/880 -u user:secret > log/58/stdout880 2> log/58/stderr880 === End of file commands.log === Start of file pop3_server.log 09:41:09.615423 ====> Client connect 09:41:09.618214 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.620001 < "CAPA" 09:41:09.621256 > "-ERR Unrecognized command[CR][LF]" 09:41:09.623034 < "RETR verifiedserver" 09:41:09.623371 return proof we are we 09:41:09.625067 > "+OK Mail transfer starts[CR][LF]" 09:41:09.625389 > "WE ROOLZ: 115963[CR][LF]" 09:41:09.625669 > ".[CR][LF]" 09:41:09.667540 < "QUIT" 09:41:09.668326 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.672501 MAIN sockfilt said DISC 09:41:09.672908 ====> Client disconnected 09:41:09.673396 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.868265 ====> Client connect 09:41:09.870427 Received DATA (on stdin) 09:41:09.870645 > 178 bytes data, server => client 09:41:09.870826 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.870940 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.871033 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.871119 've \r\n' 09:41:09.872528 < 6 bytes data, client => server 09:41:09.872684 'CAPA\r\n' 09:41:09.874121 Received DATA (on stdin) 09:41:09.874271 > 27 bytes data, server => client 09:41:09.874560 '-ERR Unrecognized command\r\n' 09:41:09.875992 < 21 bytes data, client => server 09:41:09.876146 'RETR verifiedserver\r\n' 09:41:09.877439 Received DATA (on stdin) 09:41:09.877702 > 26 bytes data, server => client 09:41:09.877919 '+OK Mail transfer starts\r\n' 09:41:09.879648 Received DATA (on stdin) 09:41:09.879793 > 18 bytes data, server => client 09:41:09.879881 'WE ROOLZ: 115963\r\n' 09:41:09.880008 Received DATA (on stdin) 09:41:09.880109 > 3 bytes data, server => client 09:41:09.880202 '.\r\n' 09:41:09.920390 < 6 bytes data, client => server 09:41:09.920623 'QUIT\r\n' 09:41:09.921691 Received DATA (on stdin) 09:41:09.921832 > 34 bytes data, seCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind884 ../src/curl -q --output log/4/curl884.out --include --trace-ascii log/4/trace884 --trace-config all --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:45461/884' > log/4/stdout884 2> log/4/stderr884 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind886 ../src/curl -q --output log/35/curl886.out --include --trace-ascii log/35/trace886 --trace-config all --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:44529/886' --sasl-ir > log/35/stdout886 2> log/35/stderr886 rver => client 09:41:09.922307 '+OK curl POP3 server signing off\r\n' 09:41:09.922881 ====> Client disconnect 09:41:09.927410 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM PLAIN REPLY "AUTH NTLM" + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * -ERR AUTH exchange cancelled by client REPLY "AUTH PLAIN" + REPLY AHVzZXIAc2VjcmV0 +OK Login successful Testnum 880 === End of file server.cmd === Start of file valgrind880 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind880 test 0883...[POP3 external authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind883 ../src/curl -q --output log/63/curl883.out --include --trace-ascii log/63/trace883 --trace-config all --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:42877/883' > log/63/stdout883 2> log/63/stderr883 883: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 883 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind883 ../src/curl -q --output log/63/curl883.out --include --trace-ascii log/63/trace883 --trace-config all --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:42877/883' > log/63/stdout883 2> log/63/stderr883 === End of file commands.log === Start of file pop3_server.log 09:41:09.713635 ====> Client connect 09:41:09.715469 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.718276 < "CAPA" 09:41:09.719557 > "-ERR Unrecognized command[CR][LF]" 09:41:09.720691 < "RETR verifiedserver" 09:41:09.721098 return proof we are we 09:41:09.721387 > "+OK Mail transfer starts[CR][LF]" 09:41:09.721654 > "WE ROOLZ: 115976[CR][LF]" 09:41:09.724043 > ".[CR][LF]" 09:41:09.764724 < "QUIT" 09:41:09.766027 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.770275 MAIN sockfilt said DISC 09:41:09.771200 ====> Client disconnected 09:41:09.771721 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.966633 ====> Client connect 09:41:09.969175 Received DATA (on stdin) 09:41:09.969377 > 178 bytes data, server => client 09:41:09.969533 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.969631 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.969727 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.969814 've \r\n' 09:41:09.970762 < 6 bytes data, client => server 09:41:09.970942 'CAPA\r\n' 09:41:09.972441 Received DATA (on stdin) 09:41:09.972670 > 27 bytes data, server => client 09:41:09.972859 '-ERR Unrecognized command\r\n' 09:41:09.973644 < 21 bytes data, client => server 09:41:09.973768 'RETR verifiedserver\r\n' 09:41:09.975723 Received DATA (on stdin) 09:41:09.975874 > 26 bytes data, server => client 09:41:09.975964 '+OK Mail transfer starts\r\n' 09:41:09.976241 Received DATA (on stdin) 09:41:09.976375 > 18 bytes data, server => client 09:41:09.976527 'WE ROOLZ: 115976\r\n' 09:41:09.977170 Received DATA (on stdin) 09:41:09.977309 > 3 bytes data, server => client 09:41:09.977513 '.\r\n' 09:41:10.017608 < 6 bytes data, client => server 09:41:10.017783 'QUIT\r\n' 09:41:10.018939 Received DATA (on stdin) 09:41:10.019095 > 34 bytes data, server => client 09:41:10.019270 '+OK curl POP3 server signing off\r\n' 09:41:10.023660 ====> Client disconnect 09:41:10.024327 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH + REPLY dXNlcg== +OK Login successful Testnum 883 === End of file server.cmd === Start of file valgrind883 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind883 test 0884...[POP3 external authentication without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind884 ../src/curl -q --output log/4/curl884.out --include --trace-ascii log/4/trace884 --trace-config all --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:45461/884' > log/4/stdout884 2> log/4/stderr884 884: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 884 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind884 ../src/curl -q --output log/4/curl884.out --include --trace-ascii log/4/trace884 --trace-config all --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:45461/884' > log/4/stdout884 2> log/4/stderr884 === End of file commands.log === Start of file pop3_server.log 09:41:09.715141 ====> Client connect 09:41:09.718728 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind885 ../src/curl -q --output log/36/curl885.out --include --trace-ascii log/36/trace885 --trace-config all --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:45329/885' --sasl-ir > log/36/stdout885 2> log/36/stderr885 LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.719820 < "CAPA" 09:41:09.720202 > "-ERR Unrecognized command[CR][LF]" 09:41:09.722259 < "RETR verifiedserver" 09:41:09.722512 return proof we are we 09:41:09.723539 > "+OK Mail transfer starts[CR][LF]" 09:41:09.723969 > "WE ROOLZ: 115326[CR][LF]" 09:41:09.724252 > ".[CR][LF]" 09:41:09.766679 < "QUIT" 09:41:09.767403 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.769210 MAIN sockfilt said DISC 09:41:09.772228 ====> Client disconnected 09:41:09.772738 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:09.968057 ====> Client connect 09:41:09.970032 Received DATA (on stdin) 09:41:09.970195 > 178 bytes data, server => client 09:41:09.970722 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.970922 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.971020 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:09.971084 've \r\n' 09:41:09.971892 < 6 bytes data, client => server 09:41:09.972029 'CAPA\r\n' 09:41:09.974224 Received DATA (on stdin) 09:41:09.974361 > 27 bytes data, server => client 09:41:09.974510 '-ERR Unrecognized command\r\n' 09:41:09.975108 < 21 bytes data, client => server 09:41:09.975246 'RETR verifiedserver\r\n' 09:41:09.976560 Received DATA (on stdin) 09:41:09.976700 > 26 bytes data, server => client 09:41:09.976861 '+OK Mail transfer starts\r\n' 09:41:09.978400 Received DATA (on stdin) 09:41:09.978601 > 18 bytes data, server => client 09:41:09.978675 'WE ROOLZ: 115326\r\n' 09:41:09.978789 Received DATA (on stdin) 09:41:09.978876 > 3 bytes data, server => client 09:41:09.978948 '.\r\n' 09:41:10.019560 < 6 bytes data, client => server 09:41:10.019716 'QUIT\r\n' 09:41:10.020803 Received DATA (on stdin) 09:41:10.020931 > 34 bytes data, server => client 09:41:10.021367 '+OK curl POP3 server signing off\r\n' 09:41:10.022630 ====> Client disconnect 09:41:10.023266 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH + REPLY = +OK Login successful Testnum 884 === End of file server.cmd === Start of file valgrind884 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind884 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/48/server/ssh_server.pid" --logdir "log/48" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 39329 startnew: child process has died, server might start up RUN: failed to start the SSH server on 39329 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/50/server/ssh_server.pid" --logdir "log/50" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 42887 startnew: child process has died, server might start up RUN: failed to start the SSH server on 42887 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/52/server/ssh_server.pid" --logdir "log/52" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 39595 startnew: child process has died, server might start up RUN: failed to start the SSH server on 39595 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/55/server/ssh_server.pid" --logdir "log/55" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 34675 startnew: child process has died, server might start up RUN: failed to start the SSH server on 34675 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/21/server/ssh_server.pid" --logdir "log/21" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37417 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37417 test 0886...[POP3 external authentication with initial response without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind886 ../src/curl -q --output log/35/curl886.out --include --trace-ascii log/35/trace886 --trace-config all --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:44529/886' --sasl-ir > log/35/stdout886 2> log/35/stderr886 886: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 886 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind886 ../src/curl -q --output log/35/curl886.out --include --trace-ascii log/35/trace886 --trace-config all --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:44529/886' --sasl-ir > log/35/stdout886 2> log/35/stderr886 === End of file commands.log === Start of file pop3_server.log 09:41:09.801533 ====> Client connect 09:41:09.802695 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.805526 < "CAPA" 09:41:09.806297 > "-ERR Unrecognized command[CR][LF]" 09:41:09.808156 < "RETR verifiedserver" 09:41:09.808450 return proof we are we 09:41:09.809690 > "+OK Mail transfer starts[CR][LF]" 09:41:09.810537 > "WE ROOLZ: 115473[CR][LF]" 09:41:09.810889 > ".[CR][LF]" 09:41:09.851649 < "QUIT" 09:41:09.852919 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.853717 MAIN sockfilt said DISC 09:41:09.854054 ====> Client disconnected 09:41:09.854522 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.054758 ====> Client connect 09:41:10.056826 Received DATA (on stdin) 09:41:10.056987 > 178 bytes data, server => client 09:41:10.057114 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.057212 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.057290 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.057361 've \r\n' 09:41:10.058260 < 6 bytes data, client => server 09:41:10.058390 'CAPA\r\n' 09:41:10.059662 Received DATA (on stdin) 09:41:10.059803 > 27 bytes data, server => client 09:41:10.060285 '-ERR Unrecognized command\r\n' 09:41:10.061032 < 21 bytes data, client => server 09:41:10.061173 'RETR verifiedserver\r\n' 09:41:10.062544 Received DATA (on stdin) 09:41:10.062709 > 26 bytes data, server => client 09:41:10.062899 '+OK Mail transfer starts\r\n' 09:41:10.063846 Received DATA (on stdin) 09:41:10.063987 > 18 bytes data, server => client 09:41:10.064918 'WE ROOLZ: 115473\r\n' 09:41:10.065152 Received DATA (on stdin) 09:41:10.065250 > 3 bytes data, server => client 09:41:10.065326 '.\r\n' 09:41:10.104498 < 6 bytes data, client => server 09:41:10.104684 'QUIT\r\n' 09:41:10.105851 Received DATA (on stdin) 09:41:10.105993 > 34 bytes data, server => client 09:41:10.106152 '+OK curl POP3 server signing off\r\n' 09:41:10.107200 ====> Client disconnect 09:41:10.108579 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH +OK Login successful Testnum 886 === End of file server.cmd === Start of file valgrind886 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind886 test 0885...[POP3 external authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind885 ../src/curl -q --output log/36/curl885.out --include --trace-ascii log/36/trace885 --trace-config all --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:45329/885' --sasl-ir > log/36/stdout885 2> log/36/stderr885 885: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 885 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind885 ../src/curl -q --output log/36/curl885.out --include --trace-ascii log/36/trace885 --trace-config all --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:45329/885' --sasl-ir > log/36/stdout885 2> log/36/stderr885 === End of file commands.log === Start of file pop3_server.log 09:41:09.775544 ====> Client connect 09:41:09.777185 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:09.779908 < "CAPA" 09:41:09.781036 > "-ERR Unrecognized command[CR][LF]" 09:41:09.782609 < "RETR verifiedserver" 09:41:09.783003 return proof we are we 09:41:09.783873 > "+OK Mail transfer starts[CR][LF]" 09:41:09.784191 > "WE ROOLZ: 115991[CR][LF]" 09:41:09.784411 > ".[CR][LF]" 09:41:09.827600 < "QUIT" 09:41:09.828598 > "+OK curl POP3 server signing off[CR][LF]" 09:41:09.832695 MAIN sockfilt said DISC 09:41:09.833086 ====> Client disconnected 09:41:09.833556 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.028717 ====> Client connect 09:41:10.030880 Received DATA (on stdin) 09:41:10.031038 > 178 bytes data, server => client 09:41:10.031124 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.031200 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.031270 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.031333 've \r\n' 09:41:10.032313 < 6 bytes data, client => server 09:41:10.032531 'CAPA\r\n' 09:41:10.034015 Received DATA (on stdin) 09:41:10.034153 > 27 bytes data, server => client 09:41:10.034332 '-ERR Unrecognized command\r\n' 09:41:10.035733 < 21 bytes data, client => server 09:41:10.035881 'RETR verifiedserver\r\n' 09:41:10.037022 Received DATA (on stdin) 09:41:10.037145 > 26 bytes data, server => client 09:41:10.037316 '+OK Mail transfer starts\r\n' 09:41:10.038598 Received DATA (on stdin) 09:41:10.038733 > 18 bytes data, server => client 09:41:10.038813 'WE ROOLZ: 115991\r\n' 09:41:10.038922 Received DATA (on stdin) 09:41:10.039024 > 3 bytes data, server => client 09:41:10.039109 '.\r\n' 09:41:10.080415 < 6 bytes data, client => server 09:41:10.080663 'QUIT\r\n' 09:41:10.081847 Received DATA (on stdin) 09:41:10.082109 > 34 bytes data, server => client 09:41:10.082673 '+OK curl POP3 server signing off\r\n' 09:41:10.083207 ====> Client disconnect 09:41:10.087638 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH +OK Login successful Testnum 885 === End of file server.cmd === Start of file valgrind885 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind885 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/40/server/ssh_server.pid" --logdir "log/40" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 38027 startnew: child process has died, server might start up RUN: failed to start the SSH server on 38027 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/42/server/ssh_server.pid" --logdir "log/42" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 40681 startnew: child process has died, server might start up RUN: failed to start the SSH server on 40681 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/64/server/ssh_server.pid" --logdir "log/64" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 38837 startnew: child process has died, server might start up RUN: failed to start the SSH server on 38837 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind892 ../src/curl -q --output log/19/curl892.out --include --trace-ascii log/19/trace892 --trace-config all --trace-time pop3://127.0.0.1:34723/892 -u user:secret --sasl-authzid shared-mailbox > log/19/stdout892 2> log/19/stderr892 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind894 ../src/curl -q --output log/17/curl894.out --include --trace-ascii log/17/trace894 --trace-config all --trace-time pop3://user%0dFRIGGING_cmd:secret@127.0.0.1:35579/894 > log/17/stdout894 2> log/17/stderr894 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind887 ../src/curl -q --output log/31/curl887.out --include --trace-ascii log/31/trace887 --trace-config all --trace-time pop3://127.0.0.1:37483/887 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/31/stdout887 2> log/31/stderr887 l/tests/sshserver.pl --verbose --pidfile "log/34/server/ssh_server.pid" --logdir "log/34" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 38329 startnew: child process has died, server might start up RUN: failed to start the SSH server on 38329 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/51/server/ssh_server.pid" --logdir "log/51" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 39247 startnew: child process has died, server might start up RUN: failed to start the SSH server on 39247 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/5/server/ssh_server.pid" --logdir "log/5" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37685 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37685 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/59/server/ssh_server.pid" --logdir "log/59" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 33491 startnew: child process has died, server might start up RUN: failed to start the SSH server on 33491 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/47/server/ssh_server.pid" --logdir "log/47" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 46565 startnew: child process has died, server might start up RUN: failed to start the SSH server on 46565 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/26/server/ssh_server.pid" --logdir "log/26" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 43513 startnew: child process has died, server might start up RUN: failed to start the SSH server on 43513 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/14/server/ssh_server.pid" --logdir "log/14" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37389 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37389 test 0894...[POP3 with CR in username] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind894 ../src/curl -q --output log/17/curl894.out --include --trace-ascii log/17/trace894 --trace-config all --trace-time pop3://user%0dFRIGGING_cmd:secret@127.0.0.1:35579/894 > log/17/stdout894 2> log/17/stderr894 curl returned 1, when expecting 3 894: exit FAILED == Contents of files in the log/17/ dir after test 894 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind894 ../src/curl -q --output log/17/curl894.out --include --trace-ascii log/17/trace894 --trace-config all --trace-time pop3://user%0dFRIGGING_cmd:secret@127.0.0.1:35579/894 > log/17/stdout894 2> log/17/stderr894 === End of file commands.log === Start of file pop3_server.log 09:41:10.194260 ====> Client connect 09:41:10.197278 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:10.199162 < "CAPA" 09:41:10.199602 > "-ERR Unrecognized command[CR][LF]" 09:41:10.207326 < "RETR verifiedserver" 09:41:10.207610 return proof we are we 09:41:10.208085 > "+OK Mail transfer starts[CR][LF]" 09:41:10.208368 > "WE ROOLZ: 115522[CR][LF]" 09:41:10.208611 > ".[CR][LF]" 09:41:10.250394 < "QUIT" 09:41:10.250931 > "+OK curl POP3 server signing off[CR][LF]" 09:41:10.259893 MAIN sockfilt said DISC 09:41:10.260199 ====> Client disconnected 09:41:10.260647 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.447297 ====> Client connect 09:41:10.449231 Received DATA (on stdin) 09:41:10.449381 > 178 bytes data, server => client 09:41:10.449626 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.449763 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.449843 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.449913 've \r\n' 09:41:10.452083 < 6 bytes data, client => server 09:41:10.452244 'CAPA\r\n' 09:41:10.453437 Received DATA (on stdin) 09:41:10.453691 > 27 bytes data, server => client 09:41:10.453801 '-ERR Unrecognized command\r\n' 09:41:10.456678 < 21 bytes data, client => server 09:41:10.456823 'RETR verifiedserver\r\n' 09:41:10.461818 Received DATA (on stdin) 09:41:10.461969 > 26 bytes data, server => client 09:41:10.462066 '+OK Mail transfer starts\r\n' 09:41:10.462340 Received DATA (on stdin) 09:41:10.462557 > 18 bytes data, server => client 09:41:10.462665 'WE ROOLZ: 115522\r\n' 09:41:10.462794 Received DATA (on stdin) 09:41:10.462900 > 3 bytes data, server => client 09:41:10.462985 '.\r\n' 09:41:10.503425 < 6 bytes data, client => server 09:41:10.503662 'QUIT\r\n' 09:41:10.504975 Received DATA (on stdin) 09:41:10.505124 > 34 bytes data, server => client 09:41:10.505215 '+OK curl POP3 server signing off\r\n' 09:41:10.510573 ====> Client disconnect 09:41:10.514744 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 894 === End of file server.cmd === Start of file valgrind894 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind894 test 0892...[POP3 plain authentication with alternative authorization identity] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind892 ../src/curl -q --output log/19/curl892.out --include --trace-ascii log/19/trace892 --trace-config all --trace-time pop3://127.0.0.1:34723/892 -u user:secret --sasl-authzid shared-mailbox > log/19/stdout892 2> log/19/stderr892 892: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 892 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind892 ../src/curl -q --output log/19/curl892.out --include --trace-ascii log/19/trace892 --trace-config all --trace-time pop3://127.0.0.1:34723/892 -u user:secret --sasl-authzid shared-mailbox > log/19/stdout892 2> log/19/stderr892 === End of file commands.log === Start of file pop3_server.log 09:41:10.154126 ====> Client connect 09:41:10.156527 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:10.160486 < "CAPA" 09:41:10.161015 > "-ERR Unrecognized command[CR][LF]" 09:41:10.163639 < "RETR verifiedserver" 09:41:10.164080 return proof we are we 09:41:10.165236 > "+OK Mail transfer starts[CR][LF]" 09:41:10.166455 > "WE ROOLZ: 115999[CR][LF]" 09:41:10.166865 > ".[CR][LF]" 09:41:10.207695 < "QUIT" 09:41:10.208955 > "+OK curl POP3 server signing off[CR][LF]" 09:41:10.213066 MAIN sockfilt said DISC 09:41:10.213959 ====> Client disconnected 09:41:10.214459 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.406595 ====> Client connect 09:41:10.410704 Received DATA (on stdin) 09:41:10.411025 > 178 bytes data, server => client 09:41:10.411227 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.411550 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.411708 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.411817 've \r\n' 09:41:10.415042 < 6 bytes data, client => server 09:41:10.415180 'CAPA\r\n' 09:41:10.415297 Received DATA (on stdin) 09:41:10.415399 > 27 bytes data, server => client 09:41:10.415636 '-ERR Unrecognized command\r\n' 09:41:10.416369 < 21 bytes data, client => server 09:41:10.416603 'RETR verifiedserver\r\n' 09:41:10.418117 Received DATA (on stdin) 09:41:10.418264 > 26 bytes data, server => client 09:41:10.418505 '+OK Mail transfer starts\r\n' 09:41:10.419530 Received DATA (on stdin) 09:41:10.419680 > 18 bytes data, server => client 09:41:10.420895 'WE ROOLZ: 115999\r\n' 09:41:10.421070 Received DATA (on stdin) 09:41:10.421171 > 3 bytes data, server => client 09:41:10.421266 '.\r\n' 09:41:10.460597 < 6 bytes data, client => server 09:41:10.460765 'QUIT\r\n' 09:41:10.461906 Received DATA (on stdin) 09:41:10.462049 > 34 bytes data, server => client 09:41:10.462214 '+OK curl POP3 server signing off\r\n' 09:41:10.466376 ====> Client disconnect 09:41:10.467123 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH + REPLY c2hhcmVkLW1haWxib3gAdXNlcgBzZWNyZXQ= +OK Login successful Testnum 892 === End of file server.cmd === Start of file valgrind892 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind892 test 0887...[POP3 OAuth 2.0 (OAUTHBEARER) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind887 ../src/curl -q --output log/31/curl887.out --include --trace-ascii log/31/trace887 --trace-config all --trace-time pop3://127.0.0.1:37483/887 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/31/stdout887 2> log/31/stderr887 887: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 887 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind887 ../src/curl -q --output log/31/curl887.out --include --trace-ascii log/31/trace887 --trace-config all --trace-time pop3://127.0.0.1:37483/887 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/31/stdout887 2> log/31/stderr887 === End of file commands.log === Start of file pop3_server.log 09:41:10.004524 ====> Client connect 09:41:10.006108 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:10.012495 < "CAPA" 09:41:10.014666 > "-ERR Unrecognized command[CR][LF]" 09:41:10.015532 < "RETR verifiedserver" 09:41:10.016034 return proof we are we 09:41:10.016720 > "+OK Mail transfer starts[CR][LF]" 09:41:10.017119 > "WE ROOLZ: 115997[CR][LF]" 09:41:10.017392 > ".[CR][LF]" 09:41:10.061124 < "QUIT" 09:41:10.062552 > "+OK curl POP3 server signing off[CR][LF]" 09:41:10.066199 MAIN sockfilt said DISC 09:41:10.067083 ====> Client disconnected 09:41:10.067593 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.257657 ====> Client connect 09:41:10.263587 Received DATA (on stdin) 09:41:10.263780 > 178 bytes data, server => client 09:41:10.263883 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.263991 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.264085 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.264160 've \r\n' 09:41:10.264973 < 6 bytes data, client => server 09:41:10.265138 'CAPA\r\n' 09:41:10.266747 Received DATA (on stdin) 09:41:10.266906 > 27 bytes data, server => client 09:41:10.267232 '-ERR Unrecognized command\r\n' 09:41:10.268030 < 21 bytes data, client => server 09:41:10.268176 'RETR verifiedserver\r\n' 09:41:10.270081 Received DATA (on stdin) 09:41:10.270224 > 26 bytes data, server => client 09:41:10.271409 '+OK Mail transfer starts\r\n' 09:41:10.271812 Received DATA (on stdin) 09:41:10.271947 > 18 bytes data, server => client 09:41:10.272027 'WE ROOLZ: 115997\r\n' 09:41:10.272141 Received DATA (on stdin) 09:41:10.272246 > 3 bytes data, server => client 09:41:10.272341 '.\r\n' 09:41:10.313879 < 6 bytes data, client => server 09:41:10.314046 'QUIT\r\n' 09:41:10.315244 Received DATA (on stdin) 09:41:10.315390 > 34 bytes data, server => client 09:41:10.315641 '+OK curl POP3 server signing off\r\n' 09:41:10.319577 ====> Client disconnect 09:41:10.320249 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9Mzc0ODMBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= +OK Login successful Testnum 887 === End of file server.cmd === Start of file valgrind887 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1,CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind896 ../src/curl -q --output log/13/curl896.out --include --trace-ascii log/13/trace896 --trace-config all --trace-time 'imap://127.0.0.1:38033/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=dummy' > log/13/stdout896 2> log/13/stderr896 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind895 ../src/curl -q --output log/39/curl895.out --include --trace-ascii log/39/trace895 --trace-config all --trace-time 'imap://127.0.0.1:38285/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=*' > log/39/stdout895 2> log/39/stderr895 short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind887 test 0896...[IMAP with --login-options 'AUTH=dummy' (failing)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind896 ../src/curl -q --output log/13/curl896.out --include --trace-ascii log/13/trace896 --trace-config all --trace-time 'imap://127.0.0.1:38033/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=dummy' > log/13/stdout896 2> log/13/stderr896 curl returned 1, when expecting 3 896: exit FAILED == Contents of files in the log/13/ dir after test 896 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind896 ../src/curl -q --output log/13/curl896.out --include --trace-ascii log/13/trace896 --trace-config all --trace-time 'imap://127.0.0.1:38033/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=dummy' > log/13/stdout896 2> log/13/stderr896 === End of file commands.log === Start of file imap_server.log 09:41:10.276277 ====> Client connect 09:41:10.277576 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:10.282492 < "A001 CAPABILITY" 09:41:10.282918 > "A001 BAD Command[CR][LF]" 09:41:10.284689 < "A002 LIST "verifiedserver" *" 09:41:10.285067 LIST_imap got "verifiedserver" * 09:41:10.285346 > "* LIST () "/" "WE ROOLZ: 112884"[CR][LF]" 09:41:10.285590 > "A002 OK LIST Completed[CR][LF]" 09:41:10.285867 return proof we are we 09:41:10.330957 < "A003 LOGOUT" 09:41:10.332138 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:10.332471 > "A003 OK LOGOUT completed[CR][LF]" 09:41:10.336965 MAIN sockfilt said DISC 09:41:10.337612 ====> Client disconnected 09:41:10.338187 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:10.529341 ====> Client connect 09:41:10.531252 Received DATA (on stdin) 09:41:10.531403 > 178 bytes data, server => client 09:41:10.531598 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.531711 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.531793 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:10.531866 'rve\r\n' 09:41:10.532670 < 17 bytes data, client => server 09:41:10.532805 'A001 CAPABILITY\r\n' 09:41:10.536947 Received DATA (on stdin) 09:41:10.537079 > 18 bytes data, server => client 09:41:10.537162 'A001 BAD Command\r\n' 09:41:10.539838 < 30 bytes data, client => server 09:41:10.539960 'A002 LIST "verifiedserver" *\r\n' 09:41:10.540055 Received DATA (on stdin) 09:41:10.540133 > 34 bytes data, server => client 09:41:10.540207 '* LIST () "/" "WE ROOLZ: 112884"\r\n' 09:41:10.540556 Received DATA (on stdin) 09:41:10.540692 > 24 bytes data, server => client 09:41:10.540769 'A002 OK LIST Completed\r\n' 09:41:10.583725 < 13 bytes data, client => server 09:41:10.583887 'A003 LOGOUT\r\n' 09:41:10.585031 Received DATA (on stdin) 09:41:10.585188 > 36 bytes data, server => client 09:41:10.585377 '* BYE curl IMAP server signing off\r\n' 09:41:10.586505 Received DATA (on stdin) 09:41:10.586647 > 26 bytes data, server => client 09:41:10.586723 'A003 OK LOGOUT completed\r\n' 09:41:10.590217 ====> Client disconnect 09:41:10.590999 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 896 === End of file server.cmd === Start of file valgrind896 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind896 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/60/server/ssh_server.pid" --logdir "log/60" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 33053 startnew: child process has died, server might start up RUN: failed to start the SSH server on 33053 test 0895...[IMAP with --login-options 'AUTH=*'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind895 ../src/curl -q --output log/39/curl895.out --include --trace-ascii log/39/trace895 --trace-config all --trace-time 'imap://127.0.0.1:38285/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=*' > log/39/stdout895 2> log/39/stderr895 895: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 895 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind895 ../src/curl -q --output log/39/curl895.out --include --trace-ascii log/39/trace895 --trace-config all --trace-time 'imap://127.0.0.1:38285/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=*' > log/39/stdout895 2> log/39/stderr895 === End of file commands.log === Start of file imap_server.log 09:41:10.208645 ====> Client connect 09:41:10.209913 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:10.214431 < "A001 CAPABILITY" 09:41:10.215031 > "A001 BAD Command[CR][LF]" 09:41:10.220892 < "A002 LIST "verifiedserver" *" 09:41:10.221241 LIST_imap got "verifiedserver" * 09:41:10.222976 > "* LIST () "/" "WE ROOLZ: 113110"[CR][LF]" 09:41:10.223348 > "A002 OK LIST Completed[CR][LF]" 09:41:10.223633 return proof we are we 09:41:10.268427 < "A003 LOGOUT" 09:41:10.268943 > "* BYE curl IMAP server signing oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind891 ../src/curl -q --output log/30/curl891.out --include --trace-ascii log/30/trace891 --trace-config all --trace-time pop3://127.0.0.1:39241/891 -u user:secret > log/30/stdout891 2> log/30/stderr891 ff[CR][LF]" 09:41:10.269277 > "A003 OK LOGOUT completed[CR][LF]" 09:41:10.278642 MAIN sockfilt said DISC 09:41:10.279101 ====> Client disconnected 09:41:10.279600 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:09.461807 ====> Client connect 09:41:09.465576 Received DATA (on stdin) 09:41:09.465719 > 178 bytes data, server => client 09:41:09.465825 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:09.465936 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:09.466020 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:09.466097 'rve\r\n' 09:41:09.466936 < 17 bytes data, client => server 09:41:09.467085 'A001 CAPABILITY\r\n' 09:41:09.472591 Received DATA (on stdin) 09:41:09.472769 > 18 bytes data, server => client 09:41:09.472875 'A001 BAD Command\r\n' 09:41:09.473677 < 30 bytes data, client => server 09:41:09.473835 'A002 LIST "verifiedserver" *\r\n' 09:41:09.475300 Received DATA (on stdin) 09:41:09.475571 > 34 bytes data, server => client 09:41:09.477729 '* LIST () "/" "WE ROOLZ: 113110"\r\n' 09:41:09.478061 Received DATA (on stdin) 09:41:09.478203 > 24 bytes data, server => client 09:41:09.478287 'A002 OK LIST Completed\r\n' 09:41:09.519363 < 13 bytes data, client => server 09:41:09.519613 'A003 LOGOUT\r\n' 09:41:09.524575 Received DATA (on stdin) 09:41:09.524746 > 36 bytes data, server => client 09:41:09.524842 '* BYE curl IMAP server signing off\r\n' 09:41:09.525134 Received DATA (on stdin) 09:41:09.525279 > 26 bytes data, server => client 09:41:09.525365 'A003 OK LOGOUT completed\r\n' 09:41:09.528601 ====> Client disconnect 09:41:09.533729 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 895 === End of file server.cmd === Start of file valgrind895 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind895 test 0891...[POP3 with short authentication response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind891 ../src/curl -q --output log/30/curl891.out --include --trace-ascii log/30/trace891 --trace-config all --trace-time pop3://127.0.0.1:39241/891 -u user:secret > log/30/stdout891 2> log/30/stderr891 891: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 891 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind891 ../src/curl -q --output log/30/curl891.out --include --trace-ascii log/30/trace891 --trace-config all --trace-time pop3://127.0.0.1:39241/891 -u user:secret > log/30/stdout891 2> log/30/stderr891 === End of file commands.log === Start of file pop3_server.log 09:41:10.214566 ====> Client connect 09:41:10.217926 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:10.218902 < "CAPA" 09:41:10.219306 > "-ERR Unrecognized command[CR][LF]" 09:41:10.221411 < "RETR verifiedserver" 09:41:10.221686 return proof we are we 09:41:10.222091 > "+OK Mail transfer starts[CR][LF]" 09:41:10.222381 > "WE ROOLZ: 115540[CR][LF]" 09:41:10.222642 > ".[CR][LF]" 09:41:10.268680 < "QUIT" 09:41:10.270377 > "+OK curl POP3 server signing off[CR][LF]" 09:41:10.270654 MAIN sockfilt said DISC 09:41:10.272868 ====> Client disconnected 09:41:10.273464 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.467771 ====> Client connect 09:41:10.469427 Received DATA (on stdin) 09:41:10.469699 > 178 bytes data, server => client 09:41:10.470101 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.470248 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.470319 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.470386 've \r\n' 09:41:10.471061 < 6 bytes data, client => server 09:41:10.471201 'CAPA\r\n' 09:41:10.473341 Received DATA (on stdin) 09:41:10.473554 > 27 bytes data, server => client 09:41:10.473656 '-ERR Unrecognized command\r\n' 09:41:10.474229 < 21 bytes data, client => server 09:41:10.474372 'RETR verifiedserver\r\n' 09:41:10.476731 Received DATA (on stdin) 09:41:10.476865 > 26 bytes data, server => client 09:41:10.476944 '+OK Mail transfer starts\r\n' 09:41:10.477198 Received DATA (on stdin) 09:41:10.477328 > 18 bytes data, server => client 09:41:10.477405 'WE ROOLZ: 115540\r\n' 09:41:10.477597 Received DATA (on stdin) 09:41:10.477712 > 3 bytes data, server => client 09:41:10.477790 '.\r\n' 09:41:10.521624 < 6 bytes data, client => server 09:41:10.521777 'QUIT\r\n' 09:41:10.522844 Received DATA (on stdin) 09:41:10.522992 > 34 bytes data, server => client 09:41:10.523166 '+OK curl POP3 server signing off\r\n' 09:41:10.523826 ====> Client disconnect 09:41:10.524720 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLYLF AUTH + Testnum 891 === End of file server.cmd === Start of file valgrind891 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === EnCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind893 ../src/curl -q --output log/18/curl893.out --include --trace-ascii log/18/trace893 --trace-config all --trace-time pop3://127.0.0.1:45521/893 -u kurt:xipj3plmq --sasl-authzid ursel > log/18/stdout893 2> log/18/stderr893 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind899 ../src/curl -q --output log/28/curl899.out --include --trace-ascii log/28/trace899 --trace-config all --trace-time http://first:secret@127.0.0.1:37545/899 -L > log/28/stdout899 2> log/28/stderr899 d of file valgrind891 test 0893...[POP3 plain auth with alt authorization identity (Not authorized)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind893 ../src/curl -q --output log/18/curl893.out --include --trace-ascii log/18/trace893 --trace-config all --trace-time pop3://127.0.0.1:45521/893 -u kurt:xipj3plmq --sasl-authzid ursel > log/18/stdout893 2> log/18/stderr893 893: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 893 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind893 ../src/curl -q --output log/18/curl893.out --include --trace-ascii log/18/trace893 --trace-config all --trace-time pop3://127.0.0.1:45521/893 -u kurt:xipj3plmq --sasl-authzid ursel > log/18/stdout893 2> log/18/stderr893 === End of file commands.log === Start of file pop3_server.log 09:41:10.200725 ====> Client connect 09:41:10.202942 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:10.206442 < "CAPA" 09:41:10.207272 > "-ERR Unrecognized command[CR][LF]" 09:41:10.209139 < "RETR verifiedserver" 09:41:10.209456 return proof we are we 09:41:10.209899 > "+OK Mail transfer starts[CR][LF]" 09:41:10.210171 > "WE ROOLZ: 115995[CR][LF]" 09:41:10.210381 > ".[CR][LF]" 09:41:10.253634 < "QUIT" 09:41:10.254473 > "+OK curl POP3 server signing off[CR][LF]" 09:41:10.258903 MAIN sockfilt said DISC 09:41:10.259657 ====> Client disconnected 09:41:10.260331 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.453666 ====> Client connect 09:41:10.455947 Received DATA (on stdin) 09:41:10.456101 > 178 bytes data, server => client 09:41:10.456295 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.456424 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.457096 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.457177 've \r\n' 09:41:10.459032 < 6 bytes data, client => server 09:41:10.459170 'CAPA\r\n' 09:41:10.460620 Received DATA (on stdin) 09:41:10.460771 > 27 bytes data, server => client 09:41:10.461286 '-ERR Unrecognized command\r\n' 09:41:10.462055 < 21 bytes data, client => server 09:41:10.462191 'RETR verifiedserver\r\n' 09:41:10.464354 Received DATA (on stdin) 09:41:10.464562 > 26 bytes data, server => client 09:41:10.464682 '+OK Mail transfer starts\r\n' 09:41:10.464986 Received DATA (on stdin) 09:41:10.465146 > 18 bytes data, server => client 09:41:10.465238 'WE ROOLZ: 115995\r\n' 09:41:10.465363 Received DATA (on stdin) 09:41:10.465575 > 3 bytes data, server => client 09:41:10.465691 '.\r\n' 09:41:10.506525 < 6 bytes data, client => server 09:41:10.506713 'QUIT\r\n' 09:41:10.507811 Received DATA (on stdin) 09:41:10.507953 > 34 bytes data, server => client 09:41:10.508569 '+OK curl POP3 server signing off\r\n' 09:41:10.512249 ====> Client disconnect 09:41:10.512898 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH + REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= -ERR Not authorized Testnum 893 === End of file server.cmd === Start of file valgrind893 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind893 test 0899...[URL with credentials redirects to URL with different credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind899 ../src/curl -q --output log/28/curl899.out --include --trace-ascii log/28/trace899 --trace-config all --trace-time http://first:secret@127.0.0.1:37545/899 -L > log/28/stdout899 2> log/28/stderr899 899: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 899 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind899 ../src/curl -q --output log/28/curl899.out --include --trace-ascii log/28/trace899 --trace-config all --trace-time http://first:secret@127.0.0.1:37545/899 -L > log/28/stdout899 2> log/28/stderr899 === End of file commands.log === Start of file http_server.log 09:41:10.626054 ====> Client connect 09:41:10.626430 accept_connection 3 returned 4 09:41:10.626686 accept_connection 3 returned 0 09:41:10.626831 Read 93 bytes 09:41:10.626932 Process 93 bytes request 09:41:10.627024 Got request: GET /verifiedserver HTTP/1.1 09:41:10.627113 Are-we-friendly question received 09:41:10.627336 Wrote request (93 bytes) input to log/28/server.input 09:41:10.627624 Identifying ourselves as friends 09:41:10.628446 Response sent (56 bytes) and written to log/28/server.response 09:41:10.635722 special request received, no persistency 09:41:10.635815 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 899 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind899 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on thisCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind888 ../src/curl -q --output log/54/curl888.out --include --trace-ascii log/54/trace888 --trace-config all --trace-time pop3://127.0.0.1:33351/888 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/54/stdout888 2> log/54/stderr888 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind897 ../src/curl -q --output log/43/curl897.out --include --trace-ascii log/43/trace897 --trace-config all --trace-time 'imap://127.0.0.1:33087/897/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/43/head-897 > log/43/stdout897 2> log/43/stderr897 machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind899 test 0888...[POP3 OAuth 2.0 (OAUTHBEARER) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind888 ../src/curl -q --output log/54/curl888.out --include --trace-ascii log/54/trace888 --trace-config all --trace-time pop3://127.0.0.1:33351/888 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/54/stdout888 2> log/54/stderr888 888: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 888 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind888 ../src/curl -q --output log/54/curl888.out --include --trace-ascii log/54/trace888 --trace-config all --trace-time pop3://127.0.0.1:33351/888 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/54/stdout888 2> log/54/stderr888 === End of file commands.log === Start of file pop3_server.log 09:41:10.171884 ====> Client connect 09:41:10.173272 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:10.179093 < "CAPA" 09:41:10.184942 > "-ERR Unrecognized command[CR][LF]" 09:41:10.191942 < "RETR verifiedserver" 09:41:10.192309 return proof we are we 09:41:10.192667 > "+OK Mail transfer starts[CR][LF]" 09:41:10.193060 > "WE ROOLZ: 115994[CR][LF]" 09:41:10.193263 > ".[CR][LF]" 09:41:10.237956 < "QUIT" 09:41:10.240910 > "+OK curl POP3 server signing off[CR][LF]" 09:41:10.241216 MAIN sockfilt said DISC 09:41:10.241453 ====> Client disconnected 09:41:10.241996 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.421624 ====> Client connect 09:41:10.427345 Received DATA (on stdin) 09:41:10.427615 > 178 bytes data, server => client 09:41:10.427743 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:10.427836 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.427928 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:10.428012 've \r\n' 09:41:10.431615 < 6 bytes data, client => server 09:41:10.431771 'CAPA\r\n' 09:41:10.433234 Received DATA (on stdin) 09:41:10.433383 > 27 bytes data, server => client 09:41:10.441554 '-ERR Unrecognized command\r\n' 09:41:10.442347 < 21 bytes data, client => server 09:41:10.442600 'RETR verifiedserver\r\n' 09:41:10.446394 Received DATA (on stdin) 09:41:10.446620 > 26 bytes data, server => client 09:41:10.446715 '+OK Mail transfer starts\r\n' 09:41:10.446985 Received DATA (on stdin) 09:41:10.447129 > 18 bytes data, server => client 09:41:10.447206 'WE ROOLZ: 115994\r\n' 09:41:10.447320 Received DATA (on stdin) 09:41:10.447420 > 3 bytes data, server => client 09:41:10.447599 '.\r\n' 09:41:10.490662 < 6 bytes data, client => server 09:41:10.490885 'QUIT\r\n' 09:41:10.492082 Received DATA (on stdin) 09:41:10.492230 > 34 bytes data, server => client 09:41:10.492417 '+OK curl POP3 server signing off\r\n' 09:41:10.493104 ====> Client disconnect 09:41:10.496016 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH +OK Login successful Testnum 888 === End of file server.cmd === Start of file valgrind888 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind888 test 0897...[IMAP and envelope meta data after body transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind897 ../src/curl -q --output log/43/curl897.out --include --trace-ascii log/43/trace897 --trace-config all --trace-time 'imap://127.0.0.1:33087/897/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/43/head-897 > log/43/stdout897 2> log/43/stderr897 897: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 897 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind897 ../src/curl -q --output log/43/curl897.out --include --trace-ascii log/43/trace897 --trace-config all --trace-time 'imap://127.0.0.1:33087/897/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/43/head-897 > log/43/stdout897 2> log/43/stderr897 === End of file commands.log === Start of file imap_server.log 09:41:10.340975 ====> Client connect 09:41:10.342304 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:10.344548 < "A001 CAPABILITY" 09:41:10.345024 > "A001 BAD Command[CR][LF]" 09:41:10.347067 < "A002 LIST "verifiedserver" *" 09:41:10.347377 LIST_imap got "verifiedserver" * 09:41:10.347816 > "* LIST () "/" "WE ROOLZ: 113056"[CR][LF]" 09:41:10.348092 > "A002 OK LIST Completed[CR][LF]" 09:41:10.348275 return proof we are we 09:41:10.391495 < "A003 LOGOUT" 09:41:10.392614 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:10.393352 > "A003 OK LOGOUT completed[CR][LF]" 09:41:10.394404 MAIN sockfilt said DISC 09:41:10.394646 ====> Client disconnected 09:41:10.395141 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:10.593970 ====> Client connect 09:41:10.595954 Received DATA (on stdin) 09:41:10.596113 > 178 bytes data, server => client 09:41:10.596207 ' _ _ ____ _ CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind898 ../src/curl -q --output log/32/curl898.out --include --trace-ascii log/32/trace898 --trace-config all --trace-time -x http://127.0.0.1:45607 http://firsthost.com -L -H "Authorization: Basic am9lOnNlY3JldA==" -H "Cookie: userpwd=am9lOnNlY3JldA==" > log/32/stdout898 2> log/32/stderr898 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind920 ../src/curl -q --output log/9/curl920.out --include --trace-ascii log/9/trace920 --trace-config all --trace-time smtp://127.0.0.1:36457/920 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/9/stdout920 2> log/9/stderr920 \r\n ___| | | | _ \| | \r\n ' 09:41:10.596294 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:10.596385 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:10.596607 'rve\r\n' 09:41:10.597444 < 17 bytes data, client => server 09:41:10.597645 'A001 CAPABILITY\r\n' 09:41:10.598717 Received DATA (on stdin) 09:41:10.598859 > 18 bytes data, server => client 09:41:10.598945 'A001 BAD Command\r\n' 09:41:10.600181 < 30 bytes data, client => server 09:41:10.600337 'A002 LIST "verifiedserver" *\r\n' 09:41:10.601512 Received DATA (on stdin) 09:41:10.601671 > 34 bytes data, server => client 09:41:10.601757 '* LIST () "/" "WE ROOLZ: 113056"\r\n' 09:41:10.602088 Received DATA (on stdin) 09:41:10.602234 > 24 bytes data, server => client 09:41:10.602348 'A002 OK LIST Completed\r\n' 09:41:10.644659 < 13 bytes data, client => server 09:41:10.644846 'A003 LOGOUT\r\n' 09:41:10.645636 Received DATA (on stdin) 09:41:10.645776 > 36 bytes data, server => client 09:41:10.645930 '* BYE curl IMAP server signing off\r\n' 09:41:10.646735 Received DATA (on stdin) 09:41:10.646864 > 26 bytes data, server => client 09:41:10.647369 'A003 OK LOGOUT completed\r\n' 09:41:10.647870 ====> Client disconnect 09:41:10.649414 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd POSTFETCH extra stuff sent in the envelope after the body Testnum 897 === End of file server.cmd === Start of file valgrind897 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind897 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/62/server/ssh_server.pid" --logdir "log/62" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37265 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37265 test 0898...[HTTP with custom auth and cookies redirected to HTTP on a diff port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind898 ../src/curl -q --output log/32/curl898.out --include --trace-ascii log/32/trace898 --trace-config all --trace-time -x http://127.0.0.1:45607 http://firsthost.com -L -H "Authorization: Basic am9lOnNlY3JldA==" -H "Cookie: userpwd=am9lOnNlY3JldA==" > log/32/stdout898 2> log/32/stderr898 898: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 898 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind898 ../src/curl -q --output log/32/curl898.out --include --trace-ascii log/32/trace898 --trace-config all --trace-time -x http://127.0.0.1:45607 http://firsthost.com -L -H "Authorization: Basic am9lOnNlY3JldA==" -H "Cookie: userpwd=am9lOnNlY3JldA==" > log/32/stdout898 2> log/32/stderr898 === End of file commands.log === Start of file http_server.log 09:41:10.613975 ====> Client connect 09:41:10.614279 accept_connection 3 returned 4 09:41:10.614442 accept_connection 3 returned 0 09:41:10.614709 Read 93 bytes 09:41:10.614792 Process 93 bytes request 09:41:10.614869 Got request: GET /verifiedserver HTTP/1.1 09:41:10.615747 Are-we-friendly question received 09:41:10.616046 Wrote request (93 bytes) input to log/32/server.input 09:41:10.616253 Identifying ourselves as friends 09:41:10.617109 Response sent (56 bytes) and written to log/32/server.response 09:41:10.617213 special request received, no persistency 09:41:10.617282 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 898 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind898 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind898 test 0920...[SMTP login authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind920 ../src/curl -q --output log/9/curl920.out --include --trace-ascii log/9/trace920 --trace-config all --trace-time smtp://127.0.0.1:36457/920 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/9/stdout920 2> log/9/stderr920 920: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 920 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/buildCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind932 ../src/curl -q --output log/36/curl932.out --include --trace-ascii log/36/trace932 --trace-config all --trace-time smtp://127.0.0.1:33651/932 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - > log/36/stdout932 2> log/36/stderr932 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind889 ../src/curl -q --output log/49/curl889.out --include --trace-ascii log/49/trace889 --trace-config all --trace-time pop3://127.0.0.1:37751/889 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/49/stdout889 2> log/49/stderr889 /curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind920 ../src/curl -q --output log/9/curl920.out --include --trace-ascii log/9/trace920 --trace-config all --trace-time smtp://127.0.0.1:36457/920 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/9/stdout920 2> log/9/stderr920 === End of file commands.log === Start of file server.cmd AUTH LOGIN REPLY AUTH 334 UGFzc3dvcmQ6 REPLY c2VjcmV0 235 Authenticated Testnum 920 === End of file server.cmd === Start of file smtp_server.log 09:41:10.819433 ====> Client connect 09:41:10.821996 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:10.823565 < "EHLO verifiedserver" 09:41:10.824341 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:10.826029 < "HELP" 09:41:10.827592 > "214 WE ROOLZ: 106081[CR][LF]" 09:41:10.827918 return proof we are we 09:41:10.828983 < "QUIT" 09:41:10.829600 > "221 curl ESMTP server signing off[CR][LF]" 09:41:10.833904 MAIN sockfilt said DISC 09:41:10.834683 ====> Client disconnected 09:41:10.835251 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.072588 ====> Client connect 09:41:11.074352 Received DATA (on stdin) 09:41:11.074564 > 160 bytes data, server => client 09:41:11.074762 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:11.074877 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:11.074956 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:11.076200 < 21 bytes data, client => server 09:41:11.076322 'EHLO verifiedserver\r\n' 09:41:11.077735 Received DATA (on stdin) 09:41:11.077865 > 53 bytes data, server => client 09:41:11.078326 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:11.079002 < 6 bytes data, client => server 09:41:11.079128 'HELP\r\n' 09:41:11.080068 Received DATA (on stdin) 09:41:11.080190 > 22 bytes data, server => client 09:41:11.080342 '214 WE ROOLZ: 106081\r\n' 09:41:11.081973 < 6 bytes data, client => server 09:41:11.082091 'QUIT\r\n' 09:41:11.083014 Received DATA (on stdin) 09:41:11.083143 > 35 bytes data, server => client 09:41:11.083638 '221 curl ESMTP server signing off\r\n' 09:41:11.087181 ====> Client disconnect 09:41:11.087932 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-920 mail body === End of file stdin-for-920 === Start of file valgrind920 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind920 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/56/server/ssh_server.pid" --logdir "log/56" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 35277 startnew: child process has died, server might start up RUN: failed to start the SSH server on 35277 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/45/server/ssh_server.pid" --logdir "log/45" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 35835 startnew: child process has died, server might start up RUN: failed to start the SSH server on 35835 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/61/server/ssh_server.pid" --logdir "log/61" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 38143 startnew: child process has died, server might start up RUN: failed to start the SSH server on 38143 test 0932...[SMTP CRAM-MD5 graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind932 ../src/curl -q --output log/36/curl932.out --include --trace-ascii log/36/trace932 --trace-config all --trace-time smtp://127.0.0.1:33651/932 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - > log/36/stdout932 2> log/36/stderr932 932: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 932 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind932 ../src/curl -q --output log/36/curl932.out --include --trace-ascii log/36/trace932 --trace-config all --trace-time smtp://127.0.0.1:33651/932 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - > log/36/stdout932 2> log/36/stderr932 === End of file commands.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH 334 Rubbish REPLY * 501 AUTH exchange cancelled by client Testnum 932 === End of file server.cmd === Start of file smtp_server.log 09:41:10.926523 ====> Client connect 09:41:10.928956 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:10.932511 < "EHLO verifiedserver" 09:41:10.933020 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:10.934571 < "HELP" 09:41:10.935089 > "214 WE ROOLZ: 106052[CR][LF]" 09:41:10.935342 return proof we are we 09:41:10.937255 < "QUIT" 09:41:10.941938 > "221 curl ESMTP server signing off[CR][LF]" 09:41:10.942595 MAIN sockfilt said DISC 09:41:10.942940 ====> Client disconnected 09:41:10.943335 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.179649 ====> Client connect 09:41:11.181642 Received DATA (on stdin) 09:41:11.181801 > 160 bytes data, server => client 09:41:11.181994 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:11.182115 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:11.182195 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:11.185261 < 21 bytes data, client => server 09:41:11.185423 'EHLO verifiedserver\r\n' 09:41:11.186762 Received DATA (on stdin) 09:41:11.186915 > 53 bytes data, server => client 09:41:11.186998 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:11.187749 < 6 bytes data, client => server 09:41:11.187892 'HELP\r\n' 09:41:11.188829 Received DATA (on stdin) 09:41:11.188976 > 22 bytes data, server => client 09:41:11.189060 '214 WE ROOLZ: 106052\r\n' 09:41:11.190156 < 6 bytes data, client => server 09:41:11.190302 'QUIT\r\n' 09:41:11.191364 Received DATA (on stdin) 09:41:11.191619 > 35 bytes data, server => clCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind890 ../src/curl -q --output log/44/curl890.out --include --trace-ascii log/44/trace890 --trace-config all --trace-time pop3://127.0.0.1:46505/890 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/44/stdout890 2> log/44/stderr890 ient 09:41:11.191813 '221 curl ESMTP server signing off\r\n' 09:41:11.196010 ====> Client disconnect 09:41:11.197308 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind932 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind932 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/49/server/pop3_server.pid" --logfile "log/49/pop3_server.log" --logdir "log/49" --portfile "log/49/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37751 (log/49/server/pop3_server.port) RUN: POP3 server is PID 117533 port 37751 * pid pop3 => 117533 117533 test 0889...[POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind889 ../src/curl -q --output log/49/curl889.out --include --trace-ascii log/49/trace889 --trace-config all --trace-time pop3://127.0.0.1:37751/889 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/49/stdout889 2> log/49/stderr889 889: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 889 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind889 ../src/curl -q --output log/49/curl889.out --include --trace-ascii log/49/trace889 --trace-config all --trace-time pop3://127.0.0.1:37751/889 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/49/stdout889 2> log/49/stderr889 === End of file commands.log === Start of file pop3_server.log 09:41:10.563870 POP3 server listens on port IPv4/37751 09:41:10.564831 logged pid 117533 in log/49/server/pop3_server.pid 09:41:10.565190 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.811305 Running IPv4 version 09:41:10.812032 Listening on port 37751 09:41:10.816229 Wrote pid 118125 to log/49/server/pop3_sockfilt.pid 09:41:10.816720 Wrote port 37751 to log/49/server/pop3_server.port 09:41:10.816931 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9Mzc3NTEBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= + eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0 REPLY AQ== -ERR Authentication failed Testnum 889 === End of file server.cmd === Start of file valgrind889 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind889 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/53/server/ssh_server.pid" --logdir "log/53" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 41443 startnew: child process has died, server might start up RUN: failed to start the SSH server on 41443 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/44/server/pop3_server.pid" --logfile "log/44/pop3_server.log" --logdir "log/44" --portfile "log/44/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46505 (log/44/server/pop3_server.port) RUN: POP3 server is PID 117536 port 46505 * pid pop3 => 117536 117536 test 0890...[POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind890 ../src/curl -q --output log/44/curl890.out --include --trace-ascii log/44/trace890 --trace-config all --trace-time pop3://127.0.0.1:46505/890 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/44/stdout890 2> log/44/stderr890 890: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 890 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind890 ../src/curl -q --output log/44/curl890.out --include --trace-ascii log/44/trace890 --trace-config all --trace-time pop3://127.0.0.1:46505/890 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/44/stdout890 2> log/44/stderr890 === End of file commands.log === Start of file pop3_server.log 09:41:10.540326 POP3 server listens on port IPv4/46505 09:41:10.543964 logged pid 117536 in log/44/server/pop3_server.pid 09:41:10.544371 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:10.790796 Running IPv4 version 09:41:10.791422 Listening on port 46505 09:41:10.791965 Wrote pid 118104 to log/44/server/pop3_sockfilt.pid 09:41:10.792336 Wrote port 46505 to log/44/server/pop3_server.port 09:41:10.792589 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH + eyJzdGCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind900 ../src/curl -q --output log/24/curl900.out --include --trace-ascii log/24/trace900 --trace-config all --trace-time smtp://127.0.0.1:43359/900 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/24/stdout900 2> log/24/stderr900 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind906 ../src/curl -q --output log/8/curl906.out --include --trace-ascii log/8/trace906 --trace-config all --trace-time smtp://127.0.0.1:44477/906 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - log/8/stdout906 2> log/8/stderr906 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind904 ../src/curl -q --output log/22/curl904.out --include --trace-ascii log/22/trace904 --trace-config all --trace-time smtp://127.0.0.1:35885/904 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/22/stdout904 2> log/22/stderr904 F0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0 REPLY AQ== -ERR Authentication failed Testnum 890 === End of file server.cmd === Start of file valgrind890 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind890 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/24/server/smtp_server.pid" --logfile "log/24/smtp_server.log" --logdir "log/24" --portfile "log/24/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43359 (log/24/server/smtp_server.port) RUN: SMTP server is PID 117764 port 43359 * pid smtp => 117764 117764 test 0900...[SMTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind900 ../src/curl -q --output log/24/curl900.out --include --trace-ascii log/24/trace900 --trace-config all --trace-time smtp://127.0.0.1:43359/900 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/24/stdout900 2> log/24/stderr900 900: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 900 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind900 ../src/curl -q --output log/24/curl900.out --include --trace-ascii log/24/trace900 --trace-config all --trace-time smtp://127.0.0.1:43359/900 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/24/stdout900 2> log/24/stderr900 === End of file commands.log === Start of file server.cmd Testnum 900 === End of file server.cmd === Start of file smtp_server.log 09:41:10.849715 SMTP server listens on port IPv4/43359 09:41:10.850699 logged pid 117764 in log/24/server/smtp_server.pid 09:41:10.851064 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.101141 Running IPv4 version 09:41:10.101880 Listening on port 43359 09:41:10.102254 Wrote pid 118386 to log/24/server/smtp_sockfilt.pid 09:41:10.102673 Wrote port 43359 to log/24/server/smtp_server.port 09:41:10.102832 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-900 From: different To: another body === End of file stdin-for-900 === Start of file valgrind900 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind900 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/33/server/ssh_server.pid" --logdir "log/33" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 34231 startnew: child process has died, server might start up RUN: failed to start the SSH server on 34231 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/8/server/smtp_server.pid" --logfile "log/8/smtp_server.log" --logdir "log/8" --portfile "log/8/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44477 (log/8/server/smtp_server.port) RUN: SMTP server is PID 117877 port 44477 * pid smtp => 117877 117877 test 0906...[SMTP NTLM authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind906 ../src/curl -q --output log/8/curl906.out --include --trace-ascii log/8/trace906 --trace-config all --trace-time smtp://127.0.0.1:44477/906 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - log/8/stdout906 2> log/8/stderr906 906: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 906 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind906 ../src/curl -q --output log/8/curl906.out --include --trace-ascii log/8/trace906 --trace-config all --trace-time smtp://127.0.0.1:44477/906 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - log/8/stdout906 2> log/8/stderr906 === End of file commands.log === Start of file server.cmd AUTH NTLM REPLY AUTH 334 NTLM supported REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 334 TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= 235 Authenticated Testnum 906 === End of file server.cmd === Start of file smtp_server.log 09:41:10.936356 SMTP server listens on port IPv4/44477 09:4CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind905 ../src/curl -q --output log/15/curl905.out --include --trace-ascii log/15/trace905 --trace-config all --trace-time smtp://127.0.0.1:36865/905 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/15/stdout905 2> log/15/stderr905 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind902 ../src/curl -q --output log/23/curl902.out --include --trace-ascii log/23/trace902 --trace-config all --trace-time smtp://127.0.0.1:37775/902 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/23/stdout902 2> log/23/stderr902 1:10.937335 logged pid 117877 in log/8/server/smtp_server.pid 09:41:10.937593 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.177037 Running IPv4 version 09:41:10.187946 Listening on port 44477 09:41:10.188641 Wrote pid 118471 to log/8/server/smtp_sockfilt.pid 09:41:10.189048 Wrote port 44477 to log/8/server/smtp_server.port 09:41:10.189255 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-906 mail body === End of file stdin-for-906 === Start of file valgrind906 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind906 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/15/server/smtp_server.pid" --logfile "log/15/smtp_server.log" --logdir "log/15" --portfile "log/15/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36865 (log/15/server/smtp_server.port) RUN: SMTP server is PID 117868 port 36865 * pid smtp => 117868 117868 test 0905...[SMTP CRAM-MD5 authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind905 ../src/curl -q --output log/15/curl905.out --include --trace-ascii log/15/trace905 --trace-config all --trace-time smtp://127.0.0.1:36865/905 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/15/stdout905 2> log/15/stderr905 905: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 905 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind905 ../src/curl -q --output log/15/curl905.out --include --trace-ascii log/15/trace905 --trace-config all --trace-time smtp://127.0.0.1:36865/905 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/15/stdout905 2> log/15/stderr905 === End of file commands.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH 334 PDE5NzIuOTg3NjU0MzIxQGN1cmw+ REPLY dXNlciA3MDMxNzI1NTk5ZmRiYjVkNDEyNjg5YWEzMjNlM2UwYg== 235 Authenticated Testnum 905 === End of file server.cmd === Start of file smtp_server.log 09:41:10.716100 SMTP server listens on port IPv4/36865 09:41:10.717064 logged pid 117868 in log/15/server/smtp_server.pid 09:41:10.717364 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.967342 Running IPv4 version 09:41:10.968023 Listening on port 36865 09:41:10.968427 Wrote pid 118270 to log/15/server/smtp_sockfilt.pid 09:41:10.968890 Wrote port 36865 to log/15/server/smtp_server.port 09:41:10.969052 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-905 mail body === End of file stdin-for-905 === Start of file valgrind905 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind905 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/22/server/smtp_server.pid" --logfile "log/22/smtp_server.log" --logdir "log/22" --portfile "log/22/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35885 (log/22/server/smtp_server.port) RUN: SMTP server is PID 117856 port 35885 * pid smtp => 117856 117856 test 0904...[SMTP login authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind904 ../src/curl -q --output log/22/curl904.out --include --trace-ascii log/22/trace904 --trace-config all --trace-time smtp://127.0.0.1:35885/904 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/22/stdout904 2> log/22/stderr904 904: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 904 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind904 ../src/curl -q --output log/22/curl904.out --include --trace-ascii log/22/trace904 --trace-config all --trace-time smtp://127.0.0.1:35885/904 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/22/stdout904 2> log/22/stderr904 === End of file commands.log === Start of file server.cmd AUTH LOGIN REPLY AUTH 334 VXNlcm5hbWU6 REPLY dXNlcg== 334 UGFzc3dvcmQ6 REPLY c2VjcmV0 235 Authenticated Testnum 904 === End of file server.cmd === Start of file smtp_server.log 09:41:10.620251 SMTP server listens on port IPv4/35885 09:41:10.621162 logged pid 117856 in log/22/server/smtp_server.pid 09:41:10.621421 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.871595 Running IPv4 version 09:41:10.872138 Listening on port 35885 09:41:10.872750 Wrote pid 118185 to logCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind910 ../src/curl -q --output log/41/curl910.out --include --trace-ascii log/41/trace910 --trace-config all --trace-time smtp://127.0.0.1:45065/910 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/41/stdout910 2> log/41/stderr910 /22/server/smtp_sockfilt.pid 09:41:10.873106 Wrote port 35885 to log/22/server/smtp_server.port 09:41:10.873260 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-904 mail body === End of file stdin-for-904 === Start of file valgrind904 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind904 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/23/server/smtp_server.pid" --logfile "log/23/smtp_server.log" --logdir "log/23" --portfile "log/23/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37775 (log/23/server/smtp_server.port) RUN: SMTP server is PID 117824 port 37775 * pid smtp => 117824 117824 test 0902...[RFC821-only SMTP server (EHLO not supported)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind902 ../src/curl -q --output log/23/curl902.out --include --trace-ascii log/23/trace902 --trace-config all --trace-time smtp://127.0.0.1:37775/902 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/23/stdout902 2> log/23/stderr902 902: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 902 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind902 ../src/curl -q --output log/23/curl902.out --include --trace-ascii log/23/trace902 --trace-config all --trace-time smtp://127.0.0.1:37775/902 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/23/stdout902 2> log/23/stderr902 === End of file commands.log === Start of file server.cmd REPLY EHLO 500 Command unrecognized Testnum 902 === End of file server.cmd === Start of file smtp_server.log 09:41:10.927108 SMTP server listens on port IPv4/37775 09:41:10.931156 logged pid 117824 in log/23/server/smtp_server.pid 09:41:10.931445 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.178415 Running IPv4 version 09:41:10.179084 Listening on port 37775 09:41:10.179574 Wrote pid 118479 to log/23/server/smtp_sockfilt.pid 09:41:10.179927 Wrote port 37775 to log/23/server/smtp_server.port 09:41:10.180090 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-902 From: different To: another body === End of file stdin-for-902 === Start of file valgrind902 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind902 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/41/server/smtp_server.pid" --logfile "log/41/smtp_server.log" --logdir "log/41" --portfile "log/41/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45065 (log/41/server/smtp_server.port) RUN: SMTP server is PID 117946 port 45065 * pid smtp => 117946 117946 test 0910...[SMTP without terminating CRLF] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind910 ../src/curl -q --output log/41/curl910.out --include --trace-ascii log/41/trace910 --trace-config all --trace-time smtp://127.0.0.1:45065/910 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/41/stdout910 2> log/41/stderr910 910: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 910 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind910 ../src/curl -q --output log/41/curl910.out --include --trace-ascii log/41/trace910 --trace-config all --trace-time smtp://127.0.0.1:45065/910 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/41/stdout910 2> log/41/stderr910 === End of file commands.log === Start of file server.cmd Testnum 910 === End of file server.cmd === Start of file smtp_server.log 09:41:11.052252 SMTP server listens on port IPv4/45065 09:41:11.053251 logged pid 117946 in log/41/server/smtp_server.pid 09:41:11.053521 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.293573 Running IPv4 version 09:41:11.294273 Listening on port 45065 09:41:11.302983 Wrote pid 118552 to log/41/server/smtp_sockfilt.pid 09:41:11.303371 Wrote port 45065 to log/41/server/smtp_server.port 09:41:11.303645 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-910 From: different To: another body === End of file stdin-for-910 === Start of file valgrind910 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test971.pl /build/curl/src/curl/tests/../docs/options-in-versions /build/curl/src/curl/tests/../docs/cmdline-opts /build/curl/src/curl/tests/../docs/VERSIONS.md > log/44/stdout971 2> log/44/stderr971 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind908 ../src/curl -q --output log/11/curl908.out --include --trace-ascii log/11/trace908 --trace-config all --trace-time smtp://127.0.0.1:45713/908 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/11/stdout908 2> log/11/stderr908 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind903 ../src/curl -q --output log/12/curl903.out --include --trace-ascii log/12/trace903 --trace-config all --trace-time smtp://127.0.0.1:40489/903 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/12/stdout903 2> log/12/stderr903 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind901 ../src/curl -q --output log/20/curl901.out --include --trace-ascii log/20/trace901 --trace-config all --trace-time smtp://127.0.0.1:32951/901 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/20/stdout901 2> log/20/stderr901 valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind910 * starts no server test 0971...[Verify that options-in-versions and docs/cmdline-opts are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test971.pl /build/curl/src/curl/tests/../docs/options-in-versions /build/curl/src/curl/tests/../docs/cmdline-opts /build/curl/src/curl/tests/../docs/VERSIONS.md > log/44/stdout971 2> log/44/stderr971 valgrind SKIPPED -r-----e--- OK (890 out of 1707, remaining: 00:42, took 0.316s, duration: 00:46) startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/11/server/smtp_server.pid" --logfile "log/11/smtp_server.log" --logdir "log/11" --portfile "log/11/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45713 (log/11/server/smtp_server.port) RUN: SMTP server is PID 117887 port 45713 * pid smtp => 117887 117887 test 0908...[SMTP OAuth 2.0 (XOAUTH2) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind908 ../src/curl -q --output log/11/curl908.out --include --trace-ascii log/11/trace908 --trace-config all --trace-time smtp://127.0.0.1:45713/908 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/11/stdout908 2> log/11/stderr908 908: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 908 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind908 ../src/curl -q --output log/11/curl908.out --include --trace-ascii log/11/trace908 --trace-config all --trace-time smtp://127.0.0.1:45713/908 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/11/stdout908 2> log/11/stderr908 === End of file commands.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH 334 XOAUTH2 supported REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB 235 Authenticated Testnum 908 === End of file server.cmd === Start of file smtp_server.log 09:41:10.719259 SMTP server listens on port IPv4/45713 09:41:10.720480 logged pid 117887 in log/11/server/smtp_server.pid 09:41:10.721026 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.964723 Running IPv4 version 09:41:10.965273 Listening on port 45713 09:41:10.970629 Wrote pid 118252 to log/11/server/smtp_sockfilt.pid 09:41:10.971025 Wrote port 45713 to log/11/server/smtp_server.port 09:41:10.971217 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-908 mail body === End of file stdin-for-908 === Start of file valgrind908 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind908 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/12/server/smtp_server.pid" --logfile "log/12/smtp_server.log" --logdir "log/12" --portfile "log/12/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40489 (log/12/server/smtp_server.port) RUN: SMTP server is PID 117844 port 40489 * pid smtp => 117844 117844 test 0903...[SMTP plain authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind903 ../src/curl -q --output log/12/curl903.out --include --trace-ascii log/12/trace903 --trace-config all --trace-time smtp://127.0.0.1:40489/903 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/12/stdout903 2> log/12/stderr903 903: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 903 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind903 ../src/curl -q --output log/12/curl903.out --include --trace-ascii log/12/trace903 --trace-config all --trace-time smtp://127.0.0.1:40489/903 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/12/stdout903 2> log/12/stderr903 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 334 PLAIN supported REPLY AHVzZXIAc2VjcmV0 235 Authenticated Testnum 903 === End of file server.cmd === Start of file smtp_server.log 09:41:10.713084 SMTP server listens on port IPv4/40489 09:41:10.714046 logged pid 117844 in log/12/server/smtp_server.pid 09:41:10.714386 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.964089 Running IPv4 version 09:41:10.964808 Listening on port 40489 09:41:10.965262 Wrote pid 118265 to log/12/server/smtp_sockfilt.pid 09:41:10.965737 Wrote port 40489 to log/12/server/smtp_server.port 09:41:10.965920 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-903 mail body === End of file stdin-for-903 === Start ofCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind909 ../src/curl -q --output log/10/curl909.out --include --trace-ascii log/10/trace909 --trace-config all --trace-time smtp://127.0.0.1:36245/909 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/10/test909.eml > log/10/stdout909 2> log/10/stderr909 file valgrind903 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind903 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/20/server/smtp_server.pid" --logfile "log/20/smtp_server.log" --logdir "log/20" --portfile "log/20/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 32951 (log/20/server/smtp_server.port) RUN: SMTP server is PID 117803 port 32951 * pid smtp => 117803 117803 test 0901...[SMTP with CRLF-dot-CRLF in data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind901 ../src/curl -q --output log/20/curl901.out --include --trace-ascii log/20/trace901 --trace-config all --trace-time smtp://127.0.0.1:32951/901 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/20/stdout901 2> log/20/stderr901 901: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 901 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind901 ../src/curl -q --output log/20/curl901.out --include --trace-ascii log/20/trace901 --trace-config all --trace-time smtp://127.0.0.1:32951/901 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/20/stdout901 2> log/20/stderr901 === End of file commands.log === Start of file server.cmd Testnum 901 === End of file server.cmd === Start of file smtp_server.log 09:41:10.947706 SMTP server listens on port IPv4/32951 09:41:10.948614 logged pid 117803 in log/20/server/smtp_server.pid 09:41:10.948945 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.198070 Running IPv4 version 09:41:10.198745 Listening on port 32951 09:41:10.199160 Wrote pid 118501 to log/20/server/smtp_sockfilt.pid 09:41:10.200525 Wrote port 32951 to log/20/server/smtp_server.port 09:41:10.200741 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-901 From: different To: another . . . body === End of file stdin-for-901 === Start of file valgrind901 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind901 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/10/server/smtp_server.pid" --logfile "log/10/smtp_server.log" --logdir "log/10" --portfile "log/10/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36245 (log/10/server/smtp_server.port) RUN: SMTP server is PID 117934 port 36245 * pid smtp => 117934 117934 test 0909...[SMTP without SIZE support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind909 ../src/curl -q --output log/10/curl909.out --include --trace-ascii log/10/trace909 --trace-config all --trace-time smtp://127.0.0.1:36245/909 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/10/test909.eml > log/10/stdout909 2> log/10/stderr909 909: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 909 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind909 ../src/curl -q --output log/10/curl909.out --include --trace-ascii log/10/trace909 --trace-config all --trace-time smtp://127.0.0.1:36245/909 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/10/test909.eml > log/10/stdout909 2> log/10/stderr909 === End of file commands.log === Start of file server.cmd Testnum 909 === End of file server.cmd === Start of file smtp_server.log 09:41:11.011592 SMTP server listens on port IPv4/36245 09:41:11.012672 logged pid 117934 in log/10/server/smtp_server.pid 09:41:11.013063 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.262780 Running IPv4 version 09:41:11.263354 Listening on port 36245 09:41:11.263882 Wrote pid 118545 to log/10/server/smtp_sockfilt.pid 09:41:11.264335 Wrote port 36245 to log/10/server/smtp_server.port 09:41:11.264594 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file test909.eml From: different To: another body === End of file test909.eml === Start of file valgrind909 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind916 ../src/curl -q --output log/1/curl916.out --include --trace-ascii log/1/trace916 --trace-config all --trace-time smtp://127.0.0.1:46001/916 --mail-rcpt invalid --mail-from sender@example.com -T - log/1/stdout916 2> log/1/stderr916 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind913 ../src/curl -q --output log/6/curl913.out --include --trace-ascii log/6/trace913 --trace-config all --trace-time smtp://127.0.0.1:45861/913 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/6/test913.eml > log/6/stdout913 2> log/6/stderr913 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind911 ../src/curl -q --output log/7/curl911.out --include --trace-ascii log/7/trace911 --trace-config all --trace-time smtp://127.0.0.1:42513/911 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/7/stdout911 2> log/7/stderr911 : Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind909 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/1/server/smtp_server.pid" --logfile "log/1/smtp_server.log" --logdir "log/1" --portfile "log/1/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46001 (log/1/server/smtp_server.port) RUN: SMTP server is PID 118062 port 46001 * pid smtp => 118062 118062 test 0916...[SMTP with invalid --mail-rcpt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind916 ../src/curl -q --output log/1/curl916.out --include --trace-ascii log/1/trace916 --trace-config all --trace-time smtp://127.0.0.1:46001/916 --mail-rcpt invalid --mail-from sender@example.com -T - log/1/stdout916 2> log/1/stderr916 916: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 916 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind916 ../src/curl -q --output log/1/curl916.out --include --trace-ascii log/1/trace916 --trace-config all --trace-time smtp://127.0.0.1:46001/916 --mail-rcpt invalid --mail-from sender@example.com -T - log/1/stdout916 2> log/1/stderr916 === End of file commands.log === Start of file server.cmd Testnum 916 === End of file server.cmd === Start of file smtp_server.log 09:41:10.825189 SMTP server listens on port IPv4/46001 09:41:10.826170 logged pid 118062 in log/1/server/smtp_server.pid 09:41:10.826408 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.076549 Running IPv4 version 09:41:10.077205 Listening on port 46001 09:41:10.077685 Wrote pid 118368 to log/1/server/smtp_sockfilt.pid 09:41:10.077998 Wrote port 46001 to log/1/server/smtp_server.port 09:41:10.078166 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-916 From: different To: another body === End of file stdin-for-916 === Start of file valgrind916 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind916 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/smtp_server.pid" --logfile "log/6/smtp_server.log" --logdir "log/6" --portfile "log/6/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45861 (log/6/server/smtp_server.port) RUN: SMTP server is PID 118018 port 45861 * pid smtp => 118018 118018 test 0913...[SMTP with large message SIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind913 ../src/curl -q --output log/6/curl913.out --include --trace-ascii log/6/trace913 --trace-config all --trace-time smtp://127.0.0.1:45861/913 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/6/test913.eml > log/6/stdout913 2> log/6/stderr913 913: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 913 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind913 ../src/curl -q --output log/6/curl913.out --include --trace-ascii log/6/trace913 --trace-config all --trace-time smtp://127.0.0.1:45861/913 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/6/test913.eml > log/6/stdout913 2> log/6/stderr913 === End of file commands.log === Start of file server.cmd CAPA "SIZE 32" Testnum 913 === End of file server.cmd === Start of file smtp_server.log 09:41:10.961597 SMTP server listens on port IPv4/45861 09:41:10.962877 logged pid 118018 in log/6/server/smtp_server.pid 09:41:10.963242 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.213131 Running IPv4 version 09:41:10.213807 Listening on port 45861 09:41:10.214181 Wrote pid 118511 to log/6/server/smtp_sockfilt.pid 09:41:10.214557 Wrote port 45861 to log/6/server/smtp_server.port 09:41:10.214727 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file test913.eml From: different To: another body === End of file test913.eml === Start of file valgrind913 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debugCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind915 ../src/curl -q --output log/37/curl915.out --include --trace-ascii log/37/trace915 --trace-config all --trace-time smtp://127.0.0.1:38197/915 --mail-rcpt recipient@example.com -T - log/37/stdout915 2> log/37/stderr915 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind922 ../src/curl -q --output log/25/curl922.out --include --trace-ascii log/25/trace922 --trace-config all --trace-time smtp://127.0.0.1:45315/922 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/25/stdout922 2> log/25/stderr922 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind930 ../src/curl -q --output log/42/curl930.out --include --trace-ascii log/42/trace930 --trace-config all --trace-time smtp://127.0.0.1:34355/930 -X RSET -I > log/42/stdout930 2> log/42/stderr930 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind929 ../src/curl -q --output log/34/curl929.out --include --trace-ascii log/34/trace929 --trace-config all --trace-time smtp://127.0.0.1:36807/929 -X NOOP -I > log/34/stdout929 2> log/34/stderr929 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind923 ../src/curl -q --output log/16/curl923.out --include --trace-ascii log/16/trace923 --trace-config all --trace-time smtp://127.0.0.1:42915/923 --mail-rcpt recipient > log/16/stdout923 2> log/16/stderr923 info valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind913 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/7/server/smtp_server.pid" --logfile "log/7/smtp_server.log" --logdir "log/7" --portfile "log/7/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42513 (log/7/server/smtp_server.port) RUN: SMTP server is PID 117937 port 42513 * pid smtp => 117937 117937 test 0911...[SMTP with no mail data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind911 ../src/curl -q --output log/7/curl911.out --include --trace-ascii log/7/trace911 --trace-config all --trace-time smtp://127.0.0.1:42513/911 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/7/stdout911 2> log/7/stderr911 911: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 911 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind911 ../src/curl -q --output log/7/curl911.out --include --trace-ascii log/7/trace911 --trace-config all --trace-time smtp://127.0.0.1:42513/911 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/7/stdout911 2> log/7/stderr911 === End of file commands.log === Start of file server.cmd Testnum 911 === End of file server.cmd === Start of file smtp_server.log 09:41:10.758303 SMTP server listens on port IPv4/42513 09:41:10.759878 logged pid 117937 in log/7/server/smtp_server.pid 09:41:10.760201 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.006111 Running IPv4 version 09:41:10.006839 Listening on port 42513 09:41:10.007295 Wrote pid 118294 to log/7/server/smtp_sockfilt.pid 09:41:10.008836 Wrote port 42513 to log/7/server/smtp_server.port 09:41:10.009029 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind911 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind911 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/57/server/ssh_server.pid" --logdir "log/57" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 35109 startnew: child process has died, server might start up RUN: failed to start the SSH server on 35109 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/37/server/smtp_server.pid" --logfile "log/37/smtp_server.log" --logdir "log/37" --portfile "log/37/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38197 (log/37/server/smtp_server.port) RUN: SMTP server is PID 118052 port 38197 * pid smtp => 118052 118052 test 0915...[SMTP without --mail-from] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind915 ../src/curl -q --output log/37/curl915.out --include --trace-ascii log/37/trace915 --trace-config all --trace-time smtp://127.0.0.1:38197/915 --mail-rcpt recipient@example.com -T - log/37/stdout915 2> log/37/stderr915 915: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 915 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind915 ../src/curl -q --output log/37/curl915.out --include --trace-ascii log/37/trace915 --trace-config all --trace-time smtp://127.0.0.1:38197/915 --mail-rcpt recipient@example.com -T - log/37/stdout915 2> log/37/stderr915 === End of file commands.log === Start of file server.cmd Testnum 915 === End of file server.cmd === Start of file smtp_server.log 09:41:10.854618 SMTP server listens on port IPv4/38197 09:41:10.855698 logged pid 118052 in log/37/server/smtp_server.pid 09:41:10.856064 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.104750 Running IPv4 version 09:41:10.105309 Listening on port 38197 09:41:10.107017 Wrote pid 118403 to log/37/server/smtp_sockfilt.pid 09:41:10.107354 Wrote port 38197 to log/37/server/smtp_server.port 09:41:10.107595 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-915 From: different To: another body === End of file stdin-for-915 === Start of file valgrind915 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind915 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind924 ../src/curl -q --output log/58/curl924.out --include --trace-ascii log/58/trace924 --trace-config all --trace-time smtp://127.0.0.1:45507/924 --mail-rcpt smith > log/58/stdout924 2> log/58/stderr924 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind926 ../src/curl -q --output log/55/curl926.out --include --trace-ascii log/55/trace926 --trace-config all --trace-time smtp://127.0.0.1:34681/926 --mail-rcpt recipient > log/55/stdout926 2> log/55/stderr926 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind952 ../src/curl -q --output log/19/curl952.out --include --trace-ascii log/19/trace952 --trace-config all --trace-time smtp://127.0.0.1:36369/952 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/19/stdout952 2> log/19/stderr952 ile "log/16/server/smtp_server.pid" --logfile "log/16/smtp_server.log" --logdir "log/16" --portfile "log/16/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42915 (log/16/server/smtp_server.port) RUN: SMTP server is PID 118124 port 42915 * pid smtp => 118124 118124 test 0923...[SMTP VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind923 ../src/curl -q --output log/16/curl923.out --include --trace-ascii log/16/trace923 --trace-config all --trace-time smtp://127.0.0.1:42915/923 --mail-rcpt recipient > log/16/stdout923 2> log/16/stderr923 923: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 923 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind923 ../src/curl -q --output log/16/curl923.out --include --trace-ascii log/16/trace923 --trace-config all --trace-time smtp://127.0.0.1:42915/923 --mail-rcpt recipient > log/16/stdout923 2> log/16/stderr923 === End of file commands.log === Start of file server.cmd Testnum 923 === End of file server.cmd === Start of file smtp_server.log 09:41:10.994875 SMTP server listens on port IPv4/42915 09:41:10.996069 logged pid 118124 in log/16/server/smtp_server.pid 09:41:10.996413 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.245593 Running IPv4 version 09:41:10.246445 Listening on port 42915 09:41:10.247029 Wrote pid 118539 to log/16/server/smtp_sockfilt.pid 09:41:10.247442 Wrote port 42915 to log/16/server/smtp_server.port 09:41:10.247747 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind923 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind923 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/25/server/smtp_server.pid" --logfile "log/25/smtp_server.log" --logdir "log/25" --portfile "log/25/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45315 (log/25/server/smtp_server.port) RUN: SMTP server is PID 118108 port 45315 * pid smtp => 118108 118108 test 0922...[SMTP OAuth 2.0 (XOAUTH2) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind922 ../src/curl -q --output log/25/curl922.out --include --trace-ascii log/25/trace922 --trace-config all --trace-time smtp://127.0.0.1:45315/922 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/25/stdout922 2> log/25/stderr922 922: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 922 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind922 ../src/curl -q --output log/25/curl922.out --include --trace-ascii log/25/trace922 --trace-config all --trace-time smtp://127.0.0.1:45315/922 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/25/stdout922 2> log/25/stderr922 === End of file commands.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH 235 Authenticated Testnum 922 === End of file server.cmd === Start of file smtp_server.log 09:41:10.936291 SMTP server listens on port IPv4/45315 09:41:10.937210 logged pid 118108 in log/25/server/smtp_server.pid 09:41:10.937450 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.187715 Running IPv4 version 09:41:10.188208 Listening on port 45315 09:41:10.188708 Wrote pid 118489 to log/25/server/smtp_sockfilt.pid 09:41:10.189070 Wrote port 45315 to log/25/server/smtp_server.port 09:41:10.189237 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-922 mail body === End of file stdin-for-922 === Start of file valgrind922 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind922 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/34/server/smtp_server.pid" --logfile "log/34/smtp_server.log" --logdir "log/34" --portfile "log/34/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36807 (log/34/server/smtp_server.port) RUN: SMTP server is PID 118257 port 36807 * pid smtp => 118257 118257 test 0929...[SMTP NOOP (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind929 ../src/curl -q --output log/34/curl929.out --include --traCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind925 ../src/curl -q --output log/63/curl925.out --include --trace-ascii log/63/trace925 --trace-config all --trace-time smtp://127.0.0.1:37683/925 --mail-rcpt user@example.net > log/63/stdout925 2> log/63/stderr925 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind912 ../src/curl -q --output log/3/curl912.out --include --trace-ascii log/3/trace912 --trace-config all --trace-time smtp://127.0.0.1:33315/912 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/3/test912.eml > log/3/stdout912 2> log/3/stderr912 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind919 ../src/curl -q --output log/29/curl919.out --include --trace-ascii log/29/trace919 --trace-config all --trace-time smtp://127.0.0.1:41249/919 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/29/stdout919 2> log/29/stderr919 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind931 ../src/curl -q --output log/40/curl931.out --include --trace-ascii log/40/trace931 --trace-config all --trace-time smtp://127.0.0.1:41163/%0d%0a/931 > log/40/stdout931 2> log/40/stderr931 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind933 ../src/curl -q --output log/21/curl933.out --include --trace-ascii log/21/trace933 --trace-config all --trace-time smtp://127.0.0.1:34315/933 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - > log/21/stdout933 2> log/21/stderr933 ce-ascii log/34/trace929 --trace-config all --trace-time smtp://127.0.0.1:36807/929 -X NOOP -I > log/34/stdout929 2> log/34/stderr929 929: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 929 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind929 ../src/curl -q --output log/34/curl929.out --include --trace-ascii log/34/trace929 --trace-config all --trace-time smtp://127.0.0.1:36807/929 -X NOOP -I > log/34/stdout929 2> log/34/stderr929 === End of file commands.log === Start of file server.cmd Testnum 929 === End of file server.cmd === Start of file smtp_server.log 09:41:11.212325 SMTP server listens on port IPv4/36807 09:41:11.213333 logged pid 118257 in log/34/server/smtp_server.pid 09:41:11.213563 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.463841 Running IPv4 version 09:41:11.464336 Listening on port 36807 09:41:11.464888 Wrote pid 118660 to log/34/server/smtp_sockfilt.pid 09:41:11.465212 Wrote port 36807 to log/34/server/smtp_server.port 09:41:11.465357 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind929 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind929 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/42/server/smtp_server.pid" --logfile "log/42/smtp_server.log" --logdir "log/42" --portfile "log/42/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34355 (log/42/server/smtp_server.port) RUN: SMTP server is PID 118258 port 34355 * pid smtp => 118258 118258 test 0930...[SMTP RSET (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind930 ../src/curl -q --output log/42/curl930.out --include --trace-ascii log/42/trace930 --trace-config all --trace-time smtp://127.0.0.1:34355/930 -X RSET -I > log/42/stdout930 2> log/42/stderr930 930: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 930 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind930 ../src/curl -q --output log/42/curl930.out --include --trace-ascii log/42/trace930 --trace-config all --trace-time smtp://127.0.0.1:34355/930 -X RSET -I > log/42/stdout930 2> log/42/stderr930 === End of file commands.log === Start of file server.cmd Testnum 930 === End of file server.cmd === Start of file smtp_server.log 09:41:11.251667 SMTP server listens on port IPv4/34355 09:41:11.253114 logged pid 118258 in log/42/server/smtp_server.pid 09:41:11.253414 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.501816 Running IPv4 version 09:41:11.502586 Listening on port 34355 09:41:11.503005 Wrote pid 118691 to log/42/server/smtp_sockfilt.pid 09:41:11.503376 Wrote port 34355 to log/42/server/smtp_server.port 09:41:11.504311 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind930 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind930 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/smtp_server.pid" --logfile "log/3/smtp_server.log" --logdir "log/3" --portfile "log/3/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33315 (log/3/server/smtp_server.port) RUN: SMTP server is PID 117955 port 33315 * pid smtp => 117955 117955 test 0912...[SMTP with SIZE support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind912 ../src/curl -q --output log/3/curl912.out --include --trace-ascii log/3/trace912 --trace-config all --trace-time smtp://127.0.0.1:33315/912 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/3/test912.eml > log/3/stdout912 2> log/3/stderr912 912: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 912 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind912 ../src/curl -q --output log/3/curl912.out --include --trace-ascii log/3/trace912 --trace-config all --trace-time smtp://127.0.0.1:33315/912 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/3/test912.eml > log/3/stdout912 2> log/3/stderr912 === End of file commands.log === Start of file server.cmd CAPA SIZE Testnum 912 === End of file server.cmd === Start of file smtp_server.log 09:41:11.105007 SMTP server listens on port IPv4CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind942 ../src/curl -q --output log/5/curl942.out --include --trace-ascii log/5/trace942 --trace-config all --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:46865/942' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/5/stdout942 2> log/5/stderr942 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind939 ../src/curl -q --output log/50/curl939.out --include --trace-ascii log/50/trace939 --trace-config all --trace-time smtp://127.0.0.1:33881/939 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/50/stdout939 2> log/50/stderr939 /33315 09:41:11.106010 logged pid 117955 in log/3/server/smtp_server.pid 09:41:11.106277 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.356335 Running IPv4 version 09:41:11.356995 Listening on port 33315 09:41:11.357408 Wrote pid 118601 to log/3/server/smtp_sockfilt.pid 09:41:11.357856 Wrote port 33315 to log/3/server/smtp_server.port 09:41:11.358021 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file test912.eml From: different To: another body === End of file test912.eml === Start of file valgrind912 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind912 test 0952...[SMTP data with single dot-only line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind952 ../src/curl -q --output log/19/curl952.out --include --trace-ascii log/19/trace952 --trace-config all --trace-time smtp://127.0.0.1:36369/952 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/19/stdout952 2> log/19/stderr952 952: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 952 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind952 ../src/curl -q --output log/19/curl952.out --include --trace-ascii log/19/trace952 --trace-config all --trace-time smtp://127.0.0.1:36369/952 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/19/stdout952 2> log/19/stderr952 === End of file commands.log === Start of file server.cmd Testnum 952 === End of file server.cmd === Start of file smtp_server.log 09:41:11.558903 ====> Client connect 09:41:11.560665 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:11.569669 < "EHLO verifiedserver" 09:41:11.571941 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:11.576031 < "HELP" 09:41:11.576554 > "214 WE ROOLZ: 106059[CR][LF]" 09:41:11.579550 return proof we are we 09:41:11.581566 < "QUIT" 09:41:11.583190 > "221 curl ESMTP server signing off[CR][LF]" 09:41:11.587407 MAIN sockfilt said DISC 09:41:11.588446 ====> Client disconnected 09:41:11.589097 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.800669 ====> Client connect 09:41:11.819596 Received DATA (on stdin) 09:41:11.819861 > 160 bytes data, server => client 09:41:11.820015 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:11.820274 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:11.820385 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:11.821876 < 21 bytes data, client => server 09:41:11.822061 'EHLO verifiedserver\r\n' 09:41:11.826079 Received DATA (on stdin) 09:41:11.826235 > 53 bytes data, server => client 09:41:11.826322 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:11.828810 < 6 bytes data, client => server 09:41:11.828975 'HELP\r\n' 09:41:11.832609 Received DATA (on stdin) 09:41:11.832771 > 22 bytes data, server => client 09:41:11.832861 '214 WE ROOLZ: 106059\r\n' 09:41:11.834524 < 6 bytes data, client => server 09:41:11.834684 'QUIT\r\n' 09:41:11.835691 Received DATA (on stdin) 09:41:11.835881 > 35 bytes data, server => client 09:41:11.837308 '221 curl ESMTP server signing off\r\n' 09:41:11.840660 ====> Client disconnect 09:41:11.841602 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-952 . === End of file stdin-for-952 === Start of file valgrind952 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind952 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/21/server/smtp_server.pid" --logfile "log/21/smtp_server.log" --logdir "log/21" --portfile "log/21/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34315 (log/21/server/smtp_server.port) RUN: SMTP server is PID 118299 port 34315 * pid smtp => 118299 118299 test 0933...[SMTP NTLM graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind933 ../src/curl -q --output log/21/curl933.out --include --trace-ascii log/21/trace933 --trace-config all --trace-time smtp://127.0.0.1:34315/933 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - > log/21/stdout933 2> log/21/stderr933 933: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 933 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind933 ../src/curl -q --output log/21/curl933.outCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind943 ../src/curl -q --output log/59/curl943.out --include --trace-ascii log/59/trace943 --trace-config all --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:40603/943' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/59/stdout943 2> log/59/stderr943 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind927 ../src/curl -q --output log/35/curl927.out --include --trace-ascii log/35/trace927 --trace-config all --trace-time smtp://127.0.0.1:42553/927 --mail-rcpt Friends -X EXPN > log/35/stdout927 2> log/35/stderr927 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind918 ../src/curl -q --output log/27/curl918.out --include --trace-ascii log/27/trace918 --trace-config all --trace-time smtp://127.0.0.1:40553/918 --mail-rcpt recipient.one@example.com --mail-rcpt invalid --mail-rcpt recipient.three@example.com --mail-rcpt sTrAnGe --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/27/stdout918 2> log/27/stderr918 --include --trace-ascii log/21/trace933 --trace-config all --trace-time smtp://127.0.0.1:34315/933 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - > log/21/stdout933 2> log/21/stderr933 === End of file commands.log === Start of file server.cmd AUTH NTLM REPLY AUTH 334 NTLM supported REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 334 Rubbish REPLY * 501 AUTH exchange cancelled by client Testnum 933 === End of file server.cmd === Start of file smtp_server.log 09:41:11.282242 SMTP server listens on port IPv4/34315 09:41:11.283306 logged pid 118299 in log/21/server/smtp_server.pid 09:41:11.283579 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.530712 Running IPv4 version 09:41:11.531308 Listening on port 34315 09:41:11.531857 Wrote pid 118706 to log/21/server/smtp_sockfilt.pid 09:41:11.532219 Wrote port 34315 to log/21/server/smtp_server.port 09:41:11.532378 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind933 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind933 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/29/server/smtp_server.pid" --logfile "log/29/smtp_server.log" --logdir "log/29" --portfile "log/29/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41249 (log/29/server/smtp_server.port) RUN: SMTP server is PID 118082 port 41249 * pid smtp => 118082 118082 test 0919...[SMTP plain authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind919 ../src/curl -q --output log/29/curl919.out --include --trace-ascii log/29/trace919 --trace-config all --trace-time smtp://127.0.0.1:41249/919 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/29/stdout919 2> log/29/stderr919 919: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 919 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind919 ../src/curl -q --output log/29/curl919.out --include --trace-ascii log/29/trace919 --trace-config all --trace-time smtp://127.0.0.1:41249/919 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/29/stdout919 2> log/29/stderr919 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 235 Authenticated Testnum 919 === End of file server.cmd === Start of file smtp_server.log 09:41:10.893200 SMTP server listens on port IPv4/41249 09:41:10.894295 logged pid 118082 in log/29/server/smtp_server.pid 09:41:10.894588 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.143805 Running IPv4 version 09:41:10.144581 Listening on port 41249 09:41:10.145124 Wrote pid 118451 to log/29/server/smtp_sockfilt.pid 09:41:10.145591 Wrote port 41249 to log/29/server/smtp_server.port 09:41:10.145826 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-919 mail body === End of file stdin-for-919 === Start of file valgrind919 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind919 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/40/server/smtp_server.pid" --logfile "log/40/smtp_server.log" --logdir "log/40" --portfile "log/40/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41163 (log/40/server/smtp_server.port) RUN: SMTP server is PID 118283 port 41163 * pid smtp => 118283 118283 test 0931...[SMTP with URL-encoded CR LF in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind931 ../src/curl -q --output log/40/curl931.out --include --trace-ascii log/40/trace931 --trace-config all --trace-time smtp://127.0.0.1:41163/%0d%0a/931 > log/40/stdout931 2> log/40/stderr931 curl returned 1, when expecting 3 931: exit FAILED == Contents of files in the log/40/ dir after test 931 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind931 ../src/curl -q --output log/40/curl931.out --include --trace-ascii log/40/trace931 --trace-config all --trace-time smtp://127.0.0.1:41163/%0d%0a/931 > log/40/stdout931 2> log/40/stderr931 === End of file commands.log === Start of file server.cmd Testnum 931 === End of file server.cmd === Start of file smtp_server.log 09:41:11.198630 SMTP server listens on port IPv4/41163 09:41:11.199667 logged pid 118283 in log/40/server/smtp_server.pid 09:41:11.200008 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.443699 Running IPv4 version 09:41:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind928 ../src/curl -q --output log/64/curl928.out --include --trace-ascii log/64/trace928 --trace-config all --trace-time smtp://127.0.0.1:42037/928 > log/64/stdout928 2> log/64/stderr928 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind914 ../src/curl -q --output log/2/curl914.out --include --trace-ascii log/2/trace914 --trace-config all --trace-time smtp://127.0.0.1:39321/914 --mail-rcpt recipient@example.com --mail-from invalid -T log/2/test914.eml > log/2/stdout914 2> log/2/stderr914 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind940 ../src/curl -q --output log/48/curl940.out --include --trace-ascii log/48/trace940 --trace-config all --trace-time smtp://127.0.0.1:37993/940 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/48/stdout940 2> log/48/stderr940 11.445299 Listening on port 41163 09:41:11.450024 Wrote pid 118638 to log/40/server/smtp_sockfilt.pid 09:41:11.450939 Wrote port 41163 to log/40/server/smtp_server.port 09:41:11.451589 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind931 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind931 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/55/server/smtp_server.pid" --logfile "log/55/smtp_server.log" --logdir "log/55" --portfile "log/55/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34681 (log/55/server/smtp_server.port) RUN: SMTP server is PID 118182 port 34681 * pid smtp => 118182 118182 test 0926...[SMTP unknown user VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind926 ../src/curl -q --output log/55/curl926.out --include --trace-ascii log/55/trace926 --trace-config all --trace-time smtp://127.0.0.1:34681/926 --mail-rcpt recipient > log/55/stdout926 2> log/55/stderr926 926: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 926 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind926 ../src/curl -q --output log/55/curl926.out --include --trace-ascii log/55/trace926 --trace-config all --trace-time smtp://127.0.0.1:34681/926 --mail-rcpt recipient > log/55/stdout926 2> log/55/stderr926 === End of file commands.log === Start of file server.cmd REPLY VRFY 550 Unknown user Testnum 926 === End of file server.cmd === Start of file smtp_server.log 09:41:11.355494 SMTP server listens on port IPv4/34681 09:41:11.356541 logged pid 118182 in log/55/server/smtp_server.pid 09:41:11.356919 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.598319 Running IPv4 version 09:41:11.599037 Listening on port 34681 09:41:11.607722 Wrote pid 118743 to log/55/server/smtp_sockfilt.pid 09:41:11.608105 Wrote port 34681 to log/55/server/smtp_server.port 09:41:11.608296 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind926 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind926 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/58/server/smtp_server.pid" --logfile "log/58/smtp_server.log" --logdir "log/58" --portfile "log/58/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45507 (log/58/server/smtp_server.port) RUN: SMTP server is PID 118129 port 45507 * pid smtp => 118129 118129 test 0924...[SMTP ambiguous VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind924 ../src/curl -q --output log/58/curl924.out --include --trace-ascii log/58/trace924 --trace-config all --trace-time smtp://127.0.0.1:45507/924 --mail-rcpt smith > log/58/stdout924 2> log/58/stderr924 924: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 924 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind924 ../src/curl -q --output log/58/curl924.out --include --trace-ascii log/58/trace924 --trace-config all --trace-time smtp://127.0.0.1:45507/924 --mail-rcpt smith > log/58/stdout924 2> log/58/stderr924 === End of file commands.log === Start of file server.cmd Testnum 924 === End of file server.cmd === Start of file smtp_server.log 09:41:10.988596 SMTP server listens on port IPv4/45507 09:41:10.989577 logged pid 118129 in log/58/server/smtp_server.pid 09:41:10.989926 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.239901 Running IPv4 version 09:41:10.240579 Listening on port 45507 09:41:10.241000 Wrote pid 118533 to log/58/server/smtp_sockfilt.pid 09:41:10.241330 Wrote port 45507 to log/58/server/smtp_server.port 09:41:10.241581 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind924 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a nonCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind917 ../src/curl -q --output log/38/curl917.out --include --trace-ascii log/38/trace917 --trace-config all --trace-time smtp://127.0.0.1:45017/917 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/38/stdout917 2> log/38/stderr917 - valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind924 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/63/server/smtp_server.pid" --logfile "log/63/smtp_server.log" --logdir "log/63" --portfile "log/63/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37683 (log/63/server/smtp_server.port) RUN: SMTP server is PID 118163 port 37683 * pid smtp => 118163 118163 test 0925...[SMTP external VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind925 ../src/curl -q --output log/63/curl925.out --include --trace-ascii log/63/trace925 --trace-config all --trace-time smtp://127.0.0.1:37683/925 --mail-rcpt user@example.net > log/63/stdout925 2> log/63/stderr925 925: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 925 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind925 ../src/curl -q --output log/63/curl925.out --include --trace-ascii log/63/trace925 --trace-config all --trace-time smtp://127.0.0.1:37683/925 --mail-rcpt user@example.net > log/63/stdout925 2> log/63/stderr925 === End of file commands.log === Start of file server.cmd Testnum 925 === End of file server.cmd === Start of file smtp_server.log 09:41:11.295530 SMTP server listens on port IPv4/37683 09:41:11.296539 logged pid 118163 in log/63/server/smtp_server.pid 09:41:11.296905 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.546680 Running IPv4 version 09:41:11.547362 Listening on port 37683 09:41:11.547881 Wrote pid 118721 to log/63/server/smtp_sockfilt.pid 09:41:11.548205 Wrote port 37683 to log/63/server/smtp_server.port 09:41:11.548372 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind925 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind925 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/2/server/smtp_server.pid" --logfile "log/2/smtp_server.log" --logdir "log/2" --portfile "log/2/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39321 (log/2/server/smtp_server.port) RUN: SMTP server is PID 118024 port 39321 * pid smtp => 118024 118024 test 0914...[SMTP invalid --mail-from] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind914 ../src/curl -q --output log/2/curl914.out --include --trace-ascii log/2/trace914 --trace-config all --trace-time smtp://127.0.0.1:39321/914 --mail-rcpt recipient@example.com --mail-from invalid -T log/2/test914.eml > log/2/stdout914 2> log/2/stderr914 914: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 914 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind914 ../src/curl -q --output log/2/curl914.out --include --trace-ascii log/2/trace914 --trace-config all --trace-time smtp://127.0.0.1:39321/914 --mail-rcpt recipient@example.com --mail-from invalid -T log/2/test914.eml > log/2/stdout914 2> log/2/stderr914 === End of file commands.log === Start of file server.cmd REPLY MAIL 501 not fine enough Testnum 914 === End of file server.cmd === Start of file smtp_server.log 09:41:10.958736 SMTP server listens on port IPv4/39321 09:41:10.959603 logged pid 118024 in log/2/server/smtp_server.pid 09:41:10.959905 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.210295 Running IPv4 version 09:41:10.210857 Listening on port 39321 09:41:10.211189 Wrote pid 118509 to log/2/server/smtp_sockfilt.pid 09:41:10.211718 Wrote port 39321 to log/2/server/smtp_server.port 09:41:10.211891 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file test914.eml From: different To: another body === End of file test914.eml === Start of file valgrind914 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind914 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/smtp_server.pid" --logfile "log/5/smtp_server.log" --logdir "log/5" --portfile "log/5/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46865 (log/5/server/smtp_server.port) RUN: SMTP server is PID 118504 port 46865 * pid smtp => 118504 118504 test 0942...[SMTP external authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind942 ../src/curl -q --output log/5/curl942.out --include --trace-ascii log/5/trace942 --trace-config all --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:46865/942' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/5/stdout942 2> log/5/stderr942 942: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 942 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind942 ../src/curl -q --output log/5/curl942.out --include --trace-ascii log/5/trace942 --trace-config all --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:46865/942' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/5/stdout942 2> log/5/stderr942 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 334 EXTERNAL supported REPLY dXNlcg== 235 Authenticated Testnum 942 === End of file server.cmd === Start of file smtp_server.log 09:41:11.603632 SMTP server listens on port IPv4/46865 09:41:11.606958 logged pid 118504 in log/5/server/smtp_server.pid 09:41:11.607237 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.854876 Running IPv4 version 09:41:11.855649 Listening on port 46865 09:41:11.856064 Wrote pid 119029 to log/5/server/smtp_sockfilt.pid 09:41:11.856386 Wrote port 46865 to log/5/server/smtp_server.port 09:41:11.856646 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-942 mail body === End of file stdin-for-942 === Start of file valgrind942 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind942 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/27/server/smtp_server.pid" --logfile "log/27/smtp_server.log" --logdir "log/27" --portfile "log/27/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40553 (log/27/server/smtp_server.port) RUN: SMTP server is PID 118068 port 40553 * pid smtp => 118068 118068 test 0918...[SMTP with multiple and invalid --mail-rcpt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind918 ../src/curl -q --output log/27/curl918.out --include --trace-ascii log/27/trace918 --trace-config all --trace-time smtp://127.0.0.1:40553/918 --mail-rcpt recipient.one@example.com --mail-rcpt invalid --mail-rcpt recipient.three@example.com --mail-rcpt sTrAnGe --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/27/stdout918 2> log/27/stderr918 918: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 918 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind918 ../src/curl -q --output log/27/curl918.out --include --trace-ascii log/27/trace918 --trace-config all --trace-time smtp://127.0.0.1:40553/918 --mail-rcpt recipient.one@example.com --mail-rcpt invalid --mail-rcpt recipient.three@example.com --mail-rcpt sTrAnGe --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/27/stdout918 2> log/27/stderr918 === End of file commands.log === Start of file server.cmd Testnum 918 === End of file server.cmd === Start of file smtp_server.log 09:41:10.941524 SMTP server listens on port IPv4/40553 09:41:10.942393 logged pid 118068 in log/27/server/smtp_server.pid 09:41:10.942651 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.192873 Running IPv4 version 09:41:10.193439 Listening on port 40553 09:41:10.193960 Wrote pid 118499 to log/27/server/smtp_sockfilt.pid 09:41:10.194305 Wrote port 40553 to log/27/server/smtp_server.port 09:41:10.194582 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-918 From: different To: another body === End of file stdin-for-918 === Start of file valgrind918 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind918 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/35/server/smtp_server.pid" --logfile "log/35/smtp_server.log" --logdir "log/35" --portfile "log/35/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42553 (log/35/server/smtp_server.port) RUN: SMTP server is PID 118209 port 42553 * pid smtp => 118209 118209 test 0927...[SMTP mailing list EXPN (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind927 ../src/curl -q --output log/35/curl927.out --include --trace-ascii log/35/trace927 --trace-config all --trace-time smtp://127.0.0.1:42553/927 --mail-rcpt Friends -X EXPN > log/35/stdout927 2> log/35/stderr927 927: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 927 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind927 ../src/curl -q --output log/35/curl927.out --include --trace-ascii log/35/trace927 --trace-config all --trace-time smtp://127.0.0.1:42553/927 --mail-rcpt Friends -X EXPN > log/35/stdout927 2> log/35/stderr927 === End of file commands.log === Start of file server.cmd Testnum 927 === End of file server.cmd === Start of file smtp_server.log 09:41:11.007637 SMTP server listens on port IPv4/42553 09:41:11.008995 logged pid 118209 in log/35/server/smtp_server.pid 09:41:11.009260 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.257598 Running IPv4 version 09:41:11.258230 Listening on port 42553 09:41:11.259733 Wrote pid 118548 to log/35/server/smtp_sockfilt.pid 09:41:11.260291 Wrote port 42553 to log/35/server/smtp_server.port 09:41:11.260613 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind927 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind927 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/48/server/smtp_server.pid" --logfile "log/48/smtp_server.log" --logdir "log/48" --portfile "log/48/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37993 (log/48/server/smtp_server.port) RUN: SMTP server is PID 118339 port 37993 * pid smtp => 118339 118339 test 0940...[SMTP with username and password but no AUTH capability] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind940 ../src/curl -q --output log/48/curl940.out --include --trace-ascii log/48/trace940 --trace-config all --trace-time smtp://127.0.0.1:37993/940 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/48/stdout940 2> log/48/stderr940 940: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 940 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind940 ../src/curl -q --output log/48/curl940.out --include --trace-ascii log/48/trace940 --trace-config all --trace-time smtp://127.0.0.1:37993/940 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/48/stdout940 2> log/48/stderr940 === End of file commands.log === Start of file server.cmd Testnum 940 === End of file server.cmd === Start of file smtp_server.log 09:41:11.403220 SMTP server listens on port IPv4/37993 09:41:11.404212 logged pid 118339 in log/48/server/smtp_server.pid 09:41:11.404482 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.652756 Running IPv4 version 09:41:11.653290 Listening on port 37993 09:41:11.653867 Wrote pid 118796 to log/48/server/smtp_sockfilt.pid 09:41:11.654251 Wrote port 37993 to log/48/server/smtp_server.port 09:41:11.654422 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-940 mail body === End of file stdin-for-940 === Start of file valgrind940 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind940 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/50/server/smtp_server.pid" --logfile "log/50/smtp_server.log" --logdir "log/50" --portfile "log/50/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33881 (log/50/server/smtp_server.port) RUN: SMTP server is PID 118313 port 33881 * pid smtp => 118313 118313 test 0939...[RFC821-only SMTP with username and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind939 ../src/curl -q --output log/50/curl939.out --include --trace-ascii log/50/trace939 --trace-config all --trace-time smtp://127.0.0.1:33881/939 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/50/stdout939 2> log/50/stderr939 939: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 939 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind939 ../src/curl -q --output log/50/curl939.out --include --trace-ascii log/50/trace939 --trace-config all --trace-time smtp://127.0.0.1:33881/939 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/50/stdout939 2> log/50/stderr939 === End of file commands.log === Start of file server.cmd REPLY EHLO 500 Command unrecognized Testnum 939 === End of file server.cmd === Start of file smtp_server.log 09:41:11.170637 SMTP server listens on port IPv4/33881 09:41:11.172299 logged pid 118313 in log/50/server/smtp_server.pid 09:41:11.172573 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.421890 Running IPv4 version 09:41:11.422533 Listening on port 33881 09:41:11.422934 Wrote pid 118631 to log/50/server/smtp_sockfilt.pid 09:41:11.423246 Wrote port 33881 to log/50/server/smtp_server.port 09:41:11.423408 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-939 mail body === End of file stdin-for-939 === Start of file valgrind939 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind939 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/59/server/smtp_server.pid" --logfile "log/59/smtp_server.log" --logdir "log/59" --portfile "log/59/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40603 (log/59/server/smtp_server.port) RUN: SMTP server is PID 118529 port 40603 * pid smtp => 118529 118529 test 0943...[SMTP external authentication without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind943 ../src/curl -q --output log/59/curl943.out --include --trace-ascii log/59/trace943 --trace-config all --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:40603/943' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/59/stdout943 2> log/59/stderr943 943: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 943 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind943 ../src/curl -q --output log/59/curl943.out --include --trace-ascii log/59/trace943 --trace-config all --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:40603/943' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/59/stdout943 2> log/59/stderr943 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 334 EXTERNAL supported REPLY = 235 Authenticated Testnum 943 === End of file server.cmd === Start of file smtp_server.log 09:41:11.483659 SMTP server listens on port IPv4/40603 09:41:11.486193 logged pid 118529 in log/59/server/smtp_server.pid 09:41:11.486580 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.732045 Running IPv4 version 09:41:11.732677 Listening on port 40603 09:41:11.733413 Wrote pid 118869 to log/59/server/smtp_sockfilt.pid 09:41:11.736185 Wrote port 40603 to log/59/server/smtp_server.port 09:41:11.736551 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-943 mail body === End of file stdin-for-943 === Start of file valgrind943 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind943 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/64/server/smtp_server.pid" --logfile "log/64/smtp_server.log" --logdir "log/64" --portfile "log/64/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42037 (log/64/server/smtp_server.port) RUN: SMTP server is PID 118251 port 42037 * pid smtp => 118251 118251 test 0928...[SMTP HELP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind928 ../src/curl -q --output log/64/curl928.out --include --trace-ascii log/64/trace928 --trace-config all --trace-time smtp://127.0.0.1:42037/928 > log/64/stdout928 2> log/64/stderr928 928: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 928 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind928 ../src/curl -q --output log/64/curl928.out --include --trace-ascii log/64/trace928 --trace-config all --trace-time smtp://127.0.0.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind947 ../src/curl -q --output log/17/curl947.out --include --trace-ascii log/17/trace947 --trace-config all --trace-time smtp://127.0.0.1:37933/947 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/17/stdout947 2> log/17/stderr947 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind921 ../src/curl -q --output log/46/curl921.out --include --trace-ascii log/46/trace921 --trace-config all --trace-time smtp://127.0.0.1:36101/921 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass --sasl-ir -T - log/46/stdout921 2> log/46/stderr921 1:42037/928 > log/64/stdout928 2> log/64/stderr928 === End of file commands.log === Start of file server.cmd Testnum 928 === End of file server.cmd === Start of file smtp_server.log 09:41:11.185988 SMTP server listens on port IPv4/42037 09:41:11.186981 logged pid 118251 in log/64/server/smtp_server.pid 09:41:11.187274 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.436652 Running IPv4 version 09:41:11.437439 Listening on port 42037 09:41:11.438139 Wrote pid 118644 to log/64/server/smtp_sockfilt.pid 09:41:11.438592 Wrote port 42037 to log/64/server/smtp_server.port 09:41:11.438814 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind928 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind928 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/38/server/smtp_server.pid" --logfile "log/38/smtp_server.log" --logdir "log/38" --portfile "log/38/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45017 (log/38/server/smtp_server.port) RUN: SMTP server is PID 118063 port 45017 * pid smtp => 118063 118063 test 0917...[SMTP with multiple --mail-rcpt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind917 ../src/curl -q --output log/38/curl917.out --include --trace-ascii log/38/trace917 --trace-config all --trace-time smtp://127.0.0.1:45017/917 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/38/stdout917 2> log/38/stderr917 917: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 917 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind917 ../src/curl -q --output log/38/curl917.out --include --trace-ascii log/38/trace917 --trace-config all --trace-time smtp://127.0.0.1:45017/917 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/38/stdout917 2> log/38/stderr917 === End of file commands.log === Start of file server.cmd Testnum 917 === End of file server.cmd === Start of file smtp_server.log 09:41:10.904126 SMTP server listens on port IPv4/45017 09:41:10.905170 logged pid 118063 in log/38/server/smtp_server.pid 09:41:10.905442 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:10.155334 Running IPv4 version 09:41:10.156091 Listening on port 45017 09:41:10.156612 Wrote pid 118462 to log/38/server/smtp_sockfilt.pid 09:41:10.156971 Wrote port 45017 to log/38/server/smtp_server.port 09:41:10.157140 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-917 From: different To: another body === End of file stdin-for-917 === Start of file valgrind917 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind917 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/17/server/smtp_server.pid" --logfile "log/17/smtp_server.log" --logdir "log/17" --portfile "log/17/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37933 (log/17/server/smtp_server.port) RUN: SMTP server is PID 118641 port 37933 * pid smtp => 118641 118641 test 0947...[SMTP OAuth 2.0 (OAUTHBEARER) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind947 ../src/curl -q --output log/17/curl947.out --include --trace-ascii log/17/trace947 --trace-config all --trace-time smtp://127.0.0.1:37933/947 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/17/stdout947 2> log/17/stderr947 947: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 947 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind947 ../src/curl -q --output log/17/curl947.out --include --trace-ascii log/17/trace947 --trace-config all --trace-time smtp://127.0.0.1:37933/947 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/17/stdout947 2> log/17/stderr947 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 235 Authenticated Testnum 947 =CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind936 ../src/curl -q --output log/52/curl936.out --include --trace-ascii log/52/trace936 --trace-config all --trace-time smtp://127.0.0.1:33335/936 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/52/stdout936 2> log/52/stderr936 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind944 ../src/curl -q --output log/47/curl944.out --include --trace-ascii log/47/trace944 --trace-config all --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:34335/944' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/47/stdout944 2> log/47/stderr944 == End of file server.cmd === Start of file smtp_server.log 09:41:11.658546 SMTP server listens on port IPv4/37933 09:41:11.659715 logged pid 118641 in log/17/server/smtp_server.pid 09:41:11.660101 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.902928 Running IPv4 version 09:41:11.903552 Listening on port 37933 09:41:11.903992 Wrote pid 119092 to log/17/server/smtp_sockfilt.pid 09:41:11.904315 Wrote port 37933 to log/17/server/smtp_server.port 09:41:11.911590 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-947 mail body === End of file stdin-for-947 === Start of file valgrind947 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind947 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/46/server/smtp_server.pid" --logfile "log/46/smtp_server.log" --logdir "log/46" --portfile "log/46/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36101 (log/46/server/smtp_server.port) RUN: SMTP server is PID 118111 port 36101 * pid smtp => 118111 118111 test 0921...[SMTP NTLM authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind921 ../src/curl -q --output log/46/curl921.out --include --trace-ascii log/46/trace921 --trace-config all --trace-time smtp://127.0.0.1:36101/921 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass --sasl-ir -T - log/46/stdout921 2> log/46/stderr921 921: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 921 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind921 ../src/curl -q --output log/46/curl921.out --include --trace-ascii log/46/trace921 --trace-config all --trace-time smtp://127.0.0.1:36101/921 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass --sasl-ir -T - log/46/stdout921 2> log/46/stderr921 === End of file commands.log === Start of file server.cmd AUTH NTLM REPLY AUTH 334 TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= 235 Authenticated Testnum 921 === End of file server.cmd === Start of file smtp_server.log 09:41:11.150141 SMTP server listens on port IPv4/36101 09:41:11.151167 logged pid 118111 in log/46/server/smtp_server.pid 09:41:11.151438 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.401254 Running IPv4 version 09:41:11.401970 Listening on port 36101 09:41:11.402335 Wrote pid 118621 to log/46/server/smtp_sockfilt.pid 09:41:11.402788 Wrote port 36101 to log/46/server/smtp_server.port 09:41:11.402949 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-921 mail body === End of file stdin-for-921 === Start of file valgrind921 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind921 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/52/server/smtp_server.pid" --logfile "log/52/smtp_server.log" --logdir "log/52" --portfile "log/52/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33335 (log/52/server/smtp_server.port) RUN: SMTP server is PID 118317 port 33335 * pid smtp => 118317 118317 test 0936...[SMTP NTLM authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind936 ../src/curl -q --output log/52/curl936.out --include --trace-ascii log/52/trace936 --trace-config all --trace-time smtp://127.0.0.1:33335/936 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/52/stdout936 2> log/52/stderr936 936: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 936 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind936 ../src/curl -q --output log/52/curl936.out --include --trace-ascii log/52/trace936 --trace-config all --trace-time smtp://127.0.0.1:33335/936 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/52/stdout936 2> log/52/stderr936 === End of file commands.log === Start of file server.cmd AUTH NTLM PLAIN REPLY CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind954 ../src/curl -q --output log/18/curl954.out --include --trace-ascii log/18/trace954 --trace-config all --trace-time smtp://127.0.0.1:44723/954 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/18/stdout954 2> log/18/stderr954 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind935 ../src/curl -q --output log/51/curl935.out --include --trace-ascii log/51/trace935 --trace-config all --trace-time smtp://127.0.0.1:43397/935 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/51/stdout935 2> log/51/stderr935 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind946 ../src/curl -q --output log/14/curl946.out --include --trace-ascii log/14/trace946 --trace-config all --trace-time smtp://127.0.0.1:36491/946 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/14/stdout946 2> log/14/stderr946 "AUTH NTLM" 334 NTLM supported REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 334 Rubbish REPLY * 501 AUTH exchange cancelled by client REPLY "AUTH PLAIN" 334 PLAIN supported REPLY AHVzZXIAc2VjcmV0 235 Authenticated Testnum 936 === End of file server.cmd === Start of file smtp_server.log 09:41:11.260496 SMTP server listens on port IPv4/33335 09:41:11.261585 logged pid 118317 in log/52/server/smtp_server.pid 09:41:11.261967 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.511070 Running IPv4 version 09:41:11.511835 Listening on port 33335 09:41:11.512287 Wrote pid 118700 to log/52/server/smtp_sockfilt.pid 09:41:11.512861 Wrote port 33335 to log/52/server/smtp_server.port 09:41:11.513030 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-936 mail body === End of file stdin-for-936 === Start of file valgrind936 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind936 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/47/server/smtp_server.pid" --logfile "log/47/smtp_server.log" --logdir "log/47" --portfile "log/47/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34335 (log/47/server/smtp_server.port) RUN: SMTP server is PID 118532 port 34335 * pid smtp => 118532 118532 test 0944...[SMTP external authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind944 ../src/curl -q --output log/47/curl944.out --include --trace-ascii log/47/trace944 --trace-config all --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:34335/944' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/47/stdout944 2> log/47/stderr944 944: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 944 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind944 ../src/curl -q --output log/47/curl944.out --include --trace-ascii log/47/trace944 --trace-config all --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:34335/944' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/47/stdout944 2> log/47/stderr944 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 235 Authenticated Testnum 944 === End of file server.cmd === Start of file smtp_server.log 09:41:11.957420 SMTP server listens on port IPv4/34335 09:41:11.958375 logged pid 118532 in log/47/server/smtp_server.pid 09:41:11.958678 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.207554 Running IPv4 version 09:41:11.208185 Listening on port 34335 09:41:11.209804 Wrote pid 119505 to log/47/server/smtp_sockfilt.pid 09:41:11.210164 Wrote port 34335 to log/47/server/smtp_server.port 09:41:11.210342 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-944 mail body === End of file stdin-for-944 === Start of file valgrind944 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind944 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/14/server/smtp_server.pid" --logfile "log/14/smtp_server.log" --logdir "log/14" --portfile "log/14/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36491 (log/14/server/smtp_server.port) RUN: SMTP server is PID 118576 port 36491 * pid smtp => 118576 118576 test 0946...[SMTP OAuth 2.0 (OAUTHBEARER) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind946 ../src/curl -q --output log/14/curl946.out --include --trace-ascii log/14/trace946 --trace-config all --trace-time smtp://127.0.0.1:36491/946 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/14/stdout946 2> log/14/stderr946 946: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 946 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind946 ../src/curl -q --output log/14/curl946.out --include --trace-ascii log/14/trace946 --trace-config all --trace-time smtp://127.0.0.1:36491/946 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/14/stdout946 2> log/14/stderr946 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 334 OAUTHBEARER supported REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9MzY0OTEBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= 235 Authenticated Testnum 946 === End of file server.cmd === Start of file smtp_server.log 09:41:11.503003 SMTP server listens on port IPv4/36491 09:41:11.504029 logged pid 118576 in log/14/server/smtp_server.pid 09:41:11.504303 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.753976 Running IPv4 version 09:41:11.754758 Listening on port 36491 09:41:11.755266 Wrote pid 118894 to log/14/server/smtp_sockfilt.pid 09:41:11.755789 Wrote port 36491 to log/14/server/smtp_server.port 09:41:11.755996 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-946 mail body === End of file stdin-for-946 === Start of file valgrind946 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind946 test 0954...[SMTP plain auth with alt authorization identity (Not authorized)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind954 ../src/curl -q --output log/18/curl954.out --include --trace-ascii log/18/trace954 --trace-config all --trace-time smtp://127.0.0.1:44723/954 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/18/stdout954 2> log/18/stderr954 954: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 954 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind954 ../src/curl -q --output log/18/curl954.out --include --trace-ascii log/18/trace954 --trace-config all --trace-time smtp://127.0.0.1:44723/954 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/18/stdout954 2> log/18/stderr954 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 334 PLAIN supported REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= 501 Not authorized Testnum 954 === End of file server.cmd === Start of file smtp_server.log 09:41:11.692329 ====> Client connect 09:41:11.693529 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:11.697404 < "EHLO verifiedserver" 09:41:11.699159 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:11.699853 < "HELP" 09:41:11.700628 > "214 WE ROOLZ: 106061[CR][LF]" 09:41:11.700918 return proof we are we 09:41:11.702977 < "QUIT" 09:41:11.703983 > "221 curl ESMTP server signing off[CR][LF]" 09:41:11.707165 MAIN sockfilt said DISC 09:41:11.707964 ====> Client disconnected 09:41:11.708480 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.945374 ====> Client connect 09:41:11.947637 Received DATA (on stdin) 09:41:11.947792 > 160 bytes data, server => client 09:41:11.947884 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:11.947970 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:11.948050 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:11.950000 < 21 bytes data, client => server 09:41:11.950151 'EHLO verifiedserver\r\n' 09:41:11.951561 Received DATA (on stdin) 09:41:11.951699 > 53 bytes data, server => client 09:41:11.951858 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:11.952552 < 6 bytes data, client => server 09:41:11.952682 'HELP\r\n' 09:41:11.954019 Received DATA (on stdin) 09:41:11.954153 > 22 bytes data, server => client 09:41:11.954877 '214 WE ROOLZ: 106061\r\n' 09:41:11.956045 < 6 bytes data, client => server 09:41:11.956207 'QUIT\r\n' 09:41:11.957014 Received DATA (on stdin) 09:41:11.957141 > 35 bytes data, server => client 09:41:11.957293 '221 curl ESMTP server signing off\r\n' 09:41:11.960574 ====> Client disconnect 09:41:11.961140 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-954 mail body === End of file stdin-for-954 === Start of file valgrind954 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind954 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/51/server/smtp_server.pid" --logfile "log/51/smtp_server.log" --logdir "log/51" --portfile "log/51/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43397 (log/51/server/smtp_server.port) RUN: SMTP server is PID 118309 port 43397 * pid smtp => 118309 118309 test 0935...[SMTP CRAM-MD5 authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind935 ../src/curl -q --output log/51/curl935.out --include --trace-ascii log/51/trace935 --trace-config all --trace-time smtp://127.0.0.1:43397/935 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/51/stdout935 2> log/51/stderr935 935: protocol FAILED! There was no content at all in the filCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind953 ../src/curl -q --output log/30/curl953.out --include --trace-ascii log/30/trace953 --trace-config all --trace-time smtp://127.0.0.1:37813/953 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/30/stdout953 2> log/30/stderr953 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind948 ../src/curl -q --output log/31/curl948.out --include --trace-ascii log/31/trace948 --trace-config all --trace-time smtp://127.0.0.1:44305/948 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/31/stdout948 2> log/31/stderr948 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind945 ../src/curl -q --output log/26/curl945.out --include --trace-ascii log/26/trace945 --trace-config all --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:35089/945' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/26/stdout945 2> log/26/stderr945 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind950 ../src/curl -q --output log/39/curl950.out --include --trace-ascii log/39/trace950 --trace-config all --trace-time smtp://127.0.0.1:35413/950 --mail-rcpt recipient --request "vrfy" > log/39/stdout950 2> log/39/stderr950 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind963 ../src/curl -q --output log/9/curl963.out --include --trace-ascii log/9/trace963 --trace-config all --trace-time smtp://127.0.0.1:36457/963 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - log/9/stdout963 2> log/9/stderr963 e log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 935 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind935 ../src/curl -q --output log/51/curl935.out --include --trace-ascii log/51/trace935 --trace-config all --trace-time smtp://127.0.0.1:43397/935 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/51/stdout935 2> log/51/stderr935 === End of file commands.log === Start of file server.cmd AUTH CRAM-MD5 PLAIN REPLY "AUTH CRAM-MD5" 334 Rubbish REPLY * 501 AUTH exchange cancelled by client REPLY "AUTH PLAIN" 334 PLAIN supported REPLY AHVzZXIAc2VjcmV0 235 Authenticated Testnum 935 === End of file server.cmd === Start of file smtp_server.log 09:41:11.332975 SMTP server listens on port IPv4/43397 09:41:11.333960 logged pid 118309 in log/51/server/smtp_server.pid 09:41:11.334232 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.583335 Running IPv4 version 09:41:11.584863 Listening on port 43397 09:41:11.585375 Wrote pid 118742 to log/51/server/smtp_sockfilt.pid 09:41:11.585893 Wrote port 43397 to log/51/server/smtp_server.port 09:41:11.586092 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-935 mail body === End of file stdin-for-935 === Start of file valgrind935 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind935 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/26/server/smtp_server.pid" --logfile "log/26/smtp_server.log" --logdir "log/26" --portfile "log/26/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35089 (log/26/server/smtp_server.port) RUN: SMTP server is PID 118559 port 35089 * pid smtp => 118559 118559 test 0945...[SMTP external authentication with initial response without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind945 ../src/curl -q --output log/26/curl945.out --include --trace-ascii log/26/trace945 --trace-config all --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:35089/945' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/26/stdout945 2> log/26/stderr945 945: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 945 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind945 ../src/curl -q --output log/26/curl945.out --include --trace-ascii log/26/trace945 --trace-config all --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:35089/945' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/26/stdout945 2> log/26/stderr945 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 235 Authenticated Testnum 945 === End of file server.cmd === Start of file smtp_server.log 09:41:11.508868 SMTP server listens on port IPv4/35089 09:41:11.509856 logged pid 118559 in log/26/server/smtp_server.pid 09:41:11.510155 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.758023 Running IPv4 version 09:41:11.758748 Listening on port 35089 09:41:11.759153 Wrote pid 118888 to log/26/server/smtp_sockfilt.pid 09:41:11.761574 Wrote port 35089 to log/26/server/smtp_server.port 09:41:11.761798 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-945 mail body === End of file stdin-for-945 === Start of file valgrind945 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind945 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/30/server/smtp_server.pid" --logfile "log/30/smtp_server.log" --logdir "log/30" --portfile "log/30/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37813 (log/30/server/smtp_server.port) RUN: SMTP server is PID 118740 port 37813 * pid smtp => 118740 118740 test 0953...[SMTP plain authentication with alternative authorization identity] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind953 ../src/curl -q --output log/30/curl953.out --include --trace-ascii log/30/trace953 --trace-config all --trace-time smtp://127.0.0.1:37813/953 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/30/stdout953 2> log/30/stderr953 953: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 953 === Start of file commands.log ../libtCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind951 ../src/curl -q --output log/13/curl951.out --include --trace-ascii log/13/trace951 --trace-config all --trace-time smtp://127.0.0.1:33711/951 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/13/stdout951 2> log/13/stderr951 ool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind953 ../src/curl -q --output log/30/curl953.out --include --trace-ascii log/30/trace953 --trace-config all --trace-time smtp://127.0.0.1:37813/953 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/30/stdout953 2> log/30/stderr953 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 334 PLAIN supported REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= 235 Authenticated Testnum 953 === End of file server.cmd === Start of file smtp_server.log 09:41:12.141240 SMTP server listens on port IPv4/37813 09:41:12.143202 logged pid 118740 in log/30/server/smtp_server.pid 09:41:12.143489 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.392564 Running IPv4 version 09:41:12.393169 Listening on port 37813 09:41:12.393706 Wrote pid 119929 to log/30/server/smtp_sockfilt.pid 09:41:12.394063 Wrote port 37813 to log/30/server/smtp_server.port 09:41:12.394226 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-953 mail body === End of file stdin-for-953 === Start of file valgrind953 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind953 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/31/server/smtp_server.pid" --logfile "log/31/smtp_server.log" --logdir "log/31" --portfile "log/31/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44305 (log/31/server/smtp_server.port) RUN: SMTP server is PID 118676 port 44305 * pid smtp => 118676 118676 test 0948...[SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind948 ../src/curl -q --output log/31/curl948.out --include --trace-ascii log/31/trace948 --trace-config all --trace-time smtp://127.0.0.1:44305/948 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/31/stdout948 2> log/31/stderr948 948: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 948 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind948 ../src/curl -q --output log/31/curl948.out --include --trace-ascii log/31/trace948 --trace-config all --trace-time smtp://127.0.0.1:44305/948 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/31/stdout948 2> log/31/stderr948 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 334 OAUTHBEARER supported REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9NDQzMDUBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= 334 eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0 REPLY AQ== 535 Username and Password not accepted. Learn more at\r\n535 http://support.example.com/mail/oauth Testnum 948 === End of file server.cmd === Start of file smtp_server.log 09:41:12.174979 SMTP server listens on port IPv4/44305 09:41:12.175998 logged pid 118676 in log/31/server/smtp_server.pid 09:41:12.176298 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.425552 Running IPv4 version 09:41:12.426416 Listening on port 44305 09:41:12.427057 Wrote pid 119968 to log/31/server/smtp_sockfilt.pid 09:41:12.427415 Wrote port 44305 to log/31/server/smtp_server.port 09:41:12.427813 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-948 mail body === End of file stdin-for-948 === Start of file valgrind948 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind948 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0963...[SMTP without SMTPUTF8 support (IDN) - UTF-8 recipient (host part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind963 ../src/curl -q --output log/9/curl963.out --include --trace-ascii log/9/trace963 --trace-config all --trace-time smtp://127.0.0.1:36457/963 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - log/9/stdout963 2> log/9/stderr963 963: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 963 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind963 ../src/curl -q --output log/9/curl963.out --include --trace-ascii log/9/trace963 --trace-config all --trace-time smtp://127.0.0.1:36457/963 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - log/9/stdout963 2> log/9/stderr963 === End of file commands.log === Start of file server.cmd Testnum 963 === End of file server.cmd === Start of file smtp_server.log 09:41:12.112078 ====> Client connect 09:41:12.113383 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:12.120593 < "EHLO verifiedserver" 09:41:12.121165 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:12.124195 < "HELP" 09:41:12.127640 > "214 WE ROOLZ: 106081[CR][LF]" 09:41:12.127986 return proof we are we 09:41:12.129697 < "QUIT" 09:41:12.130925 > "221 curl ESMTP server signing off[CR][LF]" 09:41:12.135136 MAIN sockfilt said DISC 09:41:12.135991 ====> Client disconnected 09:41:12.136457 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.364890 ====> Client connect 09:41:12.367067 Received DATA (on stdin) 09:41:12.367242 > 160 bytes data, server => client 09:41:12.367348 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:12.367523 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:12.367649 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:12.370090 < 21 bytes data, client => server 09:41:12.370259 'EHLO verifiedserver\r\n' 09:41:12.374886 Received DATA (on stdin) 09:41:12.375055 > 53 bytes data, server => client 09:41:12.375159 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:12.376989 < 6 bytes data, client => server 09:41:12.377164 'HELP\r\n' 09:41:12.378361 Received DATA (on stdin) 09:41:12.380681 > 22 bytes data, server => client 09:41:12.380916 '214 WE ROOLZ: 106081\r\n' 09:41:12.382687 < 6 bytes data, client => server 09:41:12.382838 'QUIT\r\n' 09:41:12.383950 Received DATA (on stdin) 09:41:12.384094 > 35 bytes data, server => client 09:41:12.384245 '221 curl ESMTP server signing off\r\n' 09:41:12.388558 ====> Client disconnect 09:41:12.389157 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-963 From: different To: another body === End of file stdin-for-963 === Start of file valgrind963 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind963 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/13/server/smtp_server.pid" --logfile "log/13/smtp_server.log" --logdir "log/13" --portfile "log/13/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33711 (log/13/server/smtp_server.port) RUN: SMTP server is PID 118711 port 33711 * pid smtp => 118711 118711 test 0951...[SMTP data with dot as first character] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind951 ../src/curl -q --output log/13/curl951.out --include --trace-ascii log/13/trace951 --trace-config all --trace-time smtp://127.0.0.1:33711/951 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/13/stdout951 2> log/13/stderr951 951: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 951 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind951 ../src/curl -q --output log/13/curl951.out --include --trace-ascii log/13/trace951 --trace-config all --trace-time smtp://127.0.0.1:33711/951 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/13/stdout951 2> log/13/stderr951 === End of file commands.log === Start of file server.cmd Testnum 951 === End of file server.cmd === Start of file smtp_server.log 09:41:11.797687 SMTP server listens on port IPv4/33711 09:41:11.798684 logged pid 118711 in log/13/server/smtp_server.pid 09:41:11.799087 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.049155 Running IPv4 version 09:41:11.049795 Listening on port 33711 09:41:11.050225 Wrote pid 119285 to log/13/server/smtp_sockfilt.pid 09:41:11.050613 Wrote port 33711 to log/13/server/smtp_server.port 09:41:11.050781 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-951 .This first line starts with a dot === End of file stdin-for-951 === Start of file valgrind951 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind951 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/39/server/smtp_server.pid" --logfile "log/39/smtp_server.log" --logdir "log/39" --portfile "log/39/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35413 (log/39/server/smtp_server.port) RUN: SMTP server is PID 118710 port 35413 * pid smtp => 118710 118710 test 0950...[SMTP VRFY with custom request] ../libtool --mode=execute /usr/bin/valgrind --tool=memchCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind956 ../src/curl -q --output log/54/curl956.out --include --trace-ascii log/54/trace956 --trace-config all --trace-time smtp://127.0.0.1:33949/956 --mail-rcpt Stödmottagaren@example.com --mail-from sender@example.com -T - log/54/stdout956 2> log/54/stderr956 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind955 ../src/curl -q --output log/28/curl955.out --include --trace-ascii log/28/trace955 --trace-config all --trace-time smtp://127.0.0.1:33159/955 --mail-rcpt recipient@example.com --mail-from Avsändaren@example.com -T - log/28/stdout955 2> log/28/stderr955 eck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind950 ../src/curl -q --output log/39/curl950.out --include --trace-ascii log/39/trace950 --trace-config all --trace-time smtp://127.0.0.1:35413/950 --mail-rcpt recipient --request "vrfy" > log/39/stdout950 2> log/39/stderr950 950: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 950 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind950 ../src/curl -q --output log/39/curl950.out --include --trace-ascii log/39/trace950 --trace-config all --trace-time smtp://127.0.0.1:35413/950 --mail-rcpt recipient --request "vrfy" > log/39/stdout950 2> log/39/stderr950 === End of file commands.log === Start of file server.cmd Testnum 950 === End of file server.cmd === Start of file smtp_server.log 09:41:11.868226 SMTP server listens on port IPv4/35413 09:41:11.869264 logged pid 118710 in log/39/server/smtp_server.pid 09:41:11.869503 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.117900 Running IPv4 version 09:41:11.118422 Listening on port 35413 09:41:11.119941 Wrote pid 119402 to log/39/server/smtp_sockfilt.pid 09:41:11.120251 Wrote port 35413 to log/39/server/smtp_server.port 09:41:11.120396 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind950 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind950 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/54/server/smtp_server.pid" --logfile "log/54/smtp_server.log" --logdir "log/54" --portfile "log/54/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33949 (log/54/server/smtp_server.port) RUN: SMTP server is PID 118802 port 33949 * pid smtp => 118802 118802 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0956...[SMTP without SMTPUTF8 support - UTF-8 based recipient (local part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind956 ../src/curl -q --output log/54/curl956.out --include --trace-ascii log/54/trace956 --trace-config all --trace-time smtp://127.0.0.1:33949/956 --mail-rcpt Stödmottagaren@example.com --mail-from sender@example.com -T - log/54/stdout956 2> log/54/stderr956 956: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 956 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind956 ../src/curl -q --output log/54/curl956.out --include --trace-ascii log/54/trace956 --trace-config all --trace-time smtp://127.0.0.1:33949/956 --mail-rcpt Stödmottagaren@example.com --mail-from sender@example.com -T - log/54/stdout956 2> log/54/stderr956 === End of file commands.log === Start of file server.cmd Testnum 956 === End of file server.cmd === Start of file smtp_server.log 09:41:12.322853 SMTP server listens on port IPv4/33949 09:41:12.323868 logged pid 118802 in log/54/server/smtp_server.pid 09:41:12.324206 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.574177 Running IPv4 version 09:41:12.574869 Listening on port 33949 09:41:12.575304 Wrote pid 120340 to log/54/server/smtp_sockfilt.pid 09:41:12.575768 Wrote port 33949 to log/54/server/smtp_server.port 09:41:12.575930 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-956 From: different To: another body === End of file stdin-for-956 === Start of file valgrind956 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind956 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/28/server/smtp_server.pid" --logfile "log/28/smtp_server.log" --logdir "log/28" --portfile "log/28/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33159 (log/28/server/smtp_server.port) RUN: SMTP server is PID 118774 port 33159 * pid smtp => 118774 118774 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0955...[SMTP without SMTPUTF8 support - UTF-8 based sender (local part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind955 ../src/curl -q --output log/28/curl955.out --include --trace-ascii log/28/trace955 --trace-config all --trace-time smtp://127.0.0.1:33159/955 --mail-rcpt recipient@example.com --mail-from Avsändaren@example.com -T - log/28/stdout955 2> log/28/stderr955 955: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind967 ../src/curl -q --output log/36/curl967.out --include --trace-ascii log/36/trace967 --trace-config all --trace-time smtp://127.0.0.1:33651/967 --mail-rcpt Användaren@åäö.se > log/36/stdout967 2> log/36/stderr967 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind958 ../src/curl -q --output log/62/curl958.out --include --trace-ascii log/62/trace958 --trace-config all --trace-time smtp://127.0.0.1:34185/958 --mail-rcpt Användaren@example.com > log/62/stdout958 2> log/62/stderr958 ailure? Returned: 1 == Contents of files in the log/28/ dir after test 955 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind955 ../src/curl -q --output log/28/curl955.out --include --trace-ascii log/28/trace955 --trace-config all --trace-time smtp://127.0.0.1:33159/955 --mail-rcpt recipient@example.com --mail-from Avsändaren@example.com -T - log/28/stdout955 2> log/28/stderr955 === End of file commands.log === Start of file server.cmd REPLY MAIL 501 not fine enough Testnum 955 === End of file server.cmd === Start of file smtp_server.log 09:41:12.057566 SMTP server listens on port IPv4/33159 09:41:12.058645 logged pid 118774 in log/28/server/smtp_server.pid 09:41:12.059102 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.302148 Running IPv4 version 09:41:12.303042 Listening on port 33159 09:41:12.309706 Wrote pid 119726 to log/28/server/smtp_sockfilt.pid 09:41:12.310233 Wrote port 33159 to log/28/server/smtp_server.port 09:41:12.310537 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-955 From: different To: another body === End of file stdin-for-955 === Start of file valgrind955 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind955 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0967...[SMTP external VRFY with SMTPUTF8 support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind967 ../src/curl -q --output log/36/curl967.out --include --trace-ascii log/36/trace967 --trace-config all --trace-time smtp://127.0.0.1:33651/967 --mail-rcpt Användaren@åäö.se > log/36/stdout967 2> log/36/stderr967 967: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 967 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind967 ../src/curl -q --output log/36/curl967.out --include --trace-ascii log/36/trace967 --trace-config all --trace-time smtp://127.0.0.1:33651/967 --mail-rcpt Användaren@åäö.se > log/36/stdout967 2> log/36/stderr967 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 967 === End of file server.cmd === Start of file smtp_server.log 09:41:12.339624 ====> Client connect 09:41:12.340970 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:12.344505 < "EHLO verifiedserver" 09:41:12.345611 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:12.347902 < "HELP" 09:41:12.349060 > "214 WE ROOLZ: 106052[CR][LF]" 09:41:12.349300 return proof we are we 09:41:12.351219 < "QUIT" 09:41:12.352477 > "221 curl ESMTP server signing off[CR][LF]" 09:41:12.355714 MAIN sockfilt said DISC 09:41:12.356143 ====> Client disconnected 09:41:12.356616 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.592626 ====> Client connect 09:41:12.595061 Received DATA (on stdin) 09:41:12.595357 > 160 bytes data, server => client 09:41:12.595752 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:12.595889 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:12.595988 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:12.597046 < 21 bytes data, client => server 09:41:12.597202 'EHLO verifiedserver\r\n' 09:41:12.598837 Received DATA (on stdin) 09:41:12.599025 > 53 bytes data, server => client 09:41:12.599550 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:12.600791 < 6 bytes data, client => server 09:41:12.600940 'HELP\r\n' 09:41:12.601998 Received DATA (on stdin) 09:41:12.602138 > 22 bytes data, server => client 09:41:12.602315 '214 WE ROOLZ: 106052\r\n' 09:41:12.604022 < 6 bytes data, client => server 09:41:12.604189 'QUIT\r\n' 09:41:12.605316 Received DATA (on stdin) 09:41:12.605569 > 35 bytes data, server => client 09:41:12.605776 '221 curl ESMTP server signing off\r\n' 09:41:12.609159 ====> Client disconnect 09:41:12.610789 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind967 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind967 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/62/server/smtp_server.pid" --logfile "log/62/smtp_server.log" --logdir "log/62" --portfile "log/62/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34185 (log/62/server/smtp_server.port) RUN: SMTP server is PID 118850 port 34185 * pid smtp => 118850 118850 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0958...[SMTP external VRFY without SMTPUTF8 - UTF-8 recipient (local part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/teCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind957 ../src/curl -q --output log/43/curl957.out --include --trace-ascii log/43/trace957 --trace-config all --trace-time smtp://127.0.0.1:33425/957 --mail-rcpt Användaren > log/43/stdout957 2> log/43/stderr957 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind962 ../src/curl -q --output log/32/curl962.out --include --trace-ascii log/32/trace962 --trace-config all --trace-time smtp://127.0.0.1:39251/962 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - log/32/stdout962 2> log/32/stderr962 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind949 ../src/curl -q --output log/60/curl949.out --include --trace-ascii log/60/trace949 --trace-config all --trace-time smtp://127.0.0.1:37475/949 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/60/stdout949 2> log/60/stderr949 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind974 ../src/curl -q --output log/33/curl974.out --include --trace-ascii log/33/trace974 --trace-config all --trace-time -x http://127.0.0.1:36559 http://firsthost.com -L -u joe:secret > log/33/stdout974 2> log/33/stderr974 sts/valgrind.supp --num-callers=16 --log-file=log/62/valgrind958 ../src/curl -q --output log/62/curl958.out --include --trace-ascii log/62/trace958 --trace-config all --trace-time smtp://127.0.0.1:34185/958 --mail-rcpt Användaren@example.com > log/62/stdout958 2> log/62/stderr958 958: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 958 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind958 ../src/curl -q --output log/62/curl958.out --include --trace-ascii log/62/trace958 --trace-config all --trace-time smtp://127.0.0.1:34185/958 --mail-rcpt Användaren@example.com > log/62/stdout958 2> log/62/stderr958 === End of file commands.log === Start of file server.cmd Testnum 958 === End of file server.cmd === Start of file smtp_server.log 09:41:12.154516 SMTP server listens on port IPv4/34185 09:41:12.155601 logged pid 118850 in log/62/server/smtp_server.pid 09:41:12.156067 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.405841 Running IPv4 version 09:41:12.406340 Listening on port 34185 09:41:12.406849 Wrote pid 119976 to log/62/server/smtp_sockfilt.pid 09:41:12.407195 Wrote port 34185 to log/62/server/smtp_server.port 09:41:12.407366 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind958 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind958 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/43/server/smtp_server.pid" --logfile "log/43/smtp_server.log" --logdir "log/43" --portfile "log/43/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33425 (log/43/server/smtp_server.port) RUN: SMTP server is PID 118844 port 33425 * pid smtp => 118844 118844 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0957...[SMTP VRFY without SMTPUTF8 support - UTF-8 recipient (local part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind957 ../src/curl -q --output log/43/curl957.out --include --trace-ascii log/43/trace957 --trace-config all --trace-time smtp://127.0.0.1:33425/957 --mail-rcpt Användaren > log/43/stdout957 2> log/43/stderr957 957: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 957 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind957 ../src/curl -q --output log/43/curl957.out --include --trace-ascii log/43/trace957 --trace-config all --trace-time smtp://127.0.0.1:33425/957 --mail-rcpt Användaren > log/43/stdout957 2> log/43/stderr957 === End of file commands.log === Start of file server.cmd Testnum 957 === End of file server.cmd === Start of file smtp_server.log 09:41:12.237625 SMTP server listens on port IPv4/33425 09:41:12.242909 logged pid 118844 in log/43/server/smtp_server.pid 09:41:12.243294 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.482074 Running IPv4 version 09:41:12.488086 Listening on port 33425 09:41:12.488595 Wrote pid 120117 to log/43/server/smtp_sockfilt.pid 09:41:12.488962 Wrote port 33425 to log/43/server/smtp_server.port 09:41:12.489148 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind957 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind957 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/32/server/smtp_server.pid" --logfile "log/32/smtp_server.log" --logdir "log/32" --portfile "log/32/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39251 (log/32/server/smtp_server.port) RUN: SMTP server is PID 119106 port 39251 * pid smtp => 119106 119106 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0962...[SMTP without SMTPUTF8 support - UTF-8 based sender (host part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind962 ../src/curl -q --output log/32/curl962.out --include --trace-ascii log/32/trace962 --trace-config all --trace-time smtp://127.0.0.1:39251/962 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - log/32/stdout962 2> log/32/stderr962 962: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 962 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind962 ../src/curl -q --output log/32/cuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind965 ../src/curl -q --output log/61/curl965.out --include --trace-ascii log/61/trace965 --trace-config all --trace-time smtp://127.0.0.1:45567/965 --mail-rcpt recipient@example.com --mail-from Avsändaren@åäö.se -T - log/61/stdout965 2> log/61/stderr965 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind964 ../src/curl -q --output log/56/curl964.out --include --trace-ascii log/56/trace964 --trace-config all --trace-time smtp://127.0.0.1:39531/964 --mail-rcpt user@åäö.se > log/56/stdout964 2> log/56/stderr964 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind979 ../src/curl -q --output log/41/curl979.out --include --trace-ascii log/41/trace979 --trace-config all --trace-time http://first:secret@127.0.0.1:35093/979 -L -u smith:doggie > log/41/stdout979 2> log/41/stderr979 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind966 ../src/curl -q --output log/45/curl966.out --include --trace-ascii log/45/trace966 --trace-config all --trace-time smtp://127.0.0.1:39809/966 --mail-rcpt Stödmottagaren@åäö.se --mail-from sender@example.com -T - log/45/stdout966 2> log/45/stderr966 rl962.out --include --trace-ascii log/32/trace962 --trace-config all --trace-time smtp://127.0.0.1:39251/962 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - log/32/stdout962 2> log/32/stderr962 === End of file commands.log === Start of file server.cmd Testnum 962 === End of file server.cmd === Start of file smtp_server.log 09:41:12.540405 SMTP server listens on port IPv4/39251 09:41:12.541910 logged pid 119106 in log/32/server/smtp_server.pid 09:41:12.542496 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.790032 Running IPv4 version 09:41:12.790737 Listening on port 39251 09:41:12.791219 Wrote pid 120803 to log/32/server/smtp_sockfilt.pid 09:41:12.791653 Wrote port 39251 to log/32/server/smtp_server.port 09:41:12.791930 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-962 From: different To: another body === End of file stdin-for-962 === Start of file valgrind962 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind962 test 0974...[HTTP with auth redirected to HTTP on a diff port w/o auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind974 ../src/curl -q --output log/33/curl974.out --include --trace-ascii log/33/trace974 --trace-config all --trace-time -x http://127.0.0.1:36559 http://firsthost.com -L -u joe:secret > log/33/stdout974 2> log/33/stderr974 974: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 974 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind974 ../src/curl -q --output log/33/curl974.out --include --trace-ascii log/33/trace974 --trace-config all --trace-time -x http://127.0.0.1:36559 http://firsthost.com -L -u joe:secret > log/33/stdout974 2> log/33/stderr974 === End of file commands.log === Start of file http_server.log 09:41:12.873149 ====> Client connect 09:41:12.873662 accept_connection 3 returned 4 09:41:12.873890 accept_connection 3 returned 0 09:41:12.874061 Read 93 bytes 09:41:12.874183 Process 93 bytes request 09:41:12.874426 Got request: GET /verifiedserver HTTP/1.1 09:41:12.874598 Are-we-friendly question received 09:41:12.874837 Wrote request (93 bytes) input to log/33/server.input 09:41:12.875145 Identifying ourselves as friends 09:41:12.876269 Response sent (56 bytes) and written to log/33/server.response 09:41:12.876420 special request received, no persistency 09:41:12.880672 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 974 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind974 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind974 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/60/server/smtp_server.pid" --logfile "log/60/smtp_server.log" --logdir "log/60" --portfile "log/60/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37475 (log/60/server/smtp_server.port) RUN: SMTP server is PID 118697 port 37475 * pid smtp => 118697 118697 test 0949...[SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind949 ../src/curl -q --output log/60/curl949.out --include --trace-ascii log/60/trace949 --trace-config all --trace-time smtp://127.0.0.1:37475/949 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/60/stdout949 2> log/60/stderr949 949: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 949 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind949 ../src/curl -q --output log/60/curl949.out --include --trace-ascii log/60/trace949 --trace-config all --trace-time smtp://127.0.0.1:37475/949 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/60/stdout949 2> log/60/stderr949 === End of file commands.log ===CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind978 ../src/curl -q --output log/15/curl978.out --include --trace-ascii log/15/trace978 --trace-config all --trace-time http://127.0.0.1:35435/978 --stderr log/15/redir --silent -w '%{stderr}nonsense\n' > log/15/stdout978 2> log/15/stderr978 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind969 ../src/curl -q --output log/49/curl969.out --include --trace-ascii log/49/trace969 --trace-config all --trace-time smtp://127.0.0.1:36139/969 --mail-rcpt Friends -X EXPN > log/49/stdout969 2> log/49/stderr969 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind986 ../src/curl -q --output log/7/curl986.out --include --trace-ascii log/7/trace986 --trace-config all --trace-time --ssl-reqd --ftp-ssl-control ftp://127.0.0.1:41691/986 -T log/7/test986.txt -u user:secret > log/7/stdout986 2> log/7/stderr986 Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 334 eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0 REPLY AQ== 535 Username and Password not accepted. Learn more at\r\n535 http://support.example.com/mail/oauth Testnum 949 === End of file server.cmd === Start of file smtp_server.log 09:41:11.940148 SMTP server listens on port IPv4/37475 09:41:11.941074 logged pid 118697 in log/60/server/smtp_server.pid 09:41:11.941357 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.191572 Running IPv4 version 09:41:11.192126 Listening on port 37475 09:41:11.192651 Wrote pid 119534 to log/60/server/smtp_sockfilt.pid 09:41:11.193012 Wrote port 37475 to log/60/server/smtp_server.port 09:41:11.193171 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-949 mail body === End of file stdin-for-949 === Start of file valgrind949 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind949 test 0979...[-u with redirect to absolute URL using same origin and auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind979 ../src/curl -q --output log/41/curl979.out --include --trace-ascii log/41/trace979 --trace-config all --trace-time http://first:secret@127.0.0.1:35093/979 -L -u smith:doggie > log/41/stdout979 2> log/41/stderr979 979: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 979 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind979 ../src/curl -q --output log/41/curl979.out --include --trace-ascii log/41/trace979 --trace-config all --trace-time http://first:secret@127.0.0.1:35093/979 -L -u smith:doggie > log/41/stdout979 2> log/41/stderr979 === End of file commands.log === Start of file http_server.log 09:41:13.072854 ====> Client connect 09:41:13.073136 accept_connection 3 returned 4 09:41:13.073297 accept_connection 3 returned 0 09:41:13.073953 Read 93 bytes 09:41:13.074105 Process 93 bytes request 09:41:13.074193 Got request: GET /verifiedserver HTTP/1.1 09:41:13.074273 Are-we-friendly question received 09:41:13.074643 Wrote request (93 bytes) input to log/41/server.input 09:41:13.074854 Identifying ourselves as friends 09:41:13.075431 Response sent (56 bytes) and written to log/41/server.response 09:41:13.077708 special request received, no persistency 09:41:13.077791 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 979 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind979 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind979 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/45/server/smtp_server.pid" --logfile "log/45/smtp_server.log" --logdir "log/45" --portfile "log/45/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39809 (log/45/server/smtp_server.port) RUN: SMTP server is PID 119287 port 39809 * pid smtp => 119287 119287 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0966...[SMTP with SMTPUTF8 support - UTF-8 based recipient] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind966 ../src/curl -q --output log/45/curl966.out --include --trace-ascii log/45/trace966 --trace-config all --trace-time smtp://127.0.0.1:39809/966 --mail-rcpt Stödmottagaren@åäö.se --mail-from sender@example.com -T - log/45/stdout966 2> log/45/stderr966 966: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 966 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind966 ../src/curl -q --output log/45/curl966.out --include --trace-ascii log/45/trace966 --trace-config all --trace-time smtp://127.0.0.1:39809/966 --mail-rcpt Stödmottagaren@åäö.se --mail-from sender@example.com -T - log/45/stdout966 2> log/45/stderr966 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 966 === End of file serverCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind984 ../src/curl -q --output log/10/curl984.out --include --trace-ascii log/10/trace984 --trace-config all --trace-time imap://127.0.0.1:41017/984 -T log/10/upload984 -u user:secret --ssl-reqd > log/10/stdout984 2> log/10/stderr984 .cmd === Start of file smtp_server.log 09:41:12.651075 SMTP server listens on port IPv4/39809 09:41:12.652253 logged pid 119287 in log/45/server/smtp_server.pid 09:41:12.652572 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.901215 Running IPv4 version 09:41:12.902164 Listening on port 39809 09:41:12.902875 Wrote pid 120976 to log/45/server/smtp_sockfilt.pid 09:41:12.903403 Wrote port 39809 to log/45/server/smtp_server.port 09:41:12.903752 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-966 From: different To: another body === End of file stdin-for-966 === Start of file valgrind966 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind966 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/56/server/smtp_server.pid" --logfile "log/56/smtp_server.log" --logdir "log/56" --portfile "log/56/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 39531 (log/56/server/smtp_server.port) RUN: SMTP server is PID 119219 port 39531 * pid smtp => 119219 119219 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0964...[SMTP external VRFY without SMTPUTF8 (IDN) - UTF-8 recipient (host part)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind964 ../src/curl -q --output log/56/curl964.out --include --trace-ascii log/56/trace964 --trace-config all --trace-time smtp://127.0.0.1:39531/964 --mail-rcpt user@åäö.se > log/56/stdout964 2> log/56/stderr964 964: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 964 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind964 ../src/curl -q --output log/56/curl964.out --include --trace-ascii log/56/trace964 --trace-config all --trace-time smtp://127.0.0.1:39531/964 --mail-rcpt user@åäö.se > log/56/stdout964 2> log/56/stderr964 === End of file commands.log === Start of file server.cmd Testnum 964 === End of file server.cmd === Start of file smtp_server.log 09:41:12.694476 SMTP server listens on port IPv4/39531 09:41:12.695670 logged pid 119219 in log/56/server/smtp_server.pid 09:41:12.696068 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.940802 Running IPv4 version 09:41:12.941351 Listening on port 39531 09:41:12.941896 Wrote pid 121055 to log/56/server/smtp_sockfilt.pid 09:41:12.942256 Wrote port 39531 to log/56/server/smtp_server.port 09:41:12.942441 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind964 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind964 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/61/server/smtp_server.pid" --logfile "log/61/smtp_server.log" --logdir "log/61" --portfile "log/61/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45567 (log/61/server/smtp_server.port) RUN: SMTP server is PID 119241 port 45567 * pid smtp => 119241 119241 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0965...[SMTP with SMTPUTF8 support - UTF-8 based sender] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind965 ../src/curl -q --output log/61/curl965.out --include --trace-ascii log/61/trace965 --trace-config all --trace-time smtp://127.0.0.1:45567/965 --mail-rcpt recipient@example.com --mail-from Avsändaren@åäö.se -T - log/61/stdout965 2> log/61/stderr965 965: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 965 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind965 ../src/curl -q --output log/61/curl965.out --include --trace-ascii log/61/trace965 --trace-config all --trace-time smtp://127.0.0.1:45567/965 --mail-rcpt recipient@example.com --mail-from Avsändaren@åäö.se -T - log/61/stdout965 2> log/61/stderr965 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 965 === End of file server.cmd === Start of file smtp_server.log 09:41:12.438531 SMTP server listens on port IPv4/45567 09:41:12.439390 logged pid 119241 in log/61/server/smtp_server.pid 09:41:12.439635 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.687622 Running IPv4 version 09:41:12.688251 Listening on port 45567 09:41:12.690853 Wrote pid 120562 to log/61/server/smtp_sockfilt.pid 09:41:12.691230 Wrote port 45567 to log/61/server/smtp_server.port 09:41:12.691403 Received PING (on stdin) === End of file smtp_sockfilt.log === StCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind968 ../src/curl -q --output log/53/curl968.out --include --trace-ascii log/53/trace968 --trace-config all --trace-time smtp://127.0.0.1:37117/968 --mail-rcpt Användaren > log/53/stdout968 2> log/53/stderr968 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind941 ../src/curl -q --output log/4/curl941.out --include --trace-ascii log/4/trace941 --trace-config all --trace-time smtp://127.0.0.1:38737/941 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/4/upload941 --crlf > log/4/stdout941 2> log/4/stderr941 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind985 ../src/curl -q --output log/6/curl985.out --include --trace-ascii log/6/trace985 --trace-config all --trace-time pop3://127.0.0.1:41275/985 -u user:secret --ssl-reqd > log/6/stdout985 2> log/6/stderr985 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind983 ../src/curl -q --output log/20/curl983.out --include --trace-ascii log/20/trace983 --trace-config all --trace-time --ssl --ftp-ssl-control ftp://127.0.0.1:34743/983 -T log/20/test983.txt -u user:secret -P 127.0.0.1 > log/20/stdout983 2> log/20/stderr983 art of file stdin-for-965 From: different To: another body === End of file stdin-for-965 === Start of file valgrind965 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind965 test 0985...[POP3 require STARTTLS with failing capabilities] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind985 ../src/curl -q --output log/6/curl985.out --include --trace-ascii log/6/trace985 --trace-config all --trace-time pop3://127.0.0.1:41275/985 -u user:secret --ssl-reqd > log/6/stdout985 2> log/6/stderr985 985: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 985 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind985 ../src/curl -q --output log/6/curl985.out --include --trace-ascii log/6/trace985 --trace-config all --trace-time pop3://127.0.0.1:41275/985 -u user:secret --ssl-reqd > log/6/stdout985 2> log/6/stderr985 === End of file commands.log === Start of file pop3_server.log 09:41:13.137128 ====> Client connect 09:41:13.138300 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:13.143515 < "CAPA" 09:41:13.143979 > "-ERR Unrecognized command[CR][LF]" 09:41:13.146087 < "RETR verifiedserver" 09:41:13.146421 return proof we are we 09:41:13.150524 > "+OK Mail transfer starts[CR][LF]" 09:41:13.150961 > "WE ROOLZ: 115770[CR][LF]" 09:41:13.151185 > ".[CR][LF]" 09:41:13.194653 < "QUIT" 09:41:13.195417 > "+OK curl POP3 server signing off[CR][LF]" 09:41:13.200161 MAIN sockfilt said DISC 09:41:13.201284 ====> Client disconnected 09:41:13.201981 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:12.390159 ====> Client connect 09:41:12.392311 Received DATA (on stdin) 09:41:12.392439 > 178 bytes data, server => client 09:41:12.392637 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:12.392737 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:12.392822 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:12.392890 've \r\n' 09:41:12.394854 < 6 bytes data, client => server 09:41:12.395016 'CAPA\r\n' 09:41:12.398010 Received DATA (on stdin) 09:41:12.398163 > 27 bytes data, server => client 09:41:12.398246 '-ERR Unrecognized command\r\n' 09:41:12.398960 < 21 bytes data, client => server 09:41:12.399095 'RETR verifiedserver\r\n' 09:41:12.400519 Received DATA (on stdin) 09:41:12.400657 > 26 bytes data, server => client 09:41:12.405119 '+OK Mail transfer starts\r\n' 09:41:12.405428 Received DATA (on stdin) 09:41:12.405680 > 18 bytes data, server => client 09:41:12.405772 'WE ROOLZ: 115770\r\n' 09:41:12.405898 Received DATA (on stdin) 09:41:12.405998 > 3 bytes data, server => client 09:41:12.406075 '.\r\n' 09:41:12.449527 < 6 bytes data, client => server 09:41:12.449671 'QUIT\r\n' 09:41:12.449793 Received DATA (on stdin) 09:41:12.449891 > 34 bytes data, server => client 09:41:12.450019 '+OK curl POP3 server signing off\r\n' 09:41:12.453576 ====> Client disconnect 09:41:12.454343 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY CAPA -ERR Not implemented Testnum 985 === End of file server.cmd === Start of file valgrind985 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind985 test 0986...[FTP require STARTTLS while preauthenticated] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind986 ../src/curl -q --output log/7/curl986.out --include --trace-ascii log/7/trace986 --trace-config all --trace-time --ssl-reqd --ftp-ssl-control ftp://127.0.0.1:41691/986 -T log/7/test986.txt -u user:secret > log/7/stdout986 2> log/7/stderr986 986: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 986 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind986 ../src/curl -q --output log/7/curl986.out --include --trace-ascii log/7/trace986 --trace-config all --trace-time --ssl-reqd --ftp-ssl-control ftp://127.0.0.1:41691/986 -T log/7/test986.txt -u user:secret > log/7/stdout986 2> log/7/stderr986 === End of file commands.log === Start of file ftp_server.log 09:41:13.069930 ====> Client connect 09:41:13.072386 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.074370 < "USER anonymous" 09:41:13.076105 > "331 We are happy you popped in![CR][LF]" 09:41:13.077020 < "PASS ftp@example.com" 09:41:13.077358 > "230 Welcome you silly person[CR][LF]" 09:41:13.079517 < "PWD" 09:41:13.080569 > "257 "/" is current directory[CR][LF]" 09:41:13.082494 < "EPSV" 09:41:13.082862 ====> Passive DATA channel requested by client 09:41:13.083070 DATA sockfilt for passive data channel starting... 09:41:13.101467 DATA sockfilt for passive data channel started (pid 121666) 09:41:13.102510 DATA sockfilt for passive data channel listens on port 43671 09:41:13.103007 > "229 Entering Passive Mode (|||43671|)[LF]" 09:41:13.103260 Client has been notified that DATA conn will be accepted on port 43671 09:41:13.105890 Client connects to port 43671 09:41:13.106217 ====> Client established passive DATA connection on port 43671 09:41:13.107122 < "TYPE I" 09:41:13.109173 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:13.109935 < "SIZE verifiedserver" 09:41:13.110388 > "213 17[CR][LF]" 09:41:13.113068 < "RETR verifiedserver" 09:41:13.113511 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:13.114351 =====> Closing passive DATA connection... 09:41:13.114569 Server disconnects passive DATA connection 09:41:13.117496 Server disconnected passive DATA connection 09:41:13.117864 DATA sockfilt for passive data channel quits (pid 121666) 09:41:13.120184 DATA sockfilt for passive data channel quit (pid 121666) 09:41:13.120426 =====> Closed passive DATA connection 09:41:13.121494 > "226 File transfer complete[CR][LF]" 09:41:13.159434 < "QUIT" 09:41:13.159913 > "221 bye bye baby[CR][LF]" 09:41:13.165294 MAIN sockfilt said DISC 09:41:13.166448 ====> Client disconnected 09:41:13.167303 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:13.322998 ====> Client connect 09:41:13.325013 Received DATA (on stdin) 09:41:13.325160 > 160 bytes data, server => client 09:41:13.325350 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:13.325583 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:13.325690 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:13.326959 < 16 bytes data, client => server 09:41:13.327103 'USER anonymous\r\n' 09:41:13.328525 Received DATA (on stdin) 09:41:13.328671 > 33 bytes data, server => client 09:41:13.328836 '331 We are happy you popped in!\r\n' 09:41:13.329390 < 22 bytes data, client => server 09:41:13.329598 'PASS ftp@example.com\r\n' 09:41:13.331523 Received DATA (on stdin) 09:41:13.331670 > 30 bytes data, server => client 09:41:13.331754 '230 Welcome you silly person\r\n' 09:41:13.332299 < 5 bytes data, client => server 09:41:13.332436 'PWD\r\n' 09:41:13.333830 Received DATA (on stdin) 09:41:13.334019 > 30 bytes data, server => client 09:41:13.334682 '257 "/" is current directory\r\n' 09:41:13.335629 < 6 bytes data, client => server 09:41:13.335783 'EPSV\r\n' 09:41:13.357279 Received DATA (on stdin) 09:41:13.357425 > 38 bytes data, server => client 09:41:13.357617 '229 Entering Passive Mode (|||43671|)\n' 09:41:13.359189 < 8 bytes data, client => server 09:41:13.359316 'TYPE I\r\n' 09:41:13.361210 Received DATA (on stdin) 09:41:13.361366 > 33 bytes data, server => client 09:41:13.361640 '200 I modify TYPE as you wanted\r\n' 09:41:13.362436 < 21 bytes data, client => server 09:41:13.362646 'SIZE verifiedserver\r\n' 09:41:13.364695 Received DATA (on stdin) 09:41:13.364921 > 8 bytes data, server => client 09:41:13.365056 '213 17\r\n' 09:41:13.365838 < 21 bytes data, client => server 09:41:13.365992 'RETR verifiedserver\r\n' 09:41:13.368634 Received DATA (on stdin) 09:41:13.368812 > 29 bytes data, server => client 09:41:13.368911 '150 Binary junk (17 bytes).\r\n' 09:41:13.374504 Received DATA (on stdin) 09:41:13.374668 > 28 bytes data, server => client 09:41:13.374908 '226 File transfer complete\r\n' 09:41:13.410685 < 6 bytes data, client => server 09:41:13.410942 'QUIT\r\n' 09:41:13.413971 Received DATA (on stdin) 09:41:13.414343 > 18 bytes data, server => client 09:41:13.414446 '221 bye bye baby\r\n' 09:41:13.418650 ====> Client disconnect 09:41:13.419607 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:13.351211 Running IPv4 version 09:41:13.351910 Listening on port 43671 09:41:13.352329 Wrote pid 121666 to log/7/server/ftp_sockdata.pid 09:41:13.354808 Received PING (on stdin) 09:41:13.355690 Received PORT (on stdin) 09:41:13.358874 ====> Client connect 09:41:13.369282 Received DATA (on stdin) 09:41:13.369441 > 17 bytes data, server => client 09:41:13.369653 'WE ROOLZ: 77570\r\n' 09:41:13.369985 Received DISC (on stdin) 09:41:13.370141 ====> Client forcibly disconnected 09:41:13.371882 Received QUIT (on stdin) 09:41:13.372015 quits 09:41:13.372817 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY welcome 230 Welcome REPLY AUTH 500 unknown command Testnum 986 === End of file server.cmd === Start of file test986.txt data to see that FTPS works so does it? === End of file test986.txt === Start of file valgrind986 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind986 test 0984...[IMAP require STARTTLS with failing capabilities] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind984 ../src/curl -q --output log/10/curl984.out --include --trace-ascii log/10/trace984 --trace-config all --trace-time imap://127.0.0.1:41017/984 -T log/10/upload984 -u user:secret --ssl-reqd > log/10/stdout984 2> log/10/stderr984 984: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 984 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind984 ../src/curl -q --output log/10/curl984.out --include --trace-ascii log/10/trace984 --trace-config all --trace-time imap://127.0.0.1:41017/984 -T log/10/upload984 -u user:secret --ssl-reqd > log/10/stdout984 2> log/10/stderr984 === End of file commands.log === Start of file imap_server.log 09:41:13.000281 ====> Client connect 09:41:13.001935 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 09:41:13.007700 < "A001 CAPABILITY" 09:41:13.010429 > "A001 BAD Command[CR][LF]" 09:41:13.015584 < "A002 LIST "verifiedserver" *" 09:41:13.016027 LIST_imap got "verifiedserver" * 09:41:13.017574 > "* LIST () "/" "WE ROOLZ: 112722"[CR][LF]" 09:41:13.018626 > "A002 OK LIST Completed[CR][LF]" 09:41:13.018926 return proof we are we 09:41:13.060961 < "A003 LOGOUT" 09:41:13.061339 > "* BYE curl IMAP server signing off[CR][LF]" 09:41:13.061594 > "A003 OK LOGOUT completed[CR][LF]" 09:41:13.074877 MAIN sockfilt said DISC 09:41:13.075210 ====> Client disconnected 09:41:13.075695 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:13.251675 ====> Client connect 09:41:13.256605 Received DATA (on stdin) 09:41:13.256764 > 178 bytes data, server => client 09:41:13.256851 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:13.256950 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:13.257042 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 09:41:13.257138 'rve\r\n' 09:41:13.260068 < 17 bytes data, client => server 09:41:13.260233 'A001 CAPABILITY\r\n' 09:41:13.263565 Received DATA (on stdin) 09:41:13.263738 > 18 bytes data, server => client 09:41:13.264568 'A001 BAD Command\r\n' 09:41:13.268690 < 30 bytes data, client => server 09:41:13.268877 'A002 LIST "verifiedserver" *\r\n' 09:41:13.270080 Received DATA (on stdin) 09:41:13.270258 > 34 bytes data, server => client 09:41:13.270667 '* LIST () "/" "WE ROOLZ: 112722"\r\n' 09:41:13.271821 Received DATA (on stdin) 09:41:13.271949 > 24 bytes data, server => client 09:41:13.272106 'A002 OK LIST Completed\r\n' 09:41:13.313711 < 13 bytes data, client => server 09:41:13.313932 'A003 LOGOUT\r\n' 09:41:13.320610 Received DATA (on stdin) 09:41:13.320790 > 36 bytes data, server => client 09:41:13.320883 '* BYE curl IMAP server signing off\r\n' 09:41:13.321167 Received DATA (on stdin) 09:41:13.321302 > 26 bytes data, server => client 09:41:13.321386 'A003 OK LOGOUT completed\r\n' 09:41:13.324630 ====> Client disconnect 09:41:13.329791 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd REPLY CAPABILITY A001 BAD Not implemented Testnum 984 === End of file server.cmd === Start of file upload984 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload984 === Start of file valgrind984 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind984 test 0978...[verify that --stderr works for -w's stderr as well] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind978 ../src/curl -q --output log/15/curl978.out --include --trace-ascii log/15/trace978 --trace-config all --trace-time http://127.0.0.1:35435/978 --stderr log/15/redir --silent -w '%{stderr}nonsense\n' > log/15/stdout978 2> log/15/stderr978 978: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 978 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind978 ../src/curl -q --output log/15/curl978.out --include --trace-ascii log/15/trace978 --trace-config all --trace-time http://127.0.0.1:35435/978 --stderr log/15/redir --silent -w '%{stderr}nonsense\n' > log/15/stdout978 2> log/15/stderr978 === End of file commands.log === Start of file http_server.log 09:41:13.025586 ====> Client connect 09:41:13.025917 accept_connection 3 returned 4 09:41:13.026106 accept_connection 3 returned 0 09:41:13.026268 Read 93 bytes 09:41:13.026393 Process 93 bytes request 09:41:13.026590 Got request: GET /verifiedserver HTTP/1.1 09:41:13.026693 Are-we-friendly question received 09:41:13.026945 Wrote request (93 bytes) input to log/15/server.input 09:41:13.027233 Identifying ourselves as friends 09:41:13.031265 Response sent (56 bytes) and written to log/15/server.response 09:41:13.031391 special request received, no persistency 09:41:13.037614 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 978 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file valgrind978 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind978 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/49/server/smtp_server.pid" --logfile "log/49/smtp_server.log" --logdir "log/49" --portfile "log/49/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36139 (log/49/server/smtp_server.port) RUN: SMTP server is PID 119692 port 36139 * pid smtp => 119692 119692 test 0969...[SMTP mailing list EXPNCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind990 ../src/curl -q --output log/37/curl990.out --include --trace-ascii log/37/trace990 --trace-config all --trace-time http://127.0.0.1:37551/990 -w '%output{log/37/output}%{http_code}\n' > log/37/stdout990 2> log/37/stderr990 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1013 ../src/curl -q --output log/5/curl1013.out --include --trace-ascii log/5/trace1013 --trace-config all --trace-time --version > log/5/stdout1013 2> log/5/stderr1013 (CUSTOMREQUEST) with SMTPUTF8 support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind969 ../src/curl -q --output log/49/curl969.out --include --trace-ascii log/49/trace969 --trace-config all --trace-time smtp://127.0.0.1:36139/969 --mail-rcpt Friends -X EXPN > log/49/stdout969 2> log/49/stderr969 969: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 969 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind969 ../src/curl -q --output log/49/curl969.out --include --trace-ascii log/49/trace969 --trace-config all --trace-time smtp://127.0.0.1:36139/969 --mail-rcpt Friends -X EXPN > log/49/stdout969 2> log/49/stderr969 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 969 === End of file server.cmd === Start of file smtp_server.log 09:41:12.663347 SMTP server listens on port IPv4/36139 09:41:12.664364 logged pid 119692 in log/49/server/smtp_server.pid 09:41:12.664601 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.914818 Running IPv4 version 09:41:12.915553 Listening on port 36139 09:41:12.915996 Wrote pid 121012 to log/49/server/smtp_sockfilt.pid 09:41:12.916314 Wrote port 36139 to log/49/server/smtp_server.port 09:41:12.916534 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind969 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind969 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/53/server/smtp_server.pid" --logfile "log/53/smtp_server.log" --logdir "log/53" --portfile "log/53/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37117 (log/53/server/smtp_server.port) RUN: SMTP server is PID 119614 port 37117 * pid smtp => 119614 119614 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 0968...[SMTP VRFY with SMTPUTF8 support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind968 ../src/curl -q --output log/53/curl968.out --include --trace-ascii log/53/trace968 --trace-config all --trace-time smtp://127.0.0.1:37117/968 --mail-rcpt Användaren > log/53/stdout968 2> log/53/stderr968 968: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 968 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind968 ../src/curl -q --output log/53/curl968.out --include --trace-ascii log/53/trace968 --trace-config all --trace-time smtp://127.0.0.1:37117/968 --mail-rcpt Användaren > log/53/stdout968 2> log/53/stderr968 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 968 === End of file server.cmd === Start of file smtp_server.log 09:41:12.602255 SMTP server listens on port IPv4/37117 09:41:12.603264 logged pid 119614 in log/53/server/smtp_server.pid 09:41:12.603557 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:12.853588 Running IPv4 version 09:41:12.854152 Listening on port 37117 09:41:12.854640 Wrote pid 120936 to log/53/server/smtp_sockfilt.pid 09:41:12.854999 Wrote port 37117 to log/53/server/smtp_server.port 09:41:12.855172 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind968 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind968 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/smtp_server.pid" --logfile "log/4/smtp_server.log" --logdir "log/4" --portfile "log/4/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38737 (log/4/server/smtp_server.port) RUN: SMTP server is PID 118365 port 38737 * pid smtp => 118365 118365 test 0941...[SMTP with --crlf] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind941 ../src/curl -q --output log/4/curl941.out --include --trace-ascii log/4/trace941 --trace-config all --trace-time smtp://127.0.0.1:38737/941 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/4/upload941 --crlf > log/4/stdout941 2> log/4/stderr941 941: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 941 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind941 ../src/curl -q --output log/4/curl941.out --include --trace-ascii log/4/trace941 --trace-config all --trace-time smtp://127.0.0.1:38737/941 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/4/upload941 --crlf > log/4/stdout941 2> log/4/stderr941 === End of file commands.log === Start of file server.cmd Testnum 941 === End of file server.cmd === Start of file smtp_server.log 09:41:11.875922 SMTP server listens on port IPv4/38737 09:41:11.876718 logged pid 118365 in log/4/server/smtp_server.pid 09:41:11.877065 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:11.127333 Running IPv4 version 09:41:11.127990 Listening on port 38737 09:41:11.128346 Wrote pid 119411 to log/4/server/smtp_sockfilt.pid 09:41:11.128778 Wrote port 38737 to log/4/server/smtp_server.port 09:41:11.128965 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file upload941 From: different To: another email headers and body with Unix newlines meant to be converted with the --crlf option 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 === End of file upload941 === Start of file valgrind941 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind941 test 0983...[FTP STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind983 ../src/curl -q --output log/20/curl983.out --include --trace-ascii log/20/trace983 --trace-config all --trace-time --ssl --ftp-ssl-control ftp://127.0.0.1:34743/983 -T log/20/test983.txt -u user:secret -P 127.0.0.1 > log/20/stdout983 2> log/20/stderr983 983: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 983 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind983 ../src/curl -q --output log/20/curl983.out --include --trace-ascii log/20/trace983 --trace-config all --trace-time --ssl --ftp-ssl-control ftp://127.0.0.1:34743/983 -T log/20/test983.txt -u user:secret -P 127.0.0.1 > log/20/stdout983 2> log/20/stderr983 === End of file commands.log === Start of file ftp_server.log 09:41:13.006925 ====> Client connect 09:41:13.008351 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.011292 < "USER anonymous" 09:41:13.013129 > "331 We are happy you popped in![CR][LF]" 09:41:13.013885 < "PASS ftp@example.com" 09:41:13.014285 > "230 Welcome you silly person[CR][LF]" 09:41:13.016872 < "PWD" 09:41:13.017734 > "257 "/" is current directory[CR][LF]" 09:41:13.019584 < "EPSV" 09:41:13.019990 ====> Passive DATA channel requested by client 09:41:13.020209 DATA sockfilt for passive data channel starting... 09:41:13.037280 DATA sockfilt for passive data channel started (pid 121565) 09:41:13.038300 DATA sockfilt for passive data channel listens on port 34263 09:41:13.038735 > "229 Entering Passive Mode (|||34263|)[LF]" 09:41:13.039049 Client has been notified that DATA conn will be accepted on port 34263 09:41:13.041468 Client connects to port 34263 09:41:13.041827 ====> Client established passive DATA connection on port 34263 09:41:13.042540 < "TYPE I" 09:41:13.042935 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:13.045004 < "SIZE verifiedserver" 09:41:13.045450 > "213 17[CR][LF]" 09:41:13.047479 < "RETR verifiedserver" 09:41:13.047969 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:13.048634 =====> Closing passive DATA connection... 09:41:13.048944 Server disconnects passive DATA connection 09:41:13.052886 Server disconnected passive DATA connection 09:41:13.053201 DATA sockfilt for passive data channel quits (pid 121565) 09:41:13.055194 DATA sockfilt for passive data channel quit (pid 121565) 09:41:13.055433 =====> Closed passive DATA connection 09:41:13.056318 > "226 File transfer complete[CR][LF]" 09:41:13.093171 < "QUIT" 09:41:13.093560 > "221 bye bye baby[CR][LF]" 09:41:13.095142 MAIN sockfilt said DISC 09:41:13.095959 ====> Client disconnected 09:41:13.096436 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:13.259844 ====> Client connect 09:41:13.262408 Received DATA (on stdin) 09:41:13.262689 > 160 bytes data, server => client 09:41:13.262792 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:13.262890 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:13.262970 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:13.263791 < 16 bytes data, client => server 09:41:13.263944 'USER anonymous\r\n' 09:41:13.265387 Received DATA (on stdin) 09:41:13.265598 > 33 bytes data, server => client 09:41:13.265786 '331 We are happy you popped in!\r\n' 09:41:13.266390 < 22 bytes data, client => server 09:41:13.266612 'PASS ftp@example.com\r\n' 09:41:13.268405 Received DATA (on stdin) 09:41:13.268641 > 30 bytes data, server => client 09:41:13.268826 '230 Welcome you silly person\r\n' 09:41:13.269719 < 5 bytes data, client => server 09:41:13.269854 'PWD\r\n' 09:41:13.271032 Received DATA (on stdin) 09:41:13.271194 > 30 bytes data, server => client 09:41:13.271811 '257 "/" is current directory\r\n' 09:41:13.272522 < 6 bytes data, client => server 09:41:13.272669 'EPSV\r\n' 09:41:13.293050 Received DATA (on stdin) 09:41:13.293167 > 38 bytes data, server => client 09:41:13.293243 '229 Entering Passive Mode (|||34263|)\n' 09:41:13.294439 < 8 bytes data, client => server 09:41:13.294641 'TYPE I\r\n' 09:41:13.296942 Received DATA (on stdin) 09:41:13.297078 > 33 bytes data, server => client 09:41:13.297183 '200 I modify TYPE as you wanted\r\n' 09:41:13.297850 < 21 bytes data, client => server 09:41:13.297979 'SIZE verifiedserverMismatch in protocols lists: curl: curl-config: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss CMD (256): /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/5/stdout1013 protocols CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind991 ../src/curl -q --output log/57/curl991.out --include --trace-ascii log/57/trace991 --trace-config all --trace-time http://127.0.0.1:35945/991 -w '%output{>>log/57/output}%{http_code}' > log/57/stdout991 2> log/57/stderr991 \r\n' 09:41:13.299542 Received DATA (on stdin) 09:41:13.299673 > 8 bytes data, server => client 09:41:13.299758 '213 17\r\n' 09:41:13.300289 < 21 bytes data, client => server 09:41:13.300417 'RETR verifiedserver\r\n' 09:41:13.302899 Received DATA (on stdin) 09:41:13.303028 > 29 bytes data, server => client 09:41:13.303106 '150 Binary junk (17 bytes).\r\n' 09:41:13.309579 Received DATA (on stdin) 09:41:13.309733 > 28 bytes data, server => client 09:41:13.309813 '226 File transfer complete\r\n' 09:41:13.344635 < 6 bytes data, client => server 09:41:13.344831 'QUIT\r\n' 09:41:13.347659 Received DATA (on stdin) 09:41:13.347800 > 18 bytes data, server => client 09:41:13.347886 '221 bye bye baby\r\n' 09:41:13.348546 ====> Client disconnect 09:41:13.349152 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:13.289413 Running IPv4 version 09:41:13.290042 Listening on port 34263 09:41:13.290546 Wrote pid 121565 to log/20/server/ftp_sockdata.pid 09:41:13.290729 Received PING (on stdin) 09:41:13.291418 Received PORT (on stdin) 09:41:13.294912 ====> Client connect 09:41:13.303382 Received DATA (on stdin) 09:41:13.303585 > 17 bytes data, server => client 09:41:13.303691 'WE ROOLZ: 79624\r\n' 09:41:13.303938 Received DISC (on stdin) 09:41:13.304087 ====> Client forcibly disconnected 09:41:13.307303 Received QUIT (on stdin) 09:41:13.307509 quits 09:41:13.307893 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY AUTH 500 unknown command\r\n500 unknown command\r\n331 give password\r\n230 Authenticated\r\n257 "/"\r\n200 OK\r\n200 OK\r\n200 OK\r\n226 Transfer complete REPLY PASS 530 Login incorrect Testnum 983 === End of file server.cmd === Start of file test983.txt data to see that FTPS works so does it? === End of file test983.txt === Start of file valgrind983 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind983 test 0990...[use -w %output{}] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind990 ../src/curl -q --output log/37/curl990.out --include --trace-ascii log/37/trace990 --trace-config all --trace-time http://127.0.0.1:37551/990 -w '%output{log/37/output}%{http_code}\n' > log/37/stdout990 2> log/37/stderr990 990: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 990 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind990 ../src/curl -q --output log/37/curl990.out --include --trace-ascii log/37/trace990 --trace-config all --trace-time http://127.0.0.1:37551/990 -w '%output{log/37/output}%{http_code}\n' > log/37/stdout990 2> log/37/stderr990 === End of file commands.log === Start of file http_server.log 09:41:13.421753 ====> Client connect 09:41:13.422078 accept_connection 3 returned 4 09:41:13.422243 accept_connection 3 returned 0 09:41:13.422943 Read 93 bytes 09:41:13.423111 Process 93 bytes request 09:41:13.423205 Got request: GET /verifiedserver HTTP/1.1 09:41:13.423299 Are-we-friendly question received 09:41:13.423648 Wrote request (93 bytes) input to log/37/server.input 09:41:13.423852 Identifying ourselves as friends 09:41:13.424387 Response sent (56 bytes) and written to log/37/server.response 09:41:13.424586 special request received, no persistency 09:41:13.424673 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 990 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind990 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind990 * starts no server test 1013...[Compare curl --version with curl-config --protocols] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1013 ../src/curl -q --output log/5/curl1013.out --include --trace-ascii log/5/trace1013 --trace-config all --trace-time --version > log/5/stdout1013 2> log/5/stderr1013 postcheck /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/5/stdout1013 protocols 1013: postcheck FAILED == Contents of files in the log/5/ dir after test 1013 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1013 ../src/curl -q --output log/5/curl1013.out --include --trace-ascii log/5/trace1013 --trace-config all --trace-time --version > log/5/stdoutCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind976 ../src/curl -q --output log/22/curl976.out --include --trace-ascii log/22/trace976 --trace-config all --trace-time -x http://127.0.0.1:40073 http://firsthost.com --location-trusted -u joe:secret > log/22/stdout976 2> log/22/stderr976 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind973 ../src/curl -q --output log/24/curl973.out --include --trace-ascii log/24/trace973 --trace-config all --trace-time http://127.0.0.1:39259/973 -L -u joe:secret > log/24/stdout973 2> log/24/stderr973 1013 2> log/5/stderr1013 === End of file commands.log === Start of file server.cmd Testnum 1013 === End of file server.cmd === Start of file valgrind1013 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1013 test 0991...[use -w %output{} append] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind991 ../src/curl -q --output log/57/curl991.out --include --trace-ascii log/57/trace991 --trace-config all --trace-time http://127.0.0.1:35945/991 -w '%output{>>log/57/output}%{http_code}' > log/57/stdout991 2> log/57/stderr991 991: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 991 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind991 ../src/curl -q --output log/57/curl991.out --include --trace-ascii log/57/trace991 --trace-config all --trace-time http://127.0.0.1:35945/991 -w '%output{>>log/57/output}%{http_code}' > log/57/stdout991 2> log/57/stderr991 === End of file commands.log === Start of file http_server.log 09:41:13.548843 ====> Client connect 09:41:13.549151 accept_connection 3 returned 4 09:41:13.549294 accept_connection 3 returned 0 09:41:13.549722 Read 93 bytes 09:41:13.549881 Process 93 bytes request 09:41:13.549963 Got request: GET /verifiedserver HTTP/1.1 09:41:13.550032 Are-we-friendly question received 09:41:13.550271 Wrote request (93 bytes) input to log/57/server.input 09:41:13.550586 Identifying ourselves as friends 09:41:13.551433 Response sent (56 bytes) and written to log/57/server.response 09:41:13.551625 special request received, no persistency 09:41:13.551698 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file output line one === End of file output === Start of file server.cmd Testnum 991 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind991 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind991 test 0976...[HTTP with auth redirected to HTTP on a diff port --location-trusted] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind976 ../src/curl -q --output log/22/curl976.out --include --trace-ascii log/22/trace976 --trace-config all --trace-time -x http://127.0.0.1:40073 http://firsthost.com --location-trusted -u joe:secret > log/22/stdout976 2> log/22/stderr976 976: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 976 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind976 ../src/curl -q --output log/22/curl976.out --include --trace-ascii log/22/trace976 --trace-config all --trace-time -x http://127.0.0.1:40073 http://firsthost.com --location-trusted -u joe:secret > log/22/stdout976 2> log/22/stderr976 === End of file commands.log === Start of file http_server.log 09:41:13.042940 ====> Client connect 09:41:13.043375 accept_connection 3 returned 4 09:41:13.043943 accept_connection 3 returned 0 09:41:13.044156 Read 93 bytes 09:41:13.044281 Process 93 bytes request 09:41:13.044428 Got request: GET /verifiedserver HTTP/1.1 09:41:13.044631 Are-we-friendly question received 09:41:13.044927 Wrote request (93 bytes) input to log/22/server.input 09:41:13.045192 Identifying ourselves as friends 09:41:13.045995 Response sent (56 bytes) and written to log/22/server.response 09:41:13.046113 special request received, no persistency 09:41:13.046178 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40073... * Connected to 127.0.0.1 (127.0.0.1) port 40073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73785 === End of file http_verify.out === Start of file server.cmd Testnum 976 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73785 === End of file server.response === Start of file valgrind976 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind976 test 0973...[HTTP with auth redirected to FTP w/o auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind973 ../src/curl -q --output log/24/curl973.out --include --trace-ascii log/24/trace973 --trace-config all --trace-time http://127.0.0.1:39259/973 -L -u joe:secret > log/24/stdout973 2> log/24/stderr973 973: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 973 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind973 ../src/curl -q --output log/24/curl973.out --include --trace-ascii log/24/trace973 --trace-config all --trace-time http://127.0.0.1:39259/973 -L -u joe:secret > log/24/stdout973 2> log/24/stderr973 === End of file commands.log === Start of file ftp_server.log 09:41:13.079950 ====> Client connect 09:41:13.084977 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.087237 < "USER anonymous" 09:41:13.087584 > "331 We are happy you popped in![CR][LF]" 09:41:13.089970 < "PASS ftp@example.com" 09:41:13.091155 > "230 Welcome you silly person[CR][LF]" 09:41:13.092994 < "PWD" 09:41:13.094196 > "257 "/" is current directory[CR][LF]" 09:41:13.095973 < "EPSV" 09:41:13.096265 ====> Passive DATA channel requested by client 09:41:13.096476 DATA sockfilt for passive data channel starting... 09:41:13.133677 DATA sockfilt for passive data channel started (pid 121700) 09:41:13.134674 DATA sockfilt for passive data channel listens on port 40567 09:41:13.135183 > "229 Entering Passive Mode (|||40567|)[LF]" 09:41:13.135431 Client has been notified that DATA conn will be accepted on port 40567 09:41:13.146023 Client connects to port 40567 09:41:13.146362 ====> Client established passive DATA connection on port 40567 09:41:13.147228 < "TYPE I" 09:41:13.147656 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:13.150562 < "SIZE verifiedserver" 09:41:13.154940 > "213 17[CR][LF]" 09:41:13.155633 < "RETR verifiedserver" 09:41:13.156156 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:13.157232 =====> Closing passive DATA connection... 09:41:13.157485 Server disconnects passive DATA connection 09:41:13.165912 Fancy that; client wants to DISC, too 09:41:13.166333 Server disconnected passive DATA connection 09:41:13.166604 DATA sockfilt for passive data channel quits (pid 121700) 09:41:13.171017 DATA sockfilt for passive data channel quit (pid 121700) 09:41:13.171313 =====> Closed passive DATA connection 09:41:13.173958 > "226 File transfer complete[CR][LF]" 09:41:13.206444 < "QUIT" 09:41:13.208135 > "221 bye bye baby[CR][LF]" 09:41:13.209049 MAIN sockfilt said DISC 09:41:13.210187 ====> Client disconnected 09:41:13.210966 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:13.332664 ====> Client connect 09:41:13.334823 Received DATA (on stdin) 09:41:13.334977 > 160 bytes data, server => client 09:41:13.339080 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:13.339225 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:13.339320 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:13.341630 < 16 bytes data, client => server 09:41:13.341776 'USER anonymous\r\n' 09:41:13.341884 Received DATA (on stdin) 09:41:13.341966 > 33 bytes data, server => client 09:41:13.342044 '331 We are happy you popped in!\r\n' 09:41:13.342806 < 22 bytes data, client => server 09:41:13.342953 'PASS ftp@example.com\r\n' 09:41:13.344065 Received DATA (on stdin) 09:41:13.344198 > 30 bytes data, server => client 09:41:13.344375 '230 Welcome you silly person\r\n' 09:41:13.345978 < 5 bytes data, client => server 09:41:13.346139 'PWD\r\n' 09:41:13.347120 Received DATA (on stdin) 09:41:13.347268 > 30 bytes data, server => client 09:41:13.347438 '257 "/" is current directory\r\n' 09:41:13.348956 < 6 bytes data, client => server 09:41:13.349125 'EPSV\r\n' 09:41:13.393575 Received DATA (on stdin) 09:41:13.393737 > 38 bytes data, server => client 09:41:13.393837 '229 Entering Passive Mode (|||40567|)\n' 09:41:13.399798 < 8 bytes data, client => server 09:41:13.399962 'TYPE I\r\n' 09:41:13.401829 Received DATA (on stdin) 09:41:13.402127 > 33 bytes data, server => client 09:41:13.402271 '200 I modify TYPE as you wanted\r\n' 09:41:13.403368 < 21 bytes data, client => server 09:41:13.403620 'SIZE verifiedserver\r\n' 09:41:13.404803 Received DATA (on stdin) 09:41:13.404959 > 8 bytes data, server => client 09:41:13.405148 '213 17\r\n' 09:41:13.406208 < 21 bytes data, client => server 09:41:13.406357 'RETR verifiedserver\r\n' 09:41:13.413657 Received DATA (on stdin) 09:41:13.413835 > 29 bytes data, server => client 09:41:13.413944 '150 Binary junk (17 bytes).\r\n' 09:41:13.425390 Received DATA (on stdin) 09:41:13.425638 > 28 bytes data, server => client 09:41:13.428040 '226 File transfer complete\r\n' 09:41:13.458807 < 6 bytes data, client => server 09:41:13.459013 'QUIT\r\n' 09:41:13.460791 Received DATA (on stdin) 09:41:13.460957 > 18 bytes data, server => client 09:41:13.461139 '221 bye bye baby\r\n' 09:41:13.462333 ====> Client disconnect 09:41:13.463190 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:13.385906 Running IPv4 version 09:41:13.386430 Listening on port 40567 09:41:13.386897 Wrote pid 121700 to log/24/server/ftp_sockdata.pid 09:41:13.387089 Received PING (on stdin) 09:41:13.387867 Received PORT (on stdin) 09:41:13.399332 ====> Client connect 09:41:13.414674 Received DATA (on stdin) 09:41:13.415041 > 17 bytes data, server => client 09:41:13.415119 'WE ROOLZ: 77469\r\n' 09:41:13.416364 ====> Client disconnect 09:41:13.417046 Received DISC (on stdin) 09:41:13.417188 Crikey! Client also wants to disconnect 09:41:13.420707 Received ACKD (on stdin) 09:41:13.421369 Received QUIT (on stdin) 09:41:13.421601 quits 09:41:13.422005 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:12.857962 ====> Client connect 09:41:12.858276 accept_connection 3 returned 4 09:41:12.858576 accept_connection 3 returned 0 09:41:12.858748 Read 93 bytes 09:41:12.858839 Process 93 bytes request 09:41:12.858929 Got request: GET /verifiedserver HTTP/1.1 09:41:12.859021 Are-we-friendly question received 09:41:12.859279 Wrote request (93 bytes) inpuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind995 ../src/curl -q --trace-ascii log/17/trace995 --trace-config all --trace-time -o log/17/there http://127.0.0.1:44383/995 --skip-existing > log/17/stdout995 2> log/17/stderr995 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1018 ../src/curl -q --trace-ascii log/28/trace1018 --trace-config all --trace-time -r 4-4 file://localhost/build/curl/src/build-curl/tests/log/28/test1018.txt > log/28/stdout1018 2> log/28/stderr1018 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind981 ../src/curl -q --output log/11/curl981.out --include --trace-ascii log/11/trace981 --trace-config all --trace-time imap://127.0.0.1:37005/981 -T log/11/upload981 -u user:secret --ssl > log/11/stdout981 2> log/11/stderr981 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind992 ../src/curl -q --output log/63/curl992.out --include --trace-ascii log/63/trace992 --trace-config all --trace-time smtp://127.0.0.1:37683/992 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --login-options "AUTH=XOAUTH2" -T - log/63/stdout992 2> log/63/stderr992 t to log/24/server.input 09:41:12.859559 Identifying ourselves as friends 09:41:12.860406 Response sent (56 bytes) and written to log/24/server.response 09:41:12.860618 special request received, no persistency 09:41:12.860708 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 973 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind973 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind973 test 0995...[--skip-existing without file present] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind995 ../src/curl -q --trace-ascii log/17/trace995 --trace-config all --trace-time -o log/17/there http://127.0.0.1:44383/995 --skip-existing > log/17/stdout995 2> log/17/stderr995 995: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 995 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind995 ../src/curl -q --trace-ascii log/17/trace995 --trace-config all --trace-time -o log/17/there http://127.0.0.1:44383/995 --skip-existing > log/17/stdout995 2> log/17/stderr995 === End of file commands.log === Start of file http_server.log 09:41:13.823735 ====> Client connect 09:41:13.824089 accept_connection 3 returned 4 09:41:13.824270 accept_connection 3 returned 0 09:41:13.824932 Read 93 bytes 09:41:13.825081 Process 93 bytes request 09:41:13.825169 Got request: GET /verifiedserver HTTP/1.1 09:41:13.825258 Are-we-friendly question received 09:41:13.825630 Wrote request (93 bytes) input to log/17/server.input 09:41:13.825842 Identifying ourselves as friends 09:41:13.826410 Response sent (56 bytes) and written to log/17/server.response 09:41:13.826633 special request received, no persistency 09:41:13.826715 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 995 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind995 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind995 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/11/server/imap_server.pid" --logfile "log/11/imap_server.log" --logdir "log/11" --portfile "log/11/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37005 (log/11/server/imap_server.port) RUN: IMAP server is PID 120770 port 37005 * pid imap => 120770 120770 test 0981...[IMAP STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind981 ../src/curl -q --output log/11/curl981.out --include --trace-ascii log/11/trace981 --trace-config all --trace-time imap://127.0.0.1:37005/981 -T log/11/upload981 -u user:secret --ssl > log/11/stdout981 2> log/11/stderr981 981: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 981 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind981 ../src/curl -q --output log/11/curl981.out --include --trace-ascii log/11/trace981 --trace-config all --trace-time imap://127.0.0.1:37005/981 -T log/11/upload981 -u user:secret --ssl > log/11/stdout981 2> log/11/stderr981 === End of file commands.log === Start of file imap_server.log 09:41:13.226993 IMAP server listens on port IPv4/37005 09:41:13.228070 logged pid 120770 in log/11/server/imap_server.pid 09:41:13.228358 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:13.476979 Running IPv4 version 09:41:13.478544 Listening on port 37005 09:41:13.479080 Wrote pid 121861 to log/11/server/imap_sockfilt.pid 09:41:13.479629 Wrote port 37005 to log/11/server/imap_server.port 09:41:13.479945 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd CAPA STARTTLS REPLY STARTTLS A002 BAD currently unavailable\r\nA003 OK Authenticated\r\nA004 OK Accepted REPLY LOGIN A003 BAD Authentication credentials invalid Testnum 981 === End of file server.cmd === Start of file upload981 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload981 === Start of file valgrind981 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind981 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind980 ../src/curl -q --output log/44/curl980.out --include --trace-ascii log/44/trace980 --trace-config all --trace-time smtp://127.0.0.1:38331/980 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --ssl --sasl-ir -T - log/44/stdout980 2> log/44/stderr980 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1014 ../src/curl -q --output log/54/curl1014.out --include --trace-ascii log/54/trace1014 --trace-config all --trace-time --version > log/54/stdout1014 2> log/54/stderr1014 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1017 ../src/curl -q --trace-ascii log/55/trace1017 --trace-config all --trace-time -r 0-3 file://localhost/build/curl/src/build-curl/tests/log/55/test1017.txt > log/55/stdout1017 2> log/55/stderr1017 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind977 ../src/curl -q --output log/23/curl977.out --include --trace-ascii log/23/trace977 --trace-config all --trace-time -x http://127.0.0.1:42467 http://firsthost.me. -c log/23/cookies977 > log/23/stdout977 2> log/23/stderr977 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1020 ../src/curl -q --trace-ascii log/29/trace1020 --trace-config all --trace-time -r -9 file://localhost/build/curl/src/build-curl/tests/log/29/test1020.txt > log/29/stdout1020 2> log/29/stderr1020 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1004 ../src/curl -q --output log/48/curl1004.out --include --trace-ascii log/48/trace1004 --trace-config all --trace-time http://127.0.0.1:46339/1004 --proxy "" > log/48/stdout1004 2> log/48/stderr1004 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1016 ../src/curl -q --trace-ascii log/58/trace1016 --trace-config all --trace-time -r 1-4 file://localhost/build/curl/src/build-curl/tests/log/58/test1016.txt > log/58/stdout1016 2> log/58/stderr1016 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind975 ../src/curl -q --output log/8/curl975.out --include --trace-ascii log/8/trace975 --trace-config all --trace-time http://127.0.0.1:46129/975 --location-trusted -u joe:secret > log/8/stdout975 2> log/8/stderr975 * starts no server test 1018...[X-X range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1018 ../src/curl -q --trace-ascii log/28/trace1018 --trace-config all --trace-time -r 4-4 file://localhost/build/curl/src/build-curl/tests/log/28/test1018.txt > log/28/stdout1018 2> log/28/stderr1018 1018: stdout FAILED: --- log/28/check-expected 2025-07-18 09:41:14.853483378 +0000 +++ log/28/check-generated 2025-07-18 09:41:14.852590898 +0000 @@ -1 +0,0 @@ -5 == Contents of files in the log/28/ dir after test 1018 === Start of file check-expected 5 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1018 ../src/curl -q --trace-ascii log/28/trace1018 --trace-config all --trace-time -r 4-4 file://localhost/build/curl/src/build-curl/tests/log/28/test1018.txt > log/28/stdout1018 2> log/28/stderr1018 === End of file commands.log === Start of file server.cmd Testnum 1018 === End of file server.cmd === Start of file test1018.txt 1234567890 === End of file test1018.txt === Start of file valgrind1018 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1018 test 0992...[SASL verify default mechanisms are reset by login options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind992 ../src/curl -q --output log/63/curl992.out --include --trace-ascii log/63/trace992 --trace-config all --trace-time smtp://127.0.0.1:37683/992 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --login-options "AUTH=XOAUTH2" -T - log/63/stdout992 2> log/63/stderr992 992: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 992 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind992 ../src/curl -q --output log/63/curl992.out --include --trace-ascii log/63/trace992 --trace-config all --trace-time smtp://127.0.0.1:37683/992 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --login-options "AUTH=XOAUTH2" -T - log/63/stdout992 2> log/63/stderr992 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER XOAUTH2 REPLY AUTH 334 XOAUTH2 supported REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB 235 Authenticated Testnum 992 === End of file server.cmd === Start of file smtp_server.log 09:41:13.383899 ====> Client connect 09:41:13.385416 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.389471 < "EHLO verifiedserver" 09:41:13.390127 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:13.398481 < "HELP" 09:41:13.400275 > "214 WE ROOLZ: 118163[CR][LF]" 09:41:13.400553 return proof we are we 09:41:13.403418 < "QUIT" 09:41:13.404431 > "221 curl ESMTP server signing off[CR][LF]" 09:41:13.411545 MAIN sockfilt said DISC 09:41:13.411974 ====> Client disconnected 09:41:13.412475 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:13.635626 ====> Client connect 09:41:13.639555 Received DATA (on stdin) 09:41:13.639714 > 160 bytes data, server => client 09:41:13.639799 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:13.639873 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:13.639943 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:13.641074 < 21 bytes data, client => server 09:41:13.641288 'EHLO verifiedserver\r\n' 09:41:13.645568 Received DATA (on stdin) 09:41:13.645765 > 53 bytes data, server => client 09:41:13.645868 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:13.651117 < 6 bytes data, client => server 09:41:13.651281 'HELP\r\n' 09:41:13.652953 Received DATA (on stdin) 09:41:13.653407 > 22 bytes data, server => client 09:41:13.654563 '214 WE ROOLZ: 118163\r\n' 09:41:13.656133 < 6 bytes data, client => server 09:41:13.656371 'QUIT\r\n' 09:41:13.657759 Received DATA (on stdin) 09:41:13.657935 > 35 bytes data, server => client 09:41:13.658445 '221 curl ESMTP server signing off\r\n' 09:41:13.662938 ====> Client disconnect 09:41:13.666565 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-992 mail body === End of file stdin-for-992 === Start of file valgrind992 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind992 test 0977...[URL with trailing dot and receiving a cookie for the TLD with dot] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind977 ../src/curl -q --output log/23/curl977.out --include --tracCMD (256): /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/54/stdout1014 features > log/54/result1014 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1019 ../src/curl -q --trace-ascii log/40/trace1019 --trace-config all --trace-time -r 7- file://localhost/build/curl/src/build-curl/tests/log/40/test1019.txt > log/40/stdout1019 2> log/40/stderr1019 e-ascii log/23/trace977 --trace-config all --trace-time -x http://127.0.0.1:42467 http://firsthost.me. -c log/23/cookies977 > log/23/stdout977 2> log/23/stderr977 977: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 977 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind977 ../src/curl -q --output log/23/curl977.out --include --trace-ascii log/23/trace977 --trace-config all --trace-time -x http://127.0.0.1:42467 http://firsthost.me. -c log/23/cookies977 > log/23/stdout977 2> log/23/stderr977 === End of file commands.log === Start of file http_server.log 09:41:13.149882 ====> Client connect 09:41:13.150167 accept_connection 3 returned 4 09:41:13.150311 accept_connection 3 returned 0 09:41:13.150428 Read 93 bytes 09:41:13.150708 Process 93 bytes request 09:41:13.150806 Got request: GET /verifiedserver HTTP/1.1 09:41:13.150891 Are-we-friendly question received 09:41:13.151136 Wrote request (93 bytes) input to log/23/server.input 09:41:13.151322 Identifying ourselves as friends 09:41:13.152198 Response sent (56 bytes) and written to log/23/server.response 09:41:13.152315 special request received, no persistency 09:41:13.152384 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 977 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind977 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind977 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1012 ../src/curl -q --output log/26/curl1012.out --include --trace-ascii log/26/trace1012 --trace-config all --trace-time http://127.0.0.1:46481/blah/1012 -L -d "moo" --post301 > log/26/stdout1012 2> log/26/stderr1012 * starts no server test 1020...[-Y range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1020 ../src/curl -q --trace-ascii log/29/trace1020 --trace-config all --trace-time -r -9 file://localhost/build/curl/src/build-curl/tests/log/29/test1020.txt > log/29/stdout1020 2> log/29/stderr1020 1020: stdout FAILED: --- log/29/check-expected 2025-07-18 09:41:15.063297032 +0000 +++ log/29/check-generated 2025-07-18 09:41:15.053590797 +0000 @@ -1 +0,0 @@ -34567890[LF] == Contents of files in the log/29/ dir after test 1020 === Start of file check-expected 34567890[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1020 ../src/curl -q --trace-ascii log/29/trace1020 --trace-config all --trace-time -r -9 file://localhost/build/curl/src/build-curl/tests/log/29/test1020.txt > log/29/stdout1020 2> log/29/stderr1020 === End of file commands.log === Start of file server.cmd Testnum 1020 === End of file server.cmd === Start of file test1020.txt 1234567890 1234567890 === End of file test1020.txt === Start of file valgrind1020 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1020 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/44/server/smtp_server.pid" --logfile "log/44/smtp_server.log" --logdir "log/44" --portfile "log/44/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38331 (log/44/server/smtp_server.port) RUN: SMTP server is PID 120704 port 38331 * pid smtp => 120704 120704 test 0980...[SMTP STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind980 ../src/curl -q --output log/44/curl980.out --include --trace-ascii log/44/trace980 --trace-config all --trace-time smtp://127.0.0.1:38331/980 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --ssl --sasl-ir -T - log/44/stdout980 2> log/44/stderr980 980: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 980 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind980 ../src/curl -q --output log/44/curl980.out --include --trace-ascii log/44/trace980 --trace-config all --trace-time smtp://127.0.0.1:38331/980 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --ssl --sasl-ir -T - log/44/stdout980 2> log/44/stderr980 === End of file commands.log === Start of file server.cmd CAPA STARTTLS AUTH PLAIN REPLY STARTTLS 454 currently unavailable\r\n235 Authenticated\r\n250 2.1.0 Sender ok\r\n250 2.1.5 Recipient ok\r\n354 Enter mail\r\n250 2.0.0 Accepted REPLY AUTH 535 5.7.8 Authentication credentials invalid Testnum 980 === End of file server.cmd === Start of file smtp_server.log 09:41:13.048273 SMTP server listens on port IPv4/38331 09:41:13.049402 logged pid 120704 in log/44/server/smtp_server.pid 09:41:13.049693 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:13.299734 Running IPv4 version 09:41:13.300331 Listening on port 38331 09:41:13.300841 Wrote pid 121580 to log/44/server/smtp_sockfilt.pid 09:41:13.301186 Wrote port 38331 to log/44/server/smtp_server.port 09:41:13.301358 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-980 mail body === End of file stdin-for-980 === Start of file valgrind980 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind980 test 1004...[HTTP GET with empty proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1004 ../src/curl -q --output log/48/curl1004.out --include --trace-ascii log/48/trace1004 --trace-config all --trace-time http://127.0.0.1:46339/1004 --proxy "" > log/48/stdout1004 2> log/48/stderr1004 1004: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 1004 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1004 ../src/curl -q --output log/48/curl1004.out --include --trace-ascii log/48/trace1004 --trace-config all --trace-time http://127.0.0.1:46339/1004 --proxy "" > log/48/stdout1004 2> log/48/stderr1004 === End of file commands.log === Start of file http_server.log 09:41:14.201929 ====> Client connect 09:41:14.202305 accept_connection 3 returned 4 09:41:14.202673 accept_connection 3 returned 0 09:41:14.202862 Read 93 bytes 09:41:1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind998 ../src/curl -q --output log/59/curl998.out --include --trace-ascii log/59/trace998 --trace-config all --trace-time -x 127.0.0.1:43695 http://alberto:einstein@somwhere.example/998 --location-trusted > log/59/stdout998 2> log/59/stderr998 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1003 ../src/curl -q --output log/50/curl1003.out --include --trace-ascii log/50/trace1003 --trace-config all --trace-time ftp://127.0.0.1:36567/path/1003 > log/50/stdout1003 2> log/50/stderr1003 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind999 ../src/curl -q --output log/47/curl999.out --include --trace-ascii log/47/trace999 --trace-config all --trace-time -x 127.0.0.1:41103 http://alberto:einstein@somwhere.example/999 http://somewhere.else.example/999 > log/47/stdout999 2> log/47/stderr999 4.202964 Process 93 bytes request 09:41:14.203048 Got request: GET /verifiedserver HTTP/1.1 09:41:14.203116 Are-we-friendly question received 09:41:14.203353 Wrote request (93 bytes) input to log/48/server.input 09:41:14.207744 Identifying ourselves as friends 09:41:14.208753 Response sent (56 bytes) and written to log/48/server.response 09:41:14.208870 special request received, no persistency 09:41:14.208934 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 1004 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind1004 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1004 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1005 ../src/curl -q --output log/35/curl1005.out --include --trace-ascii log/35/trace1005 --trace-config all --trace-time ftp://127.0.0.1:39447/path/1005 > log/35/stdout1005 2> log/35/stderr1005 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind994 ../src/curl -q --include --trace-ascii log/38/trace994 --trace-config all --trace-time -o "log/38/#1" "http://127.0.0.1:33511/994/{hey,ho}" --skip-existing > log/38/stdout994 2> log/38/stderr994 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1010 ../src/curl -q --output log/9/curl1010.out --include --trace-ascii log/9/trace1010 --trace-config all --trace-time ftp://127.0.0.1:36293//list/this/path/1010/ ftp://127.0.0.1:36293//list/this/path/1010/ --ftp-method nocwd > log/9/stdout1010 2> log/9/stderr1010 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind996 ../src/curl -q --include --trace-ascii log/46/trace996 --trace-config all --trace-time -o log/46/there http://127.0.0.1:46523/996 --skip-existing > log/46/stdout996 2> log/46/stderr996 * starts no server test 1017...[0-Y range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1017 ../src/curl -q --trace-ascii log/55/trace1017 --trace-config all --trace-time -r 0-3 file://localhost/build/curl/src/build-curl/tests/log/55/test1017.txt > log/55/stdout1017 2> log/55/stderr1017 1017: stdout FAILED: --- log/55/check-expected 2025-07-18 09:41:15.174542775 +0000 +++ log/55/check-generated 2025-07-18 09:41:15.173590736 +0000 @@ -1 +0,0 @@ -1234 == Contents of files in the log/55/ dir after test 1017 === Start of file check-expected 1234 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1017 ../src/curl -q --trace-ascii log/55/trace1017 --trace-config all --trace-time -r 0-3 file://localhost/build/curl/src/build-curl/tests/log/55/test1017.txt > log/55/stdout1017 2> log/55/stderr1017 === End of file commands.log === Start of file server.cmd Testnum 1017 === End of file server.cmd === Start of file test1017.txt 1234567890 === End of file test1017.txt === Start of file valgrind1017 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1017 test 0975...[HTTP with auth redirected to FTP allowing auth to continue] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind975 ../src/curl -q --output log/8/curl975.out --include --trace-ascii log/8/trace975 --trace-config all --trace-time http://127.0.0.1:46129/975 --location-trusted -u joe:secret > log/8/stdout975 2> log/8/stderr975 975: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 975 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind975 ../src/curl -q --output log/8/curl975.out --include --trace-ascii log/8/trace975 --trace-config all --trace-time http://127.0.0.1:46129/975 --location-trusted -u joe:secret > log/8/stdout975 2> log/8/stderr975 === End of file commands.log === Start of file ftp_server.log 09:41:13.159455 ====> Client connect 09:41:13.161931 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.163942 < "USER anonymous" 09:41:13.165074 > "331 We are happy you popped in![CR][LF]" 09:41:13.167180 < "PASS ftp@example.com" 09:41:13.168029 > "230 Welcome you silly person[CR][LF]" 09:41:13.169939 < "PWD" 09:41:13.171179 > "257 "/" is current directory[CR][LF]" 09:41:13.172817 < "EPSV" 09:41:13.173112 ====> Passive DATA channel requested by client 09:41:13.173313 DATA sockfilt for passive data channel starting... 09:41:13.187425 DATA sockfilt for passive data channel started (pid 121804) 09:41:13.188586 DATA sockfilt for passive data channel listens on port 41231 09:41:13.189111 > "229 Entering Passive Mode (|||41231|)[LF]" 09:41:13.189377 Client has been notified that DATA conn will be accepted on port 41231 09:41:13.192175 Client connects to port 41231 09:41:13.192504 ====> Client established passive DATA connection on port 41231 09:41:13.193339 < "TYPE I" 09:41:13.193864 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:13.196434 < "SIZE verifiedserver" 09:41:13.198009 > "213 17[CR][LF]" 09:41:13.199651 < "RETR verifiedserver" 09:41:13.200327 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:13.201334 =====> Closing passive DATA connection... 09:41:13.201695 Server disconnects passive DATA connection 09:41:13.210331 Fancy that; client wants to DISC, too 09:41:13.211313 Server disconnected passive DATA connection 09:41:13.211558 DATA sockfilt for passive data channel quits (pid 121804) 09:41:13.219038 DATA sockfilt for passive data channel quit (pid 121804) 09:41:13.219357 =====> Closed passive DATA connection 09:41:13.219705 > "226 File transfer complete[CR][LF]" 09:41:13.251829 < "QUIT" 09:41:13.252263 > "221 bye bye baby[CR][LF]" 09:41:13.261662 MAIN sockfilt said DISC 09:41:13.262524 ====> Client disconnected 09:41:13.263191 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:13.412657 ====> Client connect 09:41:13.414574 Received DATA (on stdin) 09:41:13.414874 > 160 bytes data, server => client 09:41:13.415155 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:13.415281 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:13.415367 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:13.416764 < 16 bytes data, client => server 09:41:13.416901 'USER anonymous\r\n' 09:41:13.418162 Received DATA (on stdin) 09:41:13.418566 > 33 bytes data, server => client 09:41:13.419179 '331 We are happy you popped in!\r\n' 09:41:13.419967 < 22 bytes data, client => server 09:41:13.420103 'PASS ftp@example.com\r\n' 09:41:13.421312 Received DATA (on stdin) 09:41:13.421442 > 30 bytes data, server => client 09:41:13.422036 '230 Welcome you silly person\r\n' 09:41:13.422804 < 5 bytes data, client => server 09:41:13.422939 'PWD\r\n' 09:41:13.424096 Received DATA (on stdin) 09:41:13.424256 > 30 bytes data, server => client 09:41:13.424498 '257 "/" is current directory\r\n' 09:41:13.425885 < 6 bytes data, client => server 09:41:13.426030 'EPSV\r\n' 09:41:13.443401 Received DATA (on stdin) 09:41:13.443616 > 38 bytes data, server => client 09:41:13.443714 '229 Entering Passive Mode (|||41231|)\n' 09:41:13.445446 < 8 bytes data, client => server 09:41:13.445649 'TYPE I\r\n' 09:41:13.447986 Received DATA (on stdin) 09:41:13.448193 > 33 bytes data, server => client 09:41:13.448295 '200 I modify TYPE as you wanted\r\n' 09:41:13.449150 < 21 bytes data, client => server 09:41:13.449286 'SIZE verifiedserver\r\n' 09:41:13.450750 Received DATA (on stdin) 09:41:13.450894 > 8 bytes data, server => client 09:41:13.451056 '213 17\r\n' 09:41:13.452308 < 21 bytes data, client => server 09:41:13.452586 'RETR verifiedserver\r\n' 09:41:13.457579 Received DATA (on stdin) 09:41:13.457906 > 29 bytes data, server => client 09:41:13.458034 '150 Binary junk (17 bytes).\r\n' 09:41:13.474036 Received DATA (on stdin) 09:41:13.474177 > 28 bytes data, server => client 09:41:13.474269 '226 File transfer complete\r\n' 09:41:13.50CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1021 ../src/curl -q --output log/36/curl1021.out --include --trace-ascii log/36/trace1021 --trace-config all --trace-time http://test.remote.example.com.1021:44255/path/10210002 --proxy http://127.0.0.1:44255 --proxy-user testuser:testpass --proxy-anyauth --proxytunnel > log/36/stdout1021 2> log/36/stderr1021 4625 < 6 bytes data, client => server 09:41:13.504796 'QUIT\r\n' 09:41:13.506308 Received DATA (on stdin) 09:41:13.506447 > 18 bytes data, server => client 09:41:13.506658 '221 bye bye baby\r\n' 09:41:13.508992 ====> Client disconnect 09:41:13.520654 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:13.439538 Running IPv4 version 09:41:13.440092 Listening on port 41231 09:41:13.440698 Wrote pid 121804 to log/8/server/ftp_sockdata.pid 09:41:13.440852 Received PING (on stdin) 09:41:13.441623 Received PORT (on stdin) 09:41:13.445146 ====> Client connect 09:41:13.458439 Received DATA (on stdin) 09:41:13.458731 > 17 bytes data, server => client 09:41:13.458852 'WE ROOLZ: 77502\r\n' 09:41:13.459932 ====> Client disconnect 09:41:13.464314 Received DISC (on stdin) 09:41:13.464431 Crikey! Client also wants to disconnect 09:41:13.464616 Received ACKD (on stdin) 09:41:13.465591 Received QUIT (on stdin) 09:41:13.465710 quits 09:41:13.466066 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:12.971382 ====> Client connect 09:41:12.972059 accept_connection 3 returned 4 09:41:12.972303 accept_connection 3 returned 0 09:41:12.972427 Read 93 bytes 09:41:12.972614 Process 93 bytes request 09:41:12.972704 Got request: GET /verifiedserver HTTP/1.1 09:41:12.972778 Are-we-friendly question received 09:41:12.972983 Wrote request (93 bytes) input to log/8/server.input 09:41:12.973154 Identifying ourselves as friends 09:41:12.973750 Response sent (56 bytes) and written to log/8/server.response 09:41:12.973846 special request received, no persistency 09:41:12.973908 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 975 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind975 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind975 test 1010...[FTP dir list nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1010 ../src/curl -q --output log/9/curl1010.out --include --trace-ascii log/9/trace1010 --trace-config all --trace-time ftp://127.0.0.1:36293//list/this/path/1010/ ftp://127.0.0.1:36293//list/this/path/1010/ --ftp-method nocwd > log/9/stdout1010 2> log/9/stderr1010 1010: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 1010 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1010 ../src/curl -q --output log/9/curl1010.out --include --trace-ascii log/9/trace1010 --trace-config all --trace-time ftp://127.0.0.1:36293//list/this/path/1010/ ftp://127.0.0.1:36293//list/this/path/1010/ --ftp-method nocwd > log/9/stdout1010 2> log/9/stderr1010 === End of file commands.log === Start of file ftp_server.log 09:41:14.064950 ====> Client connect 09:41:14.069034 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:14.071593 < "USER anonymous" 09:41:14.072442 > "331 We are happy you popped in![CR][LF]" 09:41:14.074535 < "PASS ftp@example.com" 09:41:14.075119 > "230 Welcome you silly person[CR][LF]" 09:41:14.077334 < "PWD" 09:41:14.078350 > "257 "/" is current directory[CR][LF]" 09:41:14.080573 < "EPSV" 09:41:14.081065 ====> Passive DATA channel requested by client 09:41:14.081316 DATA sockfilt for passive data channel starting... 09:41:14.098849 DATA sockfilt for passive data channel started (pid 123186) 09:41:14.100261 DATA sockfilt for passive data channel listens on port 42229 09:41:14.104502 > "229 Entering Passive Mode (|||42229|)[LF]" 09:41:14.104999 Client has been notified that DATA conn will be accepted on port 42229 09:41:14.105307 Client connects to port 42229 09:41:14.105546 ====> Client established passive DATA connection on port 42229 09:41:14.106465 < "TYPE I" 09:41:14.108449 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:14.109649 < "SIZE verifiedserver" 09:41:14.110171 > "213 17[CR][LF]" 09:41:14.112262 < "RETR verifiedserver" 09:41:14.113094 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:14.115115 =====> Closing passive DATA connection... 09:41:14.115336 Server disconnects passive DATA connection 09:41:14.117040 Server disconnected passive DATA connection 09:41:14.117344 DATA sockfilt for passive data channel quits (pid 123186) 09:41:14.119316 DATA sockfilt for passive data channel quit (pid 123186) 09:41:14.119568 =====> Closed passive DATA connection 09:41:14.120285 > "226 File transfer complete[CR][LF]" 09:41:14.156579 < "QUIT" 09:41:14.157493 > "221 bye bye baby[CR][LF]" 09:41:14.164240 MAIN sockfilt said DISC 09:41:14.164566 ====> Client disconnected 09:41:14.165107 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:13.317636 ====> Client connect 09:41:13.321605 Received DATA (on stdin) 09:41:13.321853 > 160 bytes data, server => client 09:41:13.322090 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:13.322246 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:13.322367 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:13.324135 < 16 bytes data, client => server 09:41:13.324301 'USER anonymous\r\n' 09:41:13.325788 Received DATA (on stdin) 09:41:13.325943 > 33 bytes data, server => client 09:41:13.326557 '331 We are happy you popped in!\r\n' 09:41:13.327240 < 22 bytes data, client => server 09:41:13.327398 'PASS ftp@example.com\r\n' 09:41:13.329205 Received DATA (on stdin) 09:41:13.329333 > 30 bytes data, server => client 09:41:13.329432 '230 Welcome you silly person\r\n' 09:41:13.330140 < 5 bytes data, client => server 09:41:13.330290 'PWD\r\n' 09:41:13.331630 Received DATA (on stdin) 09:41:13.331821 > 30 bytes data, server => client 09:41:13.332426 '257 "/" is currentCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1000 ../src/curl -q --output log/51/curl1000.out --include --trace-ascii log/51/trace1000 --trace-config all --trace-time ftp://127.0.0.1:42737/1000/ -I > log/51/stdout1000 2> log/51/stderr1000 directory\r\n' 09:41:13.333263 < 6 bytes data, client => server 09:41:13.333431 'EPSV\r\n' 09:41:13.354592 Received DATA (on stdin) 09:41:13.354775 > 38 bytes data, server => client 09:41:13.354976 '229 Entering Passive Mode (|||42229|)\n' 09:41:13.356960 < 8 bytes data, client => server 09:41:13.357151 'TYPE I\r\n' 09:41:13.360680 Received DATA (on stdin) 09:41:13.360883 > 33 bytes data, server => client 09:41:13.361149 '200 I modify TYPE as you wanted\r\n' 09:41:13.362610 < 21 bytes data, client => server 09:41:13.362756 'SIZE verifiedserver\r\n' 09:41:13.364219 Received DATA (on stdin) 09:41:13.364368 > 8 bytes data, server => client 09:41:13.364543 '213 17\r\n' 09:41:13.365125 < 21 bytes data, client => server 09:41:13.365266 'RETR verifiedserver\r\n' 09:41:13.366346 Received DATA (on stdin) 09:41:13.366566 > 29 bytes data, server => client 09:41:13.367205 '150 Binary junk (17 bytes).\r\n' 09:41:13.373640 Received DATA (on stdin) 09:41:13.373795 > 28 bytes data, server => client 09:41:13.374299 '226 File transfer complete\r\n' 09:41:13.409404 < 6 bytes data, client => server 09:41:13.409648 'QUIT\r\n' 09:41:13.410720 Received DATA (on stdin) 09:41:13.410924 > 18 bytes data, server => client 09:41:13.411708 '221 bye bye baby\r\n' 09:41:13.415738 ====> Client disconnect 09:41:13.419301 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:14.350176 Running IPv4 version 09:41:14.351399 Listening on port 42229 09:41:14.351922 Wrote pid 123186 to log/9/server/ftp_sockdata.pid 09:41:14.352131 Received PING (on stdin) 09:41:14.353132 Received PORT (on stdin) 09:41:14.357839 ====> Client connect 09:41:14.367756 Received DATA (on stdin) 09:41:14.367898 > 17 bytes data, server => client 09:41:14.369263 'WE ROOLZ: 77386\r\n' 09:41:14.369680 Received DISC (on stdin) 09:41:14.369842 ====> Client forcibly disconnected 09:41:14.371394 Received QUIT (on stdin) 09:41:14.371602 quits 09:41:14.371988 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1010 === End of file server.cmd === Start of file valgrind1010 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1010 test 1012...[HTTP POST with 301 redirect and --post301] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1012 ../src/curl -q --output log/26/curl1012.out --include --trace-ascii log/26/trace1012 --trace-config all --trace-time http://127.0.0.1:46481/blah/1012 -L -d "moo" --post301 > log/26/stdout1012 2> log/26/stderr1012 1012: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 1012 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1012 ../src/curl -q --output log/26/curl1012.out --include --trace-ascii log/26/trace1012 --trace-config all --trace-time http://127.0.0.1:46481/blah/1012 -L -d "moo" --post301 > log/26/stdout1012 2> log/26/stderr1012 === End of file commands.log === Start of file http_server.log 09:41:14.242910 ====> Client connect 09:41:14.243308 accept_connection 3 returned 4 09:41:14.243622 accept_connection 3 returned 0 09:41:14.243833 Read 93 bytes 09:41:14.243945 Process 93 bytes request 09:41:14.244044 Got request: GET /verifiedserver HTTP/1.1 09:41:14.244130 Are-we-friendly question received 09:41:14.244348 Wrote request (93 bytes) input to log/26/server.input 09:41:14.244742 Identifying ourselves as friends 09:41:14.245830 Response sent (56 bytes) and written to log/26/server.response 09:41:14.245947 special request received, no persistency 09:41:14.246017 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 1012 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1012 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1012 test 1005...[FTP with excessively large number of server command response lines] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1005 ../src/curl -q --output log/35/curl1005.out --include --trace-ascii log/35/trace1005 --trace-config all --trace-time ftp://127.0.0.1:39447/path/1005 > log/35/stdout1005 2> log/35/stderr1005 1005: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 1005 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1005 ../src/curl -q --output log/35/curl1005.out --include --trace-ascii log/35/trace1005 --trace-config all --trace-time ftp://127.0.0.1:39447/path/1005 > log/35/stdout1005 2> log/35/stderr1005 === End of file commands.log === Start of file ftp_server.log 09:41:13.843732 ====> Client connect 09:41:13.845573 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.848326 < "USER anonymous" 09:41:13.849893 > "331 We are happy you popped in![CR][LF]" 09:41:13.851262 < "PASS ftp@example.com" 09:41:13.852333 > "230 Welcome you silly person[CR][LF]" 09:41:13.854344 < "PWD" 09:41:13.854912 > "257 "/" is current directory[CR][LF]" 09:41:13.857601 < "EPSV" 09:41:13.858025 ====> Passive DATA channel requested by client 09:41:13.858270 DATA sockfilt for passive data channel starting... 09:41:13.871988 DATA sockfilt for passive data channel started (pid 122827) 09:41:13.873086 DATA sockfilt for passive data channel listens on port 43251 09:41:13.873518 > "229 Entering Passive Mode (|||43251|)[LF]" 09:41:13.873826 Client has been notified that DATA conn will be accepted on port 43251 09:41:13.876387 Client connects to port 43251 09:41:13.876691 ====> Client established passive DATA connection on port 43251 09:41:13.877565 < "TYPE I" 09:41:13.878051 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:13.880204 < "SIZE verifiedserver" 09:41:13.880609 > "213 18[CR][LF]" 09:41:13.882692 < "RETR verifiedserver" 09:41:13.884131 > "150 Binary junk (18 bytes).[CR][LF]" 09:41:13.884890 =====> Closing passive DATA connection... 09:41:13.885108 Server disconnects passive DATA connection 09:41:13.886978 Server disconnected passive DATA connection 09:41:13.887259 DATA sockfilt for passive data channel quits (pid 122827) 09:41:13.889195 DATA sockfilt for passive data channel quit (pid 122827) 09:41:13.889515 =====> Closed passive DATA connection 09:41:13.890461 > "226 File transfer complete[CR][LF]" 09:41:13.928870 < "QUIT" 09:41:13.930954 > "221 bye bye baby[CR][LF]" 09:41:13.933490 MAIN sockfilt said DISC 09:41:13.933936 ====> Client disconnected 09:41:13.934499 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:14.096641 ====> Client connect 09:41:14.098869 Received DATA (on stdin) 09:41:14.099025 > 160 bytes data, server => client 09:41:14.099813 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:14.099969 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:14.100056 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:14.100915 < 16 bytes data, client => server 09:41:14.101065 'USER anonymous\r\n' 09:41:14.102432 Received DATA (on stdin) 09:41:14.102670 > 33 bytes data, server => client 09:41:14.102860 '331 We are happy you popped in!\r\n' 09:41:14.104025 < 22 bytes data, client => server 09:41:14.104220 'PASS ftp@example.com\r\n' 09:41:14.105419 Received DATA (on stdin) 09:41:14.105739 > 30 bytes data, server => client 09:41:14.106375 '230 Welcome you silly person\r\n' 09:41:14.107122 < 5 bytes data, client => server 09:41:14.107269 'PWD\r\n' 09:41:14.109059 Received DATA (on stdin) 09:41:14.109220 > 30 bytes data, server => client 09:41:14.109350 '257 "/" is current directory\r\n' 09:41:14.110165 < 6 bytes data, client => server 09:41:14.110379 'EPSV\r\n' 09:41:14.127856 Received DATA (on stdin) 09:41:14.128002 > 38 bytes data, server => client 09:41:14.128083 '229 Entering Passive Mode (|||43251|)\n' 09:41:14.129788 < 8 bytes data, client => server 09:41:14.129910 'TYPE I\r\n' 09:41:14.132065 Received DATA (on stdin) 09:41:14.132185 > 33 bytes data, server => client 09:41:14.132268 '200 I modify TYPE as you wanted\r\n' 09:41:14.133061 < 21 bytes data, client => server 09:41:14.133230 'SIZE verifiedserver\r\n' 09:41:14.134661 Received DATA (on stdin) 09:41:14.134803 > 8 bytes data, server => client 09:41:14.134888 '213 18\r\n' 09:41:14.135592 < 21 bytes data, client => server 09:41:14.135734 'RETR verifiedserver\r\n' 09:41:14.136908 Received DATA (on stdin) 09:41:14.137054 > 29 bytes data, server => client 09:41:14.137211 '150 Binary junk (18 bytes).\r\n' 09:41:14.143594 Received DATA (on stdin) 09:41:14.143733 > 28 bytes data, server => client 09:41:14.143900 '226 File transfer complete\r\n' 09:41:14.181635 < 6 bytes data, client => server 09:41:14.181800 'QUIT\r\n' 09:41:14.183002 Received DATA (on stdin) 09:41:14.183161 > 18 bytes data, server => client 09:41:14.185042 '221 bye bye baby\r\n' 09:41:14.186891 ====> Client disconnect 09:41:14.193594 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:13.124208 Running IPv4 version 09:41:13.124839 Listening on port 43251 09:41:13.125177 Wrote pid 122827 to log/35/server/ftp_sockdata.pid 09:41:13.125355 Received PING (on stdin) 09:41:13.126113 Received PORT (on stdin) 09:41:13.129448 ====> Client connect 09:41:13.139106 Received DATA (on stdin) 09:41:13.139237 > 18 bytes data, server => client 09:41:13.139318 'WE ROOLZ: 100686\r\n' 09:41:13.139674 Received DISC (on stdin) 09:41:13.139830 ====> Client forcibly disconnected 09:41:13.141264 Received QUIT (on stdin) 09:41:13.141392 quits 09:41:13.141844 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\rCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1022 ../src/curl -q --output log/62/curl1022.out --include --trace-ascii log/62/trace1022 --trace-config all --trace-time --version > log/62/stdout1022 2> log/62/stderr1022 \n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250 Finally, here is the response Testnum 1005 === End of file server.cmd === Start of file valgrind1005 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1005 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1011 ../src/curl -q --output log/30/curl1011.out --include --trace-ascii log/30/trace1011 --trace-config all --trace-time http://127.0.0.1:43913/blah/1011 -L -d "moo" > log/30/stdout1011 2> log/30/stderr1011 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1023 ../src/curl -q --output log/43/curl1023.out --include --trace-ascii log/43/trace1023 --trace-config all --trace-time --version > log/43/stdout1023 2> log/43/stderr1023 Mismatch in --version: curl: curl-config: 8.15.0 CMD (256): /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/62/stdout1022 version CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1008 ../src/curl -q --output log/39/curl1008.out --include --trace-ascii log/39/trace1008 --trace-config all --trace-time http://test.remote.example.com.1008:42899/path/10080002 --proxy http://127.0.0.1:42899 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/39/stdout1008 2> log/39/stderr1008 test 0994...[--skip-existing with globbing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind994 ../src/curl -q --include --trace-ascii log/38/trace994 --trace-config all --trace-time -o "log/38/#1" "http://127.0.0.1:33511/994/{hey,ho}" --skip-existing > log/38/stdout994 2> log/38/stderr994 994: stderr FAILED: --- log/38/check-expected 2025-07-18 09:41:15.405590618 +0000 +++ log/38/check-generated 2025-07-18 09:41:15.404590619 +0000 @@ -1,2 +0,0 @@ -Note: skips transfer, "log/38/hey" exists locally[CR][LF] -Note: skips transfer, "log/38/ho" exists locally[CR][LF] == Contents of files in the log/38/ dir after test 994 === Start of file check-expected Note: skips transfer, "log/38/hey" exists locally[CR][LF] Note: skips transfer, "log/38/ho" exists locally[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind994 ../src/curl -q --include --trace-ascii log/38/trace994 --trace-config all --trace-time -o "log/38/#1" "http://127.0.0.1:33511/994/{hey,ho}" --skip-existing > log/38/stdout994 2> log/38/stderr994 === End of file commands.log === Start of file hey content === End of file hey === Start of file ho content === End of file ho === Start of file http_server.log 09:41:13.886978 ====> Client connect 09:41:13.887585 accept_connection 3 returned 4 09:41:13.887846 accept_connection 3 returned 0 09:41:13.888022 Read 93 bytes 09:41:13.888145 Process 93 bytes request 09:41:13.888297 Got request: GET /verifiedserver HTTP/1.1 09:41:13.888395 Are-we-friendly question received 09:41:13.888791 Wrote request (93 bytes) input to log/38/server.input 09:41:13.889022 Identifying ourselves as friends 09:41:13.889988 Response sent (56 bytes) and written to log/38/server.response 09:41:13.890108 special request received, no persistency 09:41:13.890178 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 994 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind994 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind994 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1027 ../src/curl -q --output log/53/curl1027.out --include --trace-ascii log/53/trace1027 --trace-config all --trace-time --help > log/53/stdout1027 2> log/53/stderr1027 Mismatch in --version: curl: curl-config: 8.15.0 CMD (256): /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/43/stdout1023 vernum CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1015 ../src/curl -q --output log/2/curl1015.out --include --trace-ascii log/2/trace1015 --trace-config all --trace-time http://127.0.0.1:39659/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/2/1015.txt" --data-urlencode @log/2/1015.txt > log/2/stdout1015 2> log/2/stderr1015 * starts no server test 1019...[X- range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1019 ../src/curl -q --trace-ascii log/40/trace1019 --trace-config all --trace-time -r 7- file://localhost/build/curl/src/build-curl/tests/log/40/test1019.txt > log/40/stdout1019 2> log/40/stderr1019 1019: stdout FAILED: --- log/40/check-expected 2025-07-18 09:41:15.471651905 +0000 +++ log/40/check-generated 2025-07-18 09:41:15.470590585 +0000 @@ -1,2 +0,0 @@ -890[LF] -1234567890[LF] == Contents of files in the log/40/ dir after test 1019 === Start of file check-expected 890[LF] 1234567890[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1019 ../src/curl -q --trace-ascii log/40/trace1019 --trace-config all --trace-time -r 7- file://localhost/build/curl/src/build-curl/tests/log/40/test1019.txt > log/40/stdout1019 2> log/40/stderr1019 === End of file commands.log === Start of file server.cmd Testnum 1019 === End of file server.cmd === Start of file test1019.txt 1234567890 1234567890 === End of file test1019.txt === Start of file valgrind1019 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1019 CMD (256): /usr/bin/perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(Usage: curl )|(--version\s*Show version)/, ); exit ($lines != 2); # Let this file pass an XML syntax check: ' log/53/stdout1027 test 0996...[--skip-existing with file present] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind996 ../src/curl -q --include --trace-ascii log/46/trace996 --trace-config all --trace-time -o log/46/there http://127.0.0.1:46523/996 --skip-existing > log/46/stdout996 2> log/46/stderr996 996: stderr FAILED: --- log/46/check-expected 2025-07-18 09:41:15.531164555 +0000 +++ log/46/check-generated 2025-07-18 09:41:15.529590556 +0000 @@ -1 +0,0 @@ -Note: skips transfer, "log/46/there" exists locally[CR][LF] == Contents of files in the log/46/ dir after test 996 === Start of file check-expected Note: skips transfer, "log/46/there" exists locally[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind996 ../src/curl -q --include --trace-ascii log/46/trace996 --trace-config all --trace-time -o log/46/there http://127.0.0.1:46523/996 --skip-existing > log/46/stdout996 2> log/46/stderr996 === End of file commands.log === Start of file http_server.log 09:41:14.063880 ====> Client connect 09:41:14.064189 accept_connection 3 returned 4 09:41:14.064363 accept_connection 3 returned 0 09:41:14.064653 Read 93 bytes 09:41:14.064771 Process 93 bytes request 09:41:14.064892 Got request: GET /verifiedserver HTTP/1.1 09:41:14.064995 Are-we-friendly question received 09:41:14.065268 Wrote request (93 bytes) input to log/46/server.input 09:41:14.065616 Identifying ourselves as friends 09:41:14.066620 Response sent (56 bytes) and written to log/46/server.response 09:41:14.066757 special request received, no persistency 09:41:14.066825 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 996 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file there content === End of file there === Start of file valgrind996 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind996 test 0999...[HTTP with auth in first URL but not second] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind999 ../src/curl -q --output log/47/curl999.out --include --trace-ascii log/47/trace999 --trace-config all --trace-time -x 127.0.0.1:41103 http://alberto:einstein@somwhere.example/999 http://somewhere.else.example/999 > log/47/stdout999 2> log/47/stderr999 999: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 999 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind999 ../src/curl -q --output log/47/curl999.out --include --trace-ascii log/47/trace999 --trace-config all --trace-time -x 127.0.0.1:41103 http://alberto:einstein@somwhere.example/999 http://somewhere.else.example/999 > log/47/stdout999 2> log/47/stderr999 === End of file commands.log === Start of file http_server.log 09:41:14.028944 ====> Client connect 09:41:14.029237 accept_connection 3 returned 4 09:41:14.029376 accept_connection 3 returned 0 09:41:14.029594 Read 93 bytes 09:41:14.029707 Process 93 bytes request 09:41:14.029790 Got request: GET /verifiedserver HTTP/1.1 09:41:14.029863 Are-we-friendly question received 09:41:14.030076 Wrote request (93 bytes) input to log/47/server.input 09:41:14.030386 Identifying ourselves as friends 09:41:14.031141 Response sent (56 bytes) and written to log/47/server.response 09:41:14.031247 special request received, no persistency 09:41:14.031309 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 999 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind999 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind999 test 1003...[FTP with excessively large server command response line] ../CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1007 ../src/curl -q --output log/31/curl1007.out --include --trace-ascii log/31/trace1007 --trace-config all --trace-time -T log/31/test1007.txt tftp://127.0.0.1:43879//invalid-file -sS > log/31/stdout1007 2> log/31/stderr1007 libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1003 ../src/curl -q --output log/50/curl1003.out --include --trace-ascii log/50/trace1003 --trace-config all --trace-time ftp://127.0.0.1:36567/path/1003 > log/50/stdout1003 2> log/50/stderr1003 1003: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 1003 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1003 ../src/curl -q --output log/50/curl1003.out --include --trace-ascii log/50/trace1003 --trace-config all --trace-time ftp://127.0.0.1:36567/path/1003 > log/50/stdout1003 2> log/50/stderr1003 === End of file commands.log === Start of file ftp_server.log 09:41:13.808399 ====> Client connect 09:41:13.809712 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.812943 < "USER anonymous" 09:41:13.814274 > "331 We are happy you popped in![CR][LF]" 09:41:13.815924 < "PASS ftp@example.com" 09:41:13.816359 > "230 Welcome you silly person[CR][LF]" 09:41:13.818618 < "PWD" 09:41:13.819527 > "257 "/" is current directory[CR][LF]" 09:41:13.821699 < "EPSV" 09:41:13.822086 ====> Passive DATA channel requested by client 09:41:13.822289 DATA sockfilt for passive data channel starting... 09:41:13.870435 DATA sockfilt for passive data channel started (pid 122792) 09:41:13.873869 DATA sockfilt for passive data channel listens on port 33307 09:41:13.874314 > "229 Entering Passive Mode (|||33307|)[LF]" 09:41:13.874551 Client has been notified that DATA conn will be accepted on port 33307 09:41:13.876080 Client connects to port 33307 09:41:13.876424 ====> Client established passive DATA connection on port 33307 09:41:13.877352 < "TYPE I" 09:41:13.877837 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:13.879682 < "SIZE verifiedserver" 09:41:13.880223 > "213 17[CR][LF]" 09:41:13.881933 < "RETR verifiedserver" 09:41:13.882409 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:13.883240 =====> Closing passive DATA connection... 09:41:13.883467 Server disconnects passive DATA connection 09:41:13.884927 Server disconnected passive DATA connection 09:41:13.885161 DATA sockfilt for passive data channel quits (pid 122792) 09:41:13.887233 DATA sockfilt for passive data channel quit (pid 122792) 09:41:13.887482 =====> Closed passive DATA connection 09:41:13.888218 > "226 File transfer complete[CR][LF]" 09:41:13.925947 < "QUIT" 09:41:13.927203 > "221 bye bye baby[CR][LF]" 09:41:13.931178 MAIN sockfilt said DISC 09:41:13.932094 ====> Client disconnected 09:41:13.932621 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:14.061577 ====> Client connect 09:41:14.063877 Received DATA (on stdin) 09:41:14.064043 > 160 bytes data, server => client 09:41:14.064165 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:14.064283 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:14.064376 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:14.065364 < 16 bytes data, client => server 09:41:14.065617 'USER anonymous\r\n' 09:41:14.067118 Received DATA (on stdin) 09:41:14.067300 > 33 bytes data, server => client 09:41:14.067567 '331 We are happy you popped in!\r\n' 09:41:14.068761 < 22 bytes data, client => server 09:41:14.068918 'PASS ftp@example.com\r\n' 09:41:14.070556 Received DATA (on stdin) 09:41:14.070717 > 30 bytes data, server => client 09:41:14.070812 '230 Welcome you silly person\r\n' 09:41:14.071520 < 5 bytes data, client => server 09:41:14.071676 'PWD\r\n' 09:41:14.072853 Received DATA (on stdin) 09:41:14.073017 > 30 bytes data, server => client 09:41:14.073683 '257 "/" is current directory\r\n' 09:41:14.074575 < 6 bytes data, client => server 09:41:14.074741 'EPSV\r\n' 09:41:14.128051 Received DATA (on stdin) 09:41:14.128232 > 38 bytes data, server => client 09:41:14.128331 '229 Entering Passive Mode (|||33307|)\n' 09:41:14.129836 < 8 bytes data, client => server 09:41:14.130010 'TYPE I\r\n' 09:41:14.131559 Received DATA (on stdin) 09:41:14.131747 > 33 bytes data, server => client 09:41:14.131835 '200 I modify TYPE as you wanted\r\n' 09:41:14.132589 < 21 bytes data, client => server 09:41:14.132794 'SIZE verifiedserver\r\n' 09:41:14.133962 Received DATA (on stdin) 09:41:14.134108 > 8 bytes data, server => client 09:41:14.134184 '213 17\r\n' 09:41:14.134879 < 21 bytes data, client => server 09:41:14.135053 'RETR verifiedserver\r\n' 09:41:14.136147 Received DATA (on stdin) 09:41:14.136295 > 29 bytes data, server => client 09:41:14.136373 '150 Binary junk (17 bytes).\r\n' 09:41:14.141560 Received DATA (on stdin) 09:41:14.141725 > 28 bytes data, server => client 09:41:14.142230 '226 File transfer complete\r\n' 09:41:14.178611 < 6 bytes data, client => server 09:41:14.178809 'QUIT\r\n' 09:41:14.180048 Received DATA (on stdin) 09:41:14.180199 > 18 bytes data, server => client 09:41:14.180396 '221 bye bye baby\r\n' 09:41:14.184585 ====> Client disconnect 09:41:14.185219 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:13.116901 Running IPv4 version 09:41:13.121777 Listening on port 33307 09:41:13.122387 Wrote pid 122792 to log/50/server/ftp_sockdata.pid 09:41:13.122908 Received PING (on stdin) 09:41:13.126744 Received PORT (on stdin) 09:41:13.129387 ====> Client connect 09:41:13.137411 Received DATA (on stdin) 09:41:13.137639 > 17 bytes data, server => client 09:41:13.137736 'WE ROOLZ: 77995\r\n' 09:41:13.138078 Received DISC (on stdin) 09:41:13.138241 ====> Client forcibly disconnected 09:41:13.139213 Received QUIT (on stdin) 09:41:13.139343 quits 09:41:13.139797 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 250 CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB Testnum 1003 === End of file server.cmd === Start of file valgrind1003 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bitCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind982 ../src/curl -q --output log/12/curl982.out --include --trace-ascii log/12/trace982 --trace-config all --trace-time pop3://127.0.0.1:40081/982 -u user:secret --ssl > log/12/stdout982 2> log/12/stderr982 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind997 ../src/curl -q --output log/52/curl997.out --include --trace-ascii log/52/trace997 --trace-config all --trace-time pop3://127.0.0.1:46569 -u user:secret -X 'STAT' > log/52/stdout997 2> log/52/stderr997 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1002 ../src/curl -q --output log/14/curl1002.out --include --trace-ascii log/14/trace1002 --trace-config all --trace-time http://127.0.0.1:43309/1002.upload1 -T log/14/1002 http://127.0.0.1:43309/1002.upload2 -T log/14/1002 -u auser:apasswd --digest -x http://127.0.0.1:43309 -C 2 -X GET > log/14/stdout1002 2> log/14/stderr1002 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1006 ../src/curl -q --output log/27/curl1006.out --include --trace-ascii log/27/trace1006 --trace-config all --trace-time ftp://127.0.0.1:37883/path/1006 > log/27/stdout1006 2> log/27/stderr1006 system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1003 * starts no server test 1014...[Compare curl --version with curl-config --features] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1014 ../src/curl -q --output log/54/curl1014.out --include --trace-ascii log/54/trace1014 --trace-config all --trace-time --version > log/54/stdout1014 2> log/54/stderr1014 postcheck /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/54/stdout1014 features > log/54/result1014 1014: postcheck FAILED == Contents of files in the log/54/ dir after test 1014 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1014 ../src/curl -q --output log/54/curl1014.out --include --trace-ascii log/54/trace1014 --trace-config all --trace-time --version > log/54/stdout1014 2> log/54/stderr1014 === End of file commands.log === Start of file result1014 Mismatch in features lists: curl: curl-config: AsynchDNS GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM PSL SPNEGO SSL TLS-SRP UnixSockets alt-svc brotli libz threadsafe zstd === End of file result1014 === Start of file server.cmd Testnum 1014 === End of file server.cmd === Start of file valgrind1014 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1014 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1009 ../src/curl -q --output log/13/curl1009.out --include --trace-ascii log/13/trace1009 --trace-config all --trace-time tftp://127.0.0.1:43409//1009 --local-port 44444-45444 > log/13/stdout1009 2> log/13/stderr1009 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1001 ../src/curl -q --output log/18/curl1001.out --include --trace-ascii log/18/trace1001 --trace-config all --trace-time http://127.0.0.1:41285/1001 -u auser:apasswd --digest -T log/18/1001 -x http://127.0.0.1:41285 -C 2 -X GET > log/18/stdout1001 2> log/18/stderr1001 * starts no server test 1016...[X-Y range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1016 ../src/curl -q --trace-ascii log/58/trace1016 --trace-config all --trace-time -r 1-4 file://localhost/build/curl/src/build-curl/tests/log/58/test1016.txt > log/58/stdout1016 2> log/58/stderr1016 1016: stdout FAILED: --- log/58/check-expected 2025-07-18 09:41:15.636275142 +0000 +++ log/58/check-generated 2025-07-18 09:41:15.634590502 +0000 @@ -1 +0,0 @@ -2345 == Contents of files in the log/58/ dir after test 1016 === Start of file check-expected 2345 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1016 ../src/curl -q --trace-ascii log/58/trace1016 --trace-config all --trace-time -r 1-4 file://localhost/build/curl/src/build-curl/tests/log/58/test1016.txt > log/58/stdout1016 2> log/58/stderr1016 === End of file commands.log === Start of file server.cmd Testnum 1016 === End of file server.cmd === Start of file test1016.txt 1234567890 === End of file test1016.txt === Start of file valgrind1016 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1016 test 0998...[HTTP with auth in URL redirected to another host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind998 ../src/curl -q --output log/59/curl998.out --include --trace-ascii log/59/trace998 --trace-config all --trace-time -x 127.0.0.1:43695 http://alberto:einstein@somwhere.example/998 --location-trusted > log/59/stdout998 2> log/59/stderr998 998: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 998 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind998 ../src/curl -q --output log/59/curl998.out --include --trace-ascii log/59/trace998 --trace-config all --trace-time -x 127.0.0.1:43695 http://alberto:einstein@somwhere.example/998 --location-trusted > log/59/stdout998 2> log/59/stderr998 === End of file commands.log === Start of file http_server.log 09:41:13.936655 ====> Client connect 09:41:13.936990 accept_connection 3 returned 4 09:41:13.937171 accept_connection 3 returned 0 09:41:13.937314 Read 93 bytes 09:41:13.937427 Process 93 bytes request 09:41:13.937650 Got request: GET /verifiedserver HTTP/1.1 09:41:13.937782 Are-we-friendly question received 09:41:13.938053 Wrote request (93 bytes) input to log/59/server.input 09:41:13.938227 Identifying ourselves as friends 09:41:13.939061 Response sent (56 bytes) and written to log/59/server.response 09:41:13.939177 special request received, no persistency 09:41:13.939246 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd Testnum 998 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind998 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind998 test 1015...[--data-urlencode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1015 ../src/curl -q --output log/2/curl1015.out --include --trace-ascii log/2/trace1015 --trace-config all --trace-time http://127.0.0.1:39659/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/2/1015.txt" --data-urlencode @log/2/1015.txt > log/2/stdout1015 2> log/2/stderr1015 1015: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1015 === Start of file 1015.txt content to _?!#$'|<> === End of file 1015.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1015 ../src/curl -q --output log/2/curl1015.out --include --trace-ascii log/2/trace1015 --trace-config all --trace-time http://127.0.0.1:39659/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/2/1015.txt" --data-urlencode @log/2/1015.txt > log/2/stdout1015 2> log/2/stderr1015 === End of file commands.log === Start of file http_server.log 09:41:14.403621 ====> ClCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind993 ../src/curl -q --output log/64/curl993.out --include --trace-ascii log/64/trace993 --trace-config all --trace-time pop3://127.0.0.1:36135/ -u user:secret > log/64/stdout993 2> log/64/stderr993 ient connect 09:41:14.403946 accept_connection 3 returned 4 09:41:14.404124 accept_connection 3 returned 0 09:41:14.404282 Read 93 bytes 09:41:14.404397 Process 93 bytes request 09:41:14.404570 Got request: GET /verifiedserver HTTP/1.1 09:41:14.404696 Are-we-friendly question received 09:41:14.404946 Wrote request (93 bytes) input to log/2/server.input 09:41:14.405188 Identifying ourselves as friends 09:41:14.406818 Response sent (56 bytes) and written to log/2/server.response 09:41:14.406933 special request received, no persistency 09:41:14.407000 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 1015 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind1015 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1015 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/12/server/pop3_server.pid" --logfile "log/12/pop3_server.log" --logdir "log/12" --portfile "log/12/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40081 (log/12/server/pop3_server.port) RUN: POP3 server is PID 120832 port 40081 * pid pop3 => 120832 120832 test 0982...[POP3 STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind982 ../src/curl -q --output log/12/curl982.out --include --trace-ascii log/12/trace982 --trace-config all --trace-time pop3://127.0.0.1:40081/982 -u user:secret --ssl > log/12/stdout982 2> log/12/stderr982 982: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 982 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind982 ../src/curl -q --output log/12/curl982.out --include --trace-ascii log/12/trace982 --trace-config all --trace-time pop3://127.0.0.1:40081/982 -u user:secret --ssl > log/12/stdout982 2> log/12/stderr982 === End of file commands.log === Start of file pop3_server.log 09:41:13.557272 POP3 server listens on port IPv4/40081 09:41:13.558310 logged pid 120832 in log/12/server/pop3_server.pid 09:41:13.558565 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:13.801573 Running IPv4 version 09:41:13.802119 Listening on port 40081 09:41:13.802622 Wrote pid 122302 to log/12/server/pop3_sockfilt.pid 09:41:13.802946 Wrote port 40081 to log/12/server/pop3_server.port 09:41:13.803106 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA STLS USER REPLY STLS -ERR currently unavailable\r\n+OK user accepted\r\n+OK authenticated REPLY PASS -ERR Authentication credentials invalid Testnum 982 === End of file server.cmd === Start of file valgrind982 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind982 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/13/server/tftp_server.pid" --portfile "log/13/server/tftp_server.port" --logfile "log/13/tftp_server.log" --logdir "log/13" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 122584 port 43409 * pid tftp => 122584 122584 test 1009...[TFTP retrieve with --local-port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1009 ../src/curl -q --output log/13/curl1009.out --include --trace-ascii log/13/trace1009 --trace-config all --trace-time tftp://127.0.0.1:43409//1009 --local-port 44444-45444 > log/13/stdout1009 2> log/13/stderr1009 1009: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 1009 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1009 ../src/curl -q --output log/13/curl1009.out --include --trace-ascii log/13/trace1009 --trace-config all --trace-time tftp://127.0.0.1:43409//1009 --local-port 44444-45444 > log/13/stdout1009 2> log/13/stderr1009 === End of file commands.log === Start of file server.cmd Testnum 1009 === End of file server.cmd === Start of file tftp_server.log 09:41:13.160645 Wrote pid 122584 to log/13/server/tftp_server.pid 09:41:13.161312 Wrote port 43409 to log/13/server/tftp_server.port 09:41:13.161415 Running IPv4 version on port UDP/43409 === End of file tftp_server.log === Start of file valgrind1009 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1009 test 1002...[HTTP PUT with Digest auth, resumed upload and modified method, twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1002 ../src/curl -q --output log/14/curl1002.out --include --trace-ascii log/14/trace1002 --trace-config all --trace-time http://127.0.0.1:43309/1002.upload1 -T log/14/1002 http://127.0.0.1:43309/1002.upload2 -T log/14/1002 -u auser:apasswd --digest -x http://127.0.0.1:43309 -C 2 -X GET > log/14/stdout1002 2> log/14/stderr1002 1002: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 1002 === Start of file 1002 test === End of file 1002 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1002 ../src/curl -q --output log/14/curl1002.out --include --trace-ascii log/14/trace1002 --trace-config all --trace-time http://127.0.0.1:43309/1002.upload1 -T log/14/1002 http://127.0.0.1:43309/1002.upload2 -T log/14/1002 -u auser:apasswd --digest -x http://127.0.0.1:43309 -C 2 -X GET > log/14/stdout1002 2> log/14/stderr1002 === End of file commands.log === Start of file http_server.log 09:41:14.179205 ====> Client connect 09:41:14.179652 accept_connection 3 returned 4 09:41:14.179857 accept_connection 3 returned 0 09:41:14.179981 Read 93 bytes 09:41:14.180083 Process 93 bytes request 09:41:14.180177 Got request: GET /verifiedserver HTTP/1.1 09:41:14.180260 Are-we-friendly question received 09:41:14.180573 Wrote request (93 bytes) input to log/14/server.input 09:41:14.180792 Identifying ourselves as friends 09:41:14.181627 Response sent (56 bytes) and written to log/14/server.response 09:41:14.181750 special request received, no persistency 09:41:14.181816 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 1002 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind1002 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1002 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/27/server/ftp_server.pid" --logfile "log/27/ftp_server.log" --logdir "log/27" --portfile "log/27/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37883 (log/27/server/ftp_server.port) RUN: FTP server is PID 122335 port 37883 * pid ftp => 122335 122335 test 1006...[FTP with large number of command response lines (boundary condition)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1006 ../src/curl -q --output log/27/curl1006.out --include --trace-ascii log/27/trace1006 --trace-config all --trace-time ftp://127.0.0.1:37883/path/1006 > log/27/stdout1006 2> log/27/stderr1006 1006: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 1006 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1006 ../src/curl -q --output log/27/curl1006.out --include --trace-ascii log/27/trace1006 --trace-config all --trace-time ftp://127.0.0.1:37883/path/1006 > log/27/stdout1006 2> log/27/stderr1006 === End of file commands.log === Start of file ftp_server.log 09:41:14.330267 FTP server listens on port IPv4/37883 09:41:14.331696 logged pid 122335 in log/27/server/ftp_server.pid 09:41:14.332199 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:14.577419 Running IPv4 version 09:41:14.578262 Listening on port 37883 09:41:14.578877 Wrote pid 123428 to log/27/server/ftp_sockctrl.pid 09:41:14.579281 Wrote port 37883 to log/27/server/ftp_server.port 09:41:14.579552 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250 Finally, here is the response Testnum 1006 === End of file server.cmd === Start of file valgrind1006 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1006 test 1011...[HTTP POST with 301 redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1011 ../src/curl -q --output log/30/curl1011.out --include --trace-ascii log/30/trace1011 --trace-config all --trace-time http://127.0.0.1:43913/blah/1011 -L -d "moo" > log/30/stdout1011 2> log/30/stderr1011 1011: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 1011 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1011 ../src/curl -q --output log/30/curl1011.out --include --trace-ascii log/30/trace1011 --trace-config all --trace-time http://127.0.0.1:43913/blah/1011 -L -d "moo" > log/30/stdout1011 2> log/30/stderr1011 === End of file commands.log === Start of file http_server.log 09:41:14.233762 ====> Client connect 09:41:14.234111 accept_connection 3 returned 4 09:41:14.234302 accept_connection 3 returned 0 09:41:14.235011 Read 93 bytes 09:41:14.235170 Process 93 bytes request 09:41:14.235254 Got request: GET /verifiedserver HTTP/1.1 09:41:14.235341 Are-we-friendly question received 09:41:14.235673 Wrote request (93 bytes) input to log/30/server.input 09:41:14.235945 Identifying ourselves as friends 09:41:14.236690 Response sent (56 bytes) and written to log/30/server.response 09:41:14.236816 special request received, no persistency 09:41:14.236896 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 1011 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind1011 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1011 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1034 ../src/curl -q --output log/22/curl1034.out --include --trace-ascii log/22/trace1034 --trace-config all --trace-time -K - -x 127.0.0.1:47 log/22/stdout1034 2> log/22/stderr1034 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1031 ../src/curl -q --output log/5/curl1031.out --include --trace-ascii log/5/trace1031 --trace-config all --trace-time http://127.0.0.1:33413/want/this/1031 -L > log/5/stdout1031 2> log/5/stderr1031 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/31/server/tftp_server.pid" --portfile "log/31/server/tftp_server.port" --logfile "log/31/tftp_server.log" --logdir "log/31" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 122443 port 43879 * pid tftp => 122443 122443 test 1007...[TFTP send with invalid permission on server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1007 ../src/curl -q --output log/31/curl1007.out --include --trace-ascii log/31/trace1007 --trace-config all --trace-time -T log/31/test1007.txt tftp://127.0.0.1:43879//invalid-file -sS > log/31/stdout1007 2> log/31/stderr1007 1007: stderr FAILED: --- log/31/check-expected 2025-07-18 09:41:15.797359120 +0000 +++ log/31/check-generated 2025-07-18 09:41:15.796590420 +0000 @@ -1 +0,0 @@ -curl: (69) TFTP: Access Violation[CR][LF] == Contents of files in the log/31/ dir after test 1007 === Start of file check-expected curl: (69) TFTP: Access Violation[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1007 ../src/curl -q --output log/31/curl1007.out --include --trace-ascii log/31/trace1007 --trace-config all --trace-time -T log/31/test1007.txt tftp://127.0.0.1:43879//invalid-file -sS > log/31/stdout1007 2> log/31/stderr1007 === End of file commands.log === Start of file server.cmd Testnum 1007 === End of file server.cmd === Start of file test1007.txt This data will not be sent === End of file test1007.txt === Start of file tftp_server.log 09:41:13.171374 Wrote pid 122443 to log/31/server/tftp_server.pid 09:41:13.172087 Wrote port 43879 to log/31/server/tftp_server.port 09:41:13.172192 Running IPv4 version on port UDP/43879 === End of file tftp_server.log === Start of file valgrind1007 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1007 test 1021...[HTTP proxy CONNECT with any proxyauth and proxy offers NTLM and close] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1021 ../src/curl -q --output log/36/curl1021.out --include --trace-ascii log/36/trace1021 --trace-config all --trace-time http://test.remote.example.com.1021:44255/path/10210002 --proxy http://127.0.0.1:44255 --proxy-user testuser:testpass --proxy-anyauth --proxytunnel > log/36/stdout1021 2> log/36/stderr1021 1021: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1021 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1021 ../src/curl -q --output log/36/curl1021.out --include --trace-ascii log/36/trace1021 --trace-config all --trace-time http://test.remote.example.com.1021:44255/path/10210002 --proxy http://127.0.0.1:44255 --proxy-user testuser:testpass --proxy-anyauth --proxytunnel > log/36/stdout1021 2> log/36/stderr1021 === End of file commands.log === Start of file http_server.log 09:41:14.459956 ====> Client connect 09:41:14.460322 accept_connection 3 returned 4 09:41:14.460767 accept_connection 3 returned 0 09:41:14.461596 Read 93 bytes 09:41:14.461785 Process 93 bytes request 09:41:14.461882 Got request: GET /verifiedserver HTTP/1.1 09:41:14.461971 Are-we-friendly question received 09:41:14.462248 Wrote request (93 bytes) input to log/36/server.input 09:41:14.462548 Identifying ourselves as friends 09:41:14.463238 Response sent (56 bytes) and written to log/36/server.response 09:41:14.463357 special request received, no persistency 09:41:14.463429 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 1021 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind1021 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1021 test 1008...[HTTP proxy CONNECT auth NTLM with chunked-encoded 407 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1008 ../src/curl -q --output log/39/curl1008.out --include --trace-ascii log/39/trace1008 --trace-config all --trace-time http://test.remote.example.com.1008:42899/path/10080002 --proxy http://127.0.0.1:42899 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/39/stdout1008 2> log/39/stderr1008 1008: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 1008 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1008 ../src/curl -q --output log/39/curl1008.out --include --trace-ascii log/39/trace1008 --trace-config all --trace-time http://test.remote.example.com.1008:42899/path/10080002 --proxy http://127.0.0.1:42899 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/39/stdout1008 2> log/39/stderr1008 === End of file commands.log === Start of file http_server.log 09:41:14.311793 ====> Client connect 09:41:14.312231 accept_connection 3 returned 4 09:41:14.312656 accept_connection 3 returned 0 09:41:14.322618 Read 93 bytes 09:41:14.322833 Process 93 bytes request 09:41:14.322975 Got request: GET /verifiedserver HTTP/1.1 09:41:14.323105 Are-we-friendly question received 09:41:14.323551 Wrote request (93 bytes) input to log/39/server.input 09:41:14.323843 Identifying ourselves as friends 09:41:14.324817 Response sent (56 bytes) and written to log/39/server.response 09:41:14.324947 special request received, no persistency 09:41:14.325027 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1008 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind1008 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1008 * starts no server test 1023...[Compare curl --version with curl-config --vernum] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1023 ../src/curl -q --output log/43/curl1023.out --include --trace-ascii log/43/trace1023 --trace-config all --trace-time --version > log/43/stdout1023 2> log/43/stderr1023 postcheck /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/43/stdout1023 vernum 1023: postcheck FAILED == Contents of files in the log/43/ dir after test 1023 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1023 ../src/curl -q --output log/43/curl1023.out --include --trace-ascii log/43/trace1023 --trace-config all --trace-time --version > log/43/stdout1023 2> log/43/stderr1023 === End of file commands.log === Start of file server.cmd Testnum 1023 === End of file server.cmd === Start of file valgrind1023 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1023 test 1000...[FTP dir list PASV with -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1000 ../src/curl -q --output log/51/curl1000.out --include --trace-ascii log/51/trace1000 --trace-config all --trace-time ftp://127.0.0.1:42737/1000/ -I > log/51/stdout1000 2> log/51/stderr1000 1000: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 1000 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1000 ../src/curl -q --output log/51/curl1000.out --include --trace-ascii log/51/trace1000 --trace-config all --trace-time ftp://127.0.0.1:42737/1000/ -I > log/51/stdout1000 2> log/51/stderr1000 === End of file commands.log === Start of file ftp_server.log 09:41:13.834387 ====> Client connect 09:41:13.837720 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:13.838907 < "USER anonymous" 09:41:13.840715 > "331 We are happy you popped in![CR][LF]" 09:41:13.841601 < "PASS ftp@example.com" 09:41:13.842523 > "230 Welcome you silly person[CR][LF]" 09:41:13.844469 < "PWD" 09:41:13.844930 > "257 "/" is current directory[CR][LF]" 09:41:13.847196 < "EPSV" 09:41:13.847471 ====> Passive DATA channel requested by client 09:41:13.847645 DATA sockfilt for passive data channel starting... 09:41:14.077700 DATA sockfilt for passive data channel started (pid 122814) 09:41:14.078719 DATA sockfilt for passive data channel listens on port 42291 09:41:14.079253 > "229 Entering Passive Mode (|||42291|)[LF]" 09:41:14.081953 Client has been notified that DATA connCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1024 ../src/curl -q --output log/60/curl1024.out --include --trace-ascii log/60/trace1024 --trace-config all --trace-time http://127.0.0.1:38843/want/1024 -L -c log/60/jar1024 > log/60/stdout1024 2> log/60/stderr1024 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1033 ../src/curl -q --output log/24/curl1033.out --include --trace-ascii log/24/trace1033 --trace-config all --trace-time http://127.0.0.1:39259/1033 > log/24/stdout1033 2> log/24/stderr1033 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1025 ../src/curl -q --output log/61/curl1025.out --include --trace-ascii log/61/trace1025 --trace-config all --trace-time http://127.0.0.1:44381/want/1025 -L -c log/61/jar1025 -b forcedcookie=yes > log/61/stdout1025 2> log/61/stderr1025 will be accepted on port 42291 09:41:14.089705 Client connects to port 42291 09:41:14.090119 ====> Client established passive DATA connection on port 42291 09:41:14.091271 < "TYPE I" 09:41:14.096088 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:14.100227 < "SIZE verifiedserver" 09:41:14.101038 > "213 17[CR][LF]" 09:41:14.107478 < "RETR verifiedserver" 09:41:14.108909 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:14.111519 =====> Closing passive DATA connection... 09:41:14.111836 Server disconnects passive DATA connection 09:41:14.113511 Server disconnected passive DATA connection 09:41:14.113858 DATA sockfilt for passive data channel quits (pid 122814) 09:41:14.117599 DATA sockfilt for passive data channel quit (pid 122814) 09:41:14.117943 =====> Closed passive DATA connection 09:41:14.119151 > "226 File transfer complete[CR][LF]" 09:41:14.159355 < "QUIT" 09:41:14.159822 > "221 bye bye baby[CR][LF]" 09:41:14.168286 MAIN sockfilt said DISC 09:41:14.168619 ====> Client disconnected 09:41:14.169212 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:14.087335 ====> Client connect 09:41:14.089392 Received DATA (on stdin) 09:41:14.089619 > 160 bytes data, server => client 09:41:14.090074 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:14.090275 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:14.090368 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:14.091062 < 16 bytes data, client => server 09:41:14.091202 'USER anonymous\r\n' 09:41:14.093124 Received DATA (on stdin) 09:41:14.093269 > 33 bytes data, server => client 09:41:14.093445 '331 We are happy you popped in!\r\n' 09:41:14.094092 < 22 bytes data, client => server 09:41:14.094228 'PASS ftp@example.com\r\n' 09:41:14.095835 Received DATA (on stdin) 09:41:14.096004 > 30 bytes data, server => client 09:41:14.096667 '230 Welcome you silly person\r\n' 09:41:14.097343 < 5 bytes data, client => server 09:41:14.097571 'PWD\r\n' 09:41:14.098954 Received DATA (on stdin) 09:41:14.099088 > 30 bytes data, server => client 09:41:14.099176 '257 "/" is current directory\r\n' 09:41:14.100068 < 6 bytes data, client => server 09:41:14.100207 'EPSV\r\n' 09:41:14.336040 Received DATA (on stdin) 09:41:14.336188 > 38 bytes data, server => client 09:41:14.336282 '229 Entering Passive Mode (|||42291|)\n' 09:41:14.342785 < 8 bytes data, client => server 09:41:14.342943 'TYPE I\r\n' 09:41:14.351423 Received DATA (on stdin) 09:41:14.351685 > 33 bytes data, server => client 09:41:14.351802 '200 I modify TYPE as you wanted\r\n' 09:41:14.352598 < 21 bytes data, client => server 09:41:14.352996 'SIZE verifiedserver\r\n' 09:41:14.359229 Received DATA (on stdin) 09:41:14.359396 > 8 bytes data, server => client 09:41:14.359604 '213 17\r\n' 09:41:14.360362 < 21 bytes data, client => server 09:41:14.360585 'RETR verifiedserver\r\n' 09:41:14.361668 Received DATA (on stdin) 09:41:14.361815 > 29 bytes data, server => client 09:41:14.361969 '150 Binary junk (17 bytes).\r\n' 09:41:14.372037 Received DATA (on stdin) 09:41:14.372178 > 28 bytes data, server => client 09:41:14.372579 '226 File transfer complete\r\n' 09:41:14.406656 < 6 bytes data, client => server 09:41:14.406822 'QUIT\r\n' 09:41:14.417575 Received DATA (on stdin) 09:41:14.417747 > 18 bytes data, server => client 09:41:14.417834 '221 bye bye baby\r\n' 09:41:14.421582 ====> Client disconnect 09:41:14.423218 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:14.329761 Running IPv4 version 09:41:14.330425 Listening on port 42291 09:41:14.330931 Wrote pid 122814 to log/51/server/ftp_sockdata.pid 09:41:14.331101 Received PING (on stdin) 09:41:14.331894 Received PORT (on stdin) 09:41:14.343157 ====> Client connect 09:41:14.363015 Received DATA (on stdin) 09:41:14.363153 > 17 bytes data, server => client 09:41:14.365842 'WE ROOLZ: 77543\r\n' 09:41:14.366190 Received DISC (on stdin) 09:41:14.366338 ====> Client forcibly disconnected 09:41:14.369038 Received QUIT (on stdin) 09:41:14.369182 quits 09:41:14.369636 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1000 === End of file server.cmd === Start of file valgrind1000 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1000 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/52/server/pop3_server.pid" --logfile "log/52/pop3_server.log" --logdir "log/52" --portfile "log/52/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46569 (log/52/server/pop3_server.port) RUN: POP3 server is PID 122109 port 46569 * pid pop3 => 122109 122109 test 0997...[POP3 retrieve STAT (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind997 ../src/curl -q --output log/52/curl997.out --include --trace-ascii log/52/trace997 --trace-config all --trace-time pop3://127.0.0.1:46569 -u user:secret -X 'STAT' > log/52/stdout997 2> log/52/stderr997 997: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 997 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind997 ../src/curl -q --output log/52/curl997.out --include --trace-ascii log/52/trace997 --trace-config all --trace-time pop3://127.0.0.1:46569 -u user:secret -X 'STAT' > log/52/stdout997 2> log/52/stderr997 === End of file commands.log === Start of file pop3_server.log 09:41:14.292731 POP3 server listens on port IPv4/46569 09:41:14.294206 logged pid 122109 in log/52/server/pop3_server.pid 09:41:14.294517 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:14.539419 Running IPv4 version 09:41:14.542229 Listening on port 46569 09:41:14.542789 Wrote pid 123393 to log/52/server/pop3_sockfilt.pid 09:41:14.543301 Wrote port 46569 to log/52/server/pop3_server.port 09:41:14.543620 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA TOP USER Testnum 997 === End of file server.cmd === Start of file valgrind997 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function vCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1029 ../src/curl -q --include --trace-ascii log/37/trace1029 --trace-config all --trace-time http://127.0.0.1:37551/we/want/our/1029 -w '%{redirect_url} %{url} %{exitcode} %{errormsg}\n' > log/37/stdout1029 2> log/37/stderr1029 algrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind997 * starts no server test 1027...[curl --help] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1027 ../src/curl -q --output log/53/curl1027.out --include --trace-ascii log/53/trace1027 --trace-config all --trace-time --help > log/53/stdout1027 2> log/53/stderr1027 postcheck /usr/bin/perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(Usage: curl )|(--version\s*Show version)/, ); exit ($lines != 2); # Let this file pass an XML syntax check: ' log/53/stdout1027 1027: postcheck FAILED == Contents of files in the log/53/ dir after test 1027 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1027 ../src/curl -q --output log/53/curl1027.out --include --trace-ascii log/53/trace1027 --trace-config all --trace-time --help > log/53/stdout1027 2> log/53/stderr1027 === End of file commands.log === Start of file server.cmd Testnum 1027 === End of file server.cmd === Start of file valgrind1027 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1027 * starts no server test 1022...[Compare curl --version with curl-config --version] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1022 ../src/curl -q --output log/62/curl1022.out --include --trace-ascii log/62/trace1022 --trace-config all --trace-time --version > log/62/stdout1022 2> log/62/stderr1022 postcheck /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/62/stdout1022 version 1022: postcheck FAILED == Contents of files in the log/62/ dir after test 1022 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1022 ../src/curl -q --output log/62/curl1022.out --include --trace-ascii log/62/trace1022 --trace-config all --trace-time --version > log/62/stdout1022 2> log/62/stderr1022 === End of file commands.log === Start of file server.cmd Testnum 1022 === End of file server.cmd === Start of file valgrind1022 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1022 test 1031...[HTTP Location: following to a query string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1031 ../src/curl -q --output log/5/curl1031.out --include --trace-ascii log/5/trace1031 --trace-config all --trace-time http://127.0.0.1:33413/want/this/1031 -L > log/5/stdout1031 2> log/5/stderr1031 1031: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1031 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1031 ../src/curl -q --output log/5/curl1031.out --include --trace-ascii log/5/trace1031 --trace-config all --trace-time http://127.0.0.1:33413/want/this/1031 -L > log/5/stdout1031 2> log/5/stderr1031 === End of file commands.log === Start of file http_server.log 09:41:15.256276 ====> Client connect 09:41:15.256770 accept_connection 3 returned 4 09:41:15.256990 accept_connection 3 returned 0 09:41:15.259039 Read 93 bytes 09:41:15.259182 Process 93 bytes request 09:41:15.259267 Got request: GET /verifiedserver HTTP/1.1 09:41:15.259348 Are-we-friendly question received 09:41:15.259691 Wrote request (93 bytes) input to log/5/server.input 09:41:15.259874 Identifying ourselves as friends 09:41:15.260686 Response sent (56 bytes) and written to log/5/server.response 09:41:15.260796 special request received, no persistency 09:41:15.260863 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1031 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind1031 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1031 test 1001...[HTTP POST --digest with PUT and resumed upload and modified method] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1001 ../src/curl -q --output log/18/curl1001.out --include --trace-ascii log/18/trace1001 --trace-config all --trace-time http://127.0.0.1:41285/1001 -u auser:apasswd --digest -T log/18/1001 -x http://127.0.0.1:41285 -C 2 -X GET > log/18/stdout1001 2> log/18/stderr1001 1001: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 1001 === Start of file 1001 test === End of file 1001 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1001 ../src/curl -q --output log/18/curl1001.out --include --trace-ascii log/18/trace1001 --trace-config all --trace-time http://127.0.0.1:41285/1001 -u auser:apasswd --digest -T log/18/1001 -x http://127.0.0.1:41285 -C 2 -X GET > log/18/stdout1001 2> log/18/stderr1001 === End of file commands.log === Start of file http_server.log 09:41:14.149884 ====> Client connect 09:41:14.150192 accept_connection 3 returned 4 09:41:14.150352 accept_connection 3 returned 0 09:41:14.157646 Read 93 bytes 09:41:14.157814 Process 93 bytes request 09:41:14.157907 Got request: GET /verifiedserver HTTP/1.1 09:41:14.157995 Are-we-friendly question received 09:41:14.158234 Wrote request (93 bytes) input to log/18/server.input 09:41:14.158431 Identifying ourselves as friends 09:41:14.159298 Response sent (56 bytes) and written to log/18/server.response 09:41:14.159415 special request received, no persistency 09:41:14.162627 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 1001 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind1001 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1001 * starts no server setenv LC_ALL = setenv LC_CTYPE = en_US.UTF-8 test 1034...[HTTP over proxy with malformatted IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1034 ../src/curl -q --output log/22/curl1034.out --include --trace-ascii log/22/trace1034 --trace-config all --trace-time -K - -x 127.0.0.1:47 log/22/stdout1034 2> log/22/stderr1034 curl returned 1, when expecting 3 1034: exit FAILED == Contents of files in the log/22/ dir after test 1034 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1034 ../src/curl -q --output log/22/curl1034.out --include --trace-ascii log/22/trace1034 --trace-config all --trace-time -K - -x 127.0.0.1:47 log/22/stdout1034 2> log/22/stderr1034 === End of file commands.log === Start of file server.cmd Testnum 1034 === End of file server.cmd === Start of file stdin-for-1034 url = "http://invalid-utf8-â.local/page/1034" === End of file stdin-for-1034 === Start of file valgrind1034 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whateCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1035 ../src/curl -q --output log/49/curl1035.out --include --trace-ascii log/49/trace1035 --trace-config all --trace-time http://too-long-IDN-name-cürl-rüleß-la-la-la-dee-da-flooby-nooby.local/page/1035 -x 127.0.0.1:47 > log/49/stdout1035 2> log/49/stderr1035 ver the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1034 test 1033...[HTTP GET with 102 response!] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1033 ../src/curl -q --output log/24/curl1033.out --include --trace-ascii log/24/trace1033 --trace-config all --trace-time http://127.0.0.1:39259/1033 > log/24/stdout1033 2> log/24/stderr1033 1033: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 1033 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1033 ../src/curl -q --output log/24/curl1033.out --include --trace-ascii log/24/trace1033 --trace-config all --trace-time http://127.0.0.1:39259/1033 > log/24/stdout1033 2> log/24/stderr1033 === End of file commands.log === Start of file http_server.log 09:41:15.267094 ====> Client connect 09:41:15.267567 accept_connection 3 returned 4 09:41:15.267788 accept_connection 3 returned 0 09:41:15.267978 Read 93 bytes 09:41:15.268128 Process 93 bytes request 09:41:15.268233 Got request: GET /verifiedserver HTTP/1.1 09:41:15.268322 Are-we-friendly question received 09:41:15.268760 Wrote request (93 bytes) input to log/24/server.input 09:41:15.269036 Identifying ourselves as friends 09:41:15.270075 Response sent (56 bytes) and written to log/24/server.response 09:41:15.270198 special request received, no persistency 09:41:15.270260 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 1033 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind1033 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1033 test 1029...[HTTP Location: and 'redirect_url' check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1029 ../src/curl -q --include --trace-ascii log/37/trace1029 --trace-config all --trace-time http://127.0.0.1:37551/we/want/our/1029 -w '%{redirect_url} %{url} %{exitcode} %{errormsg}\n' > log/37/stdout1029 2> log/37/stderr1029 1029: stdout FAILED: --- log/37/check-expected 2025-07-18 09:41:16.029333203 +0000 +++ log/37/check-generated 2025-07-18 09:41:16.027590303 +0000 @@ -1,7 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10290002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:37551/we/want/our/data/10290002.txt?coolsite=yes http://127.0.0.1:37551/we/want/our/1029 0 [LF] == Contents of files in the log/37/ dir after test 1029 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10290002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:37551/we/want/our/data/10290002.txt?coolsite=yes http://127.0.0.1:37551/we/want/our/1029 0 [LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1029 ../src/curl -q --include --trace-ascii log/37/trace1029 --trace-config all --trace-time http://127.0.0.1:37551/we/want/our/1029 -w '%{redirect_url} %{url} %{exitcode} %{errormsg}\n' > log/37/stdout1029 2> log/37/stderr1029 === End of file commands.log === Start of file http_server.log 09:41:15.317873 ====> Client connect 09:41:15.318177 accept_connection 3 returned 4 09:41:15.318329 accept_connection 3 returned 0 09:41:15.318603 Read 93 bytes 09:41:15.318726 Process 93 bytes request 09:41:15.318815 Got request: GET /verifiedserver HTTP/1.1 09:41:15.318890 Are-we-friendly question received 09:41:15.319098 Wrote request (93 bytes) input to log/37/server.input 09:41:15.319285 Identifying ourselves as friends 09:41:15.320003 Response sent (56 bytes) and written to log/37/server.response 09:41:15.320104 special request received, no persistency 09:41:15.320174 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 1029 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind1029 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1029 test 1024...[HTTP Location: following with cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1024 ../src/curl -q --output log/60/curl1024.out --include --trace-ascii log/60/trace1024 --trace-config all --trace-time http://127.0.0.1:38843/want/1024 -L -c log/60/jar1024 > log/60/stdout1024 2> log/60/stderr1024 1024: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1024 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1024 ../src/curl -q --output log/60/curl1024.out --include --trace-ascii log/60/trace1024 --trace-config all --trace-time http://127.0.0.1:38843/want/1024 -L -c log/60/jar1024 > log/60/stdout1024 2> log/60/stderr1024 === End of file commands.log === Start of file http_server.log 09:41:14.820633 ====> Client connect 09:41:14.821179 accept_connection 3 returned 4 09:41:14.821364 accept_connection 3 returned 0 09:41:14.822037 Read 93 bytes 09:41:14.822185 Process 93 bytes request 09:41:14.822271 Got request: GET /verifiedserver HTTP/1.1 09:41:14.822350 Are-we-friendly question received 09:41:14.822672 Wrote request (93 bytes) input to log/60/server.input 09:41:14.822898 Identifying ourselves as friends 09:41:14.823421 Response sent (56 bytes) and written to log/60/server.response 09:41:14.823633 special request received, no persistency 09:41:14.823713 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1024 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1024 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1024 test 1025...[HTTP Location: following with command-line and server cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1025 ../src/curl -q --output log/61/curl1025.out --include --trace-ascii log/61/trace1025 --trace-config all --trace-time http://127.0.0.1:44381/want/1025 -L -c log/61/jar1025 -b forcedcookie=yes > log/61/stdout1025 2> log/61/stderr1025 1025: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1025 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1025 ../src/curl -q --output log/61/curl1025.out --include --trace-ascii log/61/trace1025 --trace-config all --trace-time http://127.0.0.1:44381/want/1025 -L -c log/61/jar1025 -b forcedcookie=yes > log/61/stdout1025 2> log/61/stderr1025 === End of file commands.log === Start of file http_server.log 09:41:14.895035 ====> Client connect 09:41:14.895317 accept_connection 3 returned 4 09:41:14.895568 accept_connection 3 returned 0 09:41:14.895756 Read 93 bytes 09:41:14.895844 Process 93 bytes request 09:41:14.895928 Got request: GET /verifiedserver HTTP/1.1 09:41:14.896012 Are-we-friendly question received 09:41:14.896234 Wrote request (93 bytes) input to log/61/server.input 09:41:14.896529 Identifying ourselves as friends 09:41:14.897309 Response sent (56 bytes) and written to log/61/server.response 09:41:14.897423 special request received, no persistency 09:41:14.897641 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 1025 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind1025 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1025 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/64/server/pop3_server.pid" --logfile "log/64/pop3_server.log" --logdir "log/64" --portfile "log/64/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36135 (log/64/server/pop3_server.port) RUN: POP3 server is PID 121955 port 36135 * pid pop3 => 121955 121955 test 0993...[POP3 LIST 1000 messages] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind993 ../src/curl -q --output log/64/curl993.out --include --trace-ascii log/64/trace993 --trace-config all --trace-time pop3://127.0.0.1:36135/ -u user:secret > log/64/stdout993 2> log/64/stderr993 993: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 993 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind993 ../src/curl -q --output log/64/curl993.out --include --trace-ascii log/64/trace993 --trace-config all --trace-time pop3://127.0.0.1:36135/ -u user:secret > log/64/stdout993 2> log/64/stderr993 === End of file commands.log === Start of file pop3_server.log 09:41:13.972272 POP3 server listens on port IPv4/36135 09:41:13.973265 logged pid 121955 in log/64/server/pop3_server.pid 09:41:13.973549 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:13.218259 Running IPv4 version 09:41:13.218911 Listening on port 36135 09:41:13.219299 Wrote pid 122941 to log/64/server/pop3_sockfilt.pid 09:41:13.224797 Wrote port 36135 to log/64/server/pop3_server.port 09:41:13.224973 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 993 === End of file server.cmd === Start of file valgrind993 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind993 * starts no server setenv LC_ALL = setenv LC_CTYPE = en_US.UTF-8 test 1035...[HTTP over proxy with too long IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1032 ../src/curl -q --output log/57/curl1032.out --include --trace-ascii log/57/trace1032 --trace-config all --trace-time --range 1-3 --head http://127.0.0.1:35945/1032 > log/57/stdout1032 2> log/57/stderr1032 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1038 ../src/curl -q --output log/7/curl1038.out --include --trace-ascii log/7/trace1038 --trace-config all --trace-time ftp://127.0.0.1:41691/1038 -T log/7/upload1038 -C - > log/7/stdout1038 2> log/7/stderr1038 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1039 ../src/curl -q --output log/17/curl1039.out --include --trace-ascii log/17/trace1039 --trace-config all --trace-time ftp://127.0.0.1:33875/1039 -T log/17/upload1039 -C - > log/17/stdout1039 2> log/17/stderr1039 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1037 ../src/curl -q --output log/10/curl1037.out --include --trace-ascii log/10/trace1037 --trace-config all --trace-time ftp://127.0.0.1:32859/1037 -C - > log/10/stdout1037 2> log/10/stderr1037 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1028 ../src/curl -q --include --trace-ascii log/20/trace1028 --trace-config all --trace-time http://127.0.0.1:45475/10280001 -L > log/20/stdout1028 2> log/20/stderr1028 eak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1035 ../src/curl -q --output log/49/curl1035.out --include --trace-ascii log/49/trace1035 --trace-config all --trace-time http://too-long-IDN-name-cürl-rüleß-la-la-la-dee-da-flooby-nooby.local/page/1035 -x 127.0.0.1:47 > log/49/stdout1035 2> log/49/stderr1035 curl returned 1, when expecting 3 1035: exit FAILED == Contents of files in the log/49/ dir after test 1035 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1035 ../src/curl -q --output log/49/curl1035.out --include --trace-ascii log/49/trace1035 --trace-config all --trace-time http://too-long-IDN-name-cürl-rüleß-la-la-la-dee-da-flooby-nooby.local/page/1035 -x 127.0.0.1:47 > log/49/stdout1035 2> log/49/stderr1035 === End of file commands.log === Start of file server.cmd Testnum 1035 === End of file server.cmd === Start of file valgrind1035 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1035 test 1032...[HTTP HEAD with --range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1032 ../src/curl -q --output log/57/curl1032.out --include --trace-ascii log/57/trace1032 --trace-config all --trace-time --range 1-3 --head http://127.0.0.1:35945/1032 > log/57/stdout1032 2> log/57/stderr1032 1032: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 1032 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1032 ../src/curl -q --output log/57/curl1032.out --include --trace-ascii log/57/trace1032 --trace-config all --trace-time --range 1-3 --head http://127.0.0.1:35945/1032 > log/57/stdout1032 2> log/57/stderr1032 === End of file commands.log === Start of file http_server.log 09:41:15.303977 ====> Client connect 09:41:15.304603 accept_connection 3 returned 4 09:41:15.304786 accept_connection 3 returned 0 09:41:15.309601 Read 93 bytes 09:41:15.309778 Process 93 bytes request 09:41:15.309878 Got request: GET /verifiedserver HTTP/1.1 09:41:15.309974 Are-we-friendly question received 09:41:15.310230 Wrote request (93 bytes) input to log/57/server.input 09:41:15.310442 Identifying ourselves as friends 09:41:15.311350 Response sent (56 bytes) and written to log/57/server.response 09:41:15.311549 special request received, no persistency 09:41:15.311654 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 1032 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind1032 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1032 test 1038...[FTP PASV upload resume from end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1038 ../src/curl -q --output log/7/curl1038.out --include --trace-ascii log/7/trace1038 --trace-config all --trace-time ftp://127.0.0.1:41691/1038 -T log/7/upload1038 -C - > log/7/stdout1038 2> log/7/stderr1038 1038: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1038 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1038 ../src/curl -q --output log/7/curl1038.out --include --trace-ascii log/7/trace1038 --trace-config all --trace-time ftp://127.0.0.1:41691/1038 -T log/7/upload1038 -C - > log/7/stdout1038 2> log/7/stderr1038 === End of file commands.log === Start of file ftp_server.log 09:41:15.290986 ====> Client connect 09:41:15.294339 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:15.297184 < "USER anonymous" 09:41:15.297564 > "331 We are happy you popped in![CR][LF]" 09:41:15.299845 < "PASS ftp@example.com" 09:41:15.300247 > "230 Welcome you silly person[CR][LF]" 09:41:15.306085 < "PWD" 09:41:15.311322 > "257 "/" is current directory[CR][LF]" 09:41:15.312247 < "EPSV" 09:41:15.312612 ====> Passive DATA channel requested by client 09:41:15.312933 DATA sockfilt for passive data channel starting... 09:41:15.335989 DATA sockfilt for passive data channel started (pid 125150) 09:41:15.337151 DATA sockfilt for passive data channel listens on port 34647 09:41:15.337631 > "229 Entering Passive Mode (|||34647|)[LF]" 09:41:15.337989 Client has been notified that DATA conn will be accepted on port 34647 09:41:15.342103 Client connects to port 34647 09:41:15.342393 ====> Client established passive DATA connection on port 34647 09:41:15.343239 < "TYPE I" 09:41:15.343667 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:15.347284 < "SIZE verifiedserver" 09:41:15.349515 > "213 17[CR][LF]" 09:41:15.350244 < "RETR verifiedserver" 09:41:15.350608 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:15.351339 =====> Closing passive DATA connection... 09:41:15.351528 Server disconnects passive DATA connection 09:41:15.355927 Server disconnected passive DATA connection 09:41:15.356210 DATA sockfilt for passive data channel quits (pid 125150) 09:41:15.358238 DATA sockfilt for passive data channel quit (pid 125150) 09:41:15.358587 =====> Closed passive DATA connection 09:41:15.359100 > "226 File transfer complete[CR][LF]" 09:41:15.397386 < "QUIT" 09:41:15.398692 > "221 bye bye baby[CR][LF]" 09:41:15.399458 MAIN sockfilt said DISC 09:41:15.400339 ====> Client disconnected 09:41:15.400965 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:15.543809 ====> Client connect 09:41:15.546055 Received DATA (on stdin) 09:41:15.546183 > 160 bytes data, server => client 09:41:15.546592 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:15.546737 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:15.546804 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:15.547598 < 16 bytes data, client => server 09:41:15.547778 'USER anonymous\r\n' 09:41:15.551668 Received DATA (on stdin) 09:41:15.551816 > 33 bytes data, server => client 09:41:15.551898 '331 We are happy you popped in!\r\n' 09:41:15.552539 < 22 bytes data, client => server 09:41:15.552689 'PASS ftp@example.com\r\n' 09:41:15.557562 Received DATA (on stdin) 09:41:15.557737 > 30 bytes data, server => client 09:41:15.557841 '230 Welcome you silly person\r\n' 09:41:15.558790 < 5 bytes data, client => server 09:41:15.558970 'PWD\r\n' 09:41:15.560185 Received DATA (on stdin) 09:41:15.560320 > 30 bytes data, server => client 09:41:15.560560 '257 "/" is current directory\r\n' 09:41:15.561342 < 6 bytes data, client => server 09:41:15.561551 'EPSV\r\n' 09:41:15.594161 Received DATA (on stdin) 09:41:15.594321 > 38 bytes data, server => client 09:41:15.594408 '229 Entering Passive Mode (|||34647|)\n' 09:41:15.595702 < 8 bytes data, client => server 09:41:15.595869 'TYPE I\r\n' 09:41:15.599232 Received DATA (on stdin) 09:41:15.599374 > 33 bytes data, server => client 09:41:15.599529 '200 I modify TYPE as you wanted\r\n' 09:41:15.600153 < 21 bytes data, client => server 09:41:15.600282 'SIZE verifiedserver\r\n' 09:41:15.601721 Received DATA (on stdin) 09:41:15.602005 > 8 bytes data, server => client 09:41:15.602179 '213 17\r\n' 09:41:15.602902 < 21 bytes data, client => server 09:41:15.603036 'RETR verifiedserver\r\n' 09:41:15.607586 Received DATA (on stdin) 09:41:15.607762 > 29 bytes data, server => client 09:41:15.607862 '150 Binary junk (17 bytes).\r\n' 09:41:15.613213 Received DATA (on stdin) 09:41:15.613406 > 28 bytes data, server => client 09:41:15.613582 '226 File transfer complete\r\n' 09:41:15.650364 < 6 bytes data, client => server 09:41:15.650802 'QUIT\r\n' 09:41:15.651585 Received DATA (on stdin) 09:41:15.651728 > 18 bytes data, server => client 09:41:15.651915 '221 bye bye baby\r\n' 09:41:15.652690 ====> Client disconnect 09:41:15.653549 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:15.587061 Running IPv4 version 09:41:15.587699 Listening on port 34647 09:41:15.588055 Wrote pid 125150 to log/7/server/ftp_sockdata.pid 09:41:15.588236 Received PING (on stdin) 09:41:15.590144 Received PORT (on stdin) 09:41:15.595522 ====> Client connect 09:41:15.605028 Received DATA (on stdin) 09:41:15.605180 > 17 bytes data, server => client 09:41:15.605248 'WE ROOLZ: 77570\r\n' 09:41:15.605597 Received DISC (on stdin) 09:41:15.605757 ====> Client forcibly disconnected 09:41:15.610252 Received QUIT (on stdin) 09:41:15.610403 quits 09:41:15.610893 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1038 === End of file server.cmd === Start of file upload1038 this is the *****cr@p******** that we're gonna upload worx? === End of file upload1038 === Start of file valgrind1038 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1038 test 1039...[FTP PASV upload resume from end of empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1039 ../src/curl -q --output log/17/curl1039.out --include --trace-ascii log/17/trace1039 --trace-config all --trace-time ftp://127.0.0.1:33875/1039 -T log/17/upload1039 -C - > log/17/stdout1039 2> log/17/stderr1039 1039: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1039 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1039 ../src/curl -q --output log/17/curl1039.out --include --trace-ascii log/17/trace1039 --trace-config all --trace-time ftp://127.0.0.1:33875/1039 -T log/17/upload1039 -C - > log/17/stdout1039 2> log/17/stderr1039 === End of file commands.log === Start of file ftp_server.log 09:41:15.221534 ====> Client connect 09:41:15.222971 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:15.226004 < "USER anonymous" 09:41:15.227575 > "331 We are happy you popped in![CR][LF]" 09:41:15.228935 < "PASS ftp@example.com" 09:41:15.229690 > "230 Welcome you silly person[CR][LF]" 09:41:15.231576 < "PWD" 09:41:15.232295 > "257 "/" is current directory[CR][LF]" 09:41:15.234538 < "EPSV" 09:41:15.234885 ====> Passive DATA channel requested by client 09:41:15.235126 DATA sockfilt for passive data channel starting... 09:41:15.258380 DATA sockfilt for passive data channel started (pid 125069) 09:41:15.259330 DATA sockfilt for passive data channel listens on port 38205 09:41:15.260035 > "229 Entering PassCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1036 ../src/curl -q --output log/15/curl1036.out --include --trace-ascii log/15/trace1036 --trace-config all --trace-time ftp://127.0.0.1:38699/1036 -C - > log/15/stdout1036 2> log/15/stderr1036 ive Mode (|||38205|)[LF]" 09:41:15.260383 Client has been notified that DATA conn will be accepted on port 38205 09:41:15.264930 Client connects to port 38205 09:41:15.265533 ====> Client established passive DATA connection on port 38205 09:41:15.267127 < "TYPE I" 09:41:15.267574 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:15.270063 < "SIZE verifiedserver" 09:41:15.271187 > "213 17[CR][LF]" 09:41:15.272934 < "RETR verifiedserver" 09:41:15.274603 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:15.277594 =====> Closing passive DATA connection... 09:41:15.277960 Server disconnects passive DATA connection 09:41:15.280264 Server disconnected passive DATA connection 09:41:15.282872 DATA sockfilt for passive data channel quits (pid 125069) 09:41:15.290898 DATA sockfilt for passive data channel quit (pid 125069) 09:41:15.291185 =====> Closed passive DATA connection 09:41:15.291814 > "226 File transfer complete[CR][LF]" 09:41:15.324013 < "QUIT" 09:41:15.328202 > "221 bye bye baby[CR][LF]" 09:41:15.336193 MAIN sockfilt said DISC 09:41:15.337120 ====> Client disconnected 09:41:15.337611 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:15.474718 ====> Client connect 09:41:15.477100 Received DATA (on stdin) 09:41:15.477239 > 160 bytes data, server => client 09:41:15.477325 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:15.477398 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:15.477610 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:15.478650 < 16 bytes data, client => server 09:41:15.478802 'USER anonymous\r\n' 09:41:15.480120 Received DATA (on stdin) 09:41:15.480268 > 33 bytes data, server => client 09:41:15.480447 '331 We are happy you popped in!\r\n' 09:41:15.481831 < 22 bytes data, client => server 09:41:15.481961 'PASS ftp@example.com\r\n' 09:41:15.483061 Received DATA (on stdin) 09:41:15.483198 > 30 bytes data, server => client 09:41:15.483802 '230 Welcome you silly person\r\n' 09:41:15.484394 < 5 bytes data, client => server 09:41:15.484603 'PWD\r\n' 09:41:15.485689 Received DATA (on stdin) 09:41:15.485830 > 30 bytes data, server => client 09:41:15.486379 '257 "/" is current directory\r\n' 09:41:15.487526 < 6 bytes data, client => server 09:41:15.487688 'EPSV\r\n' 09:41:15.514692 Received DATA (on stdin) 09:41:15.514853 > 38 bytes data, server => client 09:41:15.515034 '229 Entering Passive Mode (|||38205|)\n' 09:41:15.518167 < 8 bytes data, client => server 09:41:15.518276 'TYPE I\r\n' 09:41:15.521591 Received DATA (on stdin) 09:41:15.521752 > 33 bytes data, server => client 09:41:15.521836 '200 I modify TYPE as you wanted\r\n' 09:41:15.522916 < 21 bytes data, client => server 09:41:15.523054 'SIZE verifiedserver\r\n' 09:41:15.524179 Received DATA (on stdin) 09:41:15.524320 > 8 bytes data, server => client 09:41:15.524536 '213 17\r\n' 09:41:15.525647 < 21 bytes data, client => server 09:41:15.525805 'RETR verifiedserver\r\n' 09:41:15.527545 Received DATA (on stdin) 09:41:15.527766 > 29 bytes data, server => client 09:41:15.527943 '150 Binary junk (17 bytes).\r\n' 09:41:15.545882 Received DATA (on stdin) 09:41:15.546052 > 28 bytes data, server => client 09:41:15.546196 '226 File transfer complete\r\n' 09:41:15.575912 < 6 bytes data, client => server 09:41:15.576278 'QUIT\r\n' 09:41:15.578692 Received DATA (on stdin) 09:41:15.578935 > 18 bytes data, server => client 09:41:15.585571 '221 bye bye baby\r\n' 09:41:15.589642 ====> Client disconnect 09:41:15.590203 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:15.510129 Running IPv4 version 09:41:15.510891 Listening on port 38205 09:41:15.511641 Wrote pid 125069 to log/17/server/ftp_sockdata.pid 09:41:15.511821 Received PING (on stdin) 09:41:15.512530 Received PORT (on stdin) 09:41:15.517812 ====> Client connect 09:41:15.529643 Received DATA (on stdin) 09:41:15.529816 > 17 bytes data, server => client 09:41:15.529989 'WE ROOLZ: 86383\r\n' 09:41:15.532414 Received DISC (on stdin) 09:41:15.533160 ====> Client forcibly disconnected 09:41:15.536967 Received QUIT (on stdin) 09:41:15.537095 quits 09:41:15.537563 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1039 === End of file server.cmd === Start of file upload1039 this is the *****cr@p******** that we're gonna upload worx? === End of file upload1039 === Start of file valgrind1039 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1039 test 1037...[FTP download resume from end of empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1037 ../src/curl -q --output log/10/curl1037.out --include --trace-ascii log/10/trace1037 --trace-config all --trace-time ftp://127.0.0.1:32859/1037 -C - > log/10/stdout1037 2> log/10/stderr1037 1037: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 1037 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1037 ../src/curl -q --output log/10/curl1037.out --include --trace-ascii log/10/trace1037 --trace-config all --trace-time ftp://127.0.0.1:32859/1037 -C - > log/10/stdout1037 2> log/10/stderr1037 === End of file commands.log === Start of file ftp_server.log 09:41:15.167145 ====> Client connect 09:41:15.168660 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:15.176910 < "USER anonymous" 09:41:15.177292 > "331 We are happy you popped in![CR][LF]" 09:41:15.183308 < "PASS ftp@example.com" 09:41:15.187944 > "230 Welcome you silly person[CR][LF]" 09:41:15.189879 < "PWD" 09:41:15.190231 > "257 "/" is current directory[CR][LF]" 09:41:15.197499 < "EPSV" 09:41:15.197876 ====> Passive DATA channel requested by client 09:41:15.198118 DATA sockfilt for passive data channel starting... 09:41:15.210733 DATA sockfilt for passive data channel started (pid 125025) 09:41:15.212173 DATA sockfilt for passive data channel listens on port 33789 09:41:15.212617 > "229 Entering Passive Mode (|||33789|)[LF]" 09:41:15.213010 Client has been notified that DATA conn will be accepted on port 33789 09:41:15.214864 Client connects to port 33789 09:41:15.215239 ====> Client established passive DATA connection on port 33789 09:41:15.218408 < "TYPE I" 09:41:15.218869 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:15.221591 < "SIZE verifiedserver" 09:41:15.222484 > "213 17[CR][LF]" 09:41:15.224324 < "RETR verifiedserver" 09:41:15.226124 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:15.227576 =====> Closing passive DATA connection... 09:41:15.227951 Server disconnects passive DATA connection 09:41:15.230045 Server disconnected passive DATA connection 09:41:15.230318 DATA sockfilt for passive data channel quits (pid 125025) 09:41:15.232487 DATA sockfilt for passive data channel quit (pid 125025) 09:41:15.232863 =====> Closed passive DATA connection 09:41:15.233287 > "226 File transfer complete[CR][LF]" 09:41:15.268853 < "QUIT" 09:41:15.270243 > "221 bye bye baby[CR][LF]" 09:41:15.274246 MAIN sockfilt said DISC 09:41:15.275185 ====> Client disconnected 09:41:15.276246 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:15.419680 ====> Client connect 09:41:15.425567 Received DATA (on stdin) 09:41:15.425767 > 160 bytes data, server => client 09:41:15.425901 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:15.426021 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:15.426116 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:15.428038 < 16 bytes data, client => server 09:41:15.428197 'USER anonymous\r\n' 09:41:15.432574 Received DATA (on stdin) 09:41:15.432729 > 33 bytes data, server => client 09:41:15.432814 '331 We are happy you popped in!\r\n' 09:41:15.436155 < 22 bytes data, client => server 09:41:15.436315 'PASS ftp@example.com\r\n' 09:41:15.437445 Received DATA (on stdin) 09:41:15.437745 > 30 bytes data, server => client 09:41:15.442132 '230 Welcome you silly person\r\n' 09:41:15.444196 < 5 bytes data, client => server 09:41:15.444313 'PWD\r\n' 09:41:15.444413 Received DATA (on stdin) 09:41:15.444597 > 30 bytes data, server => client 09:41:15.444700 '257 "/" is current directory\r\n' 09:41:15.448699 < 6 bytes data, client => server 09:41:15.448898 'EPSV\r\n' 09:41:15.466366 Received DATA (on stdin) 09:41:15.466612 > 38 bytes data, server => client 09:41:15.466735 '229 Entering Passive Mode (|||33789|)\n' 09:41:15.469437 < 8 bytes data, client => server 09:41:15.469743 'TYPE I\r\n' 09:41:15.473363 Received DATA (on stdin) 09:41:15.473600 > 33 bytes data, server => client 09:41:15.473707 '200 I modify TYPE as you wanted\r\n' 09:41:15.474584 < 21 bytes data, client => server 09:41:15.474731 'SIZE verifiedserver\r\n' 09:41:15.475795 Received DATA (on stdin) 09:41:15.475949 > 8 bytes data, server => client 09:41:15.476552 '213 17\r\n' 09:41:15.477197 < 21 bytes data, client => server 09:41:15.477343 'RETR verifiedserver\r\n' 09:41:15.478531 Received DATA (on stdin) 09:41:15.478698 > 29 bytes data, server => client 09:41:15.478876 '150 Binary junk (17 bytes).\r\n' 09:41:15.487351 Received DATA (on stdin) 09:41:15.487582 > 28 bytes data, server => client 09:41:15.487709 '226 File transfer complete\r\n' 09:41:15.521542 < 6 bytes data, client => server 09:41:15.521732 'QUIT\r\n' 09:41:15.523037 Received DATA (on stdin) 09:41:15.523204 > 18 bytes data, server => client 09:41:15.523422 '221 bye bye baby\r\n' 09:41:15.527681 ====> Client disconnect 09:41:15.528269 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:15.462825 Running IPv4 version 09:41:15.463540 Listening on port 33789 09:41:15.463933 Wrote pid 125025 to log/10/server/ftp_sockdata.pid 09:41:15.464155 Received PING (on stdin) 09:41:15.465322 Received PORT (on stdin) 09:41:15.468206 ====> Client connect 09:41:15.480314 Received DATA (on stdin) 09:41:15.480566 > 17 bytes data, server => client 09:41:15.481936 'WE ROOLZ: 77425\r\n' 09:41:15.482353 Received DISC (on stdin) 09:41:15.482609 ====> Client forcibly disconnected 09:41:15.484332 Received QUIT (on stdin) 09:41:15.484541 quits 09:41:15.484995 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1037 === End of file server.cmd === Start of file valgrind1037 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1037 test 1036...[FTP download resume from end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1036 ../src/curl -q --output log/15/curl1036.out --include --trace-ascii log/15/trace1036 --trace-config all --trace-time ftp://127.0.0.1:38699/1036 -C - > log/15/stdout1036 2> log/15/stderr1036 1036: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 1036 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1036 ../src/curl -q --output log/15/curl1036.out --include --trace-ascii log/15/trace1036 --trace-config all --trace-time ftp://127.0.0.1:38699/1036 -C - > log/15/stdout1036 2> log/15/stderr1036 === End of file commands.log === Start of file curl1036.out This is the start! === End of file curl1036.out === Start of file ftp_server.log 09:41:15.177204 ====> Client connect 09:41:15.179358 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:15.180699 < "USER anonymous" 09:41:15.181860 > "331 We are happy you popped in![CR][LF]" 09:41:15.184053 < "PASS ftp@example.com" 09:41:15.185501 > "230 Welcome you silly person[CR][LF]" 09:41:15.186658 < "PWD" 09:41:15.187394 > "257 "/" is current directory[CR][LF]" 09:41:15.189264 < "EPSV" 09:41:15.189526 ====> Passive DATA channel requested by client 09:41:15.189695 DATA sockfilt for passive data channel starting... 09:41:15.201316 DATA sockfilt for passive data channel started (pid 125011) 09:41:15.202255 DATA sockfilt for passive data channel listens on port 33451 09:41:15.202723 > "229 Entering Passive Mode (|||33451|)[LF]" 09:41:15.203049 Client has been notified that DATA conn will be accepted on port 33451 09:41:15.208796 Client connects to port 33451 09:41:15.209236 ====> Client established passive DATA connection on port 33451 09:41:15.210234 < "TYPE I" 09:41:15.210620 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:15.213010 < "SIZE verifiedserver" 09:41:15.214648 > "213 17[CR][LF]" 09:41:15.215339 < "RETR verifiedserver" 09:41:15.216800 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:15.217550 =====> Closing passive DATA connection... 09:41:15.217851 Server disconnects passive DATA connection 09:41:15.219833 Server disconnected passive DATA connection 09:41:15.220109 DATA sockfilt for passive data channel quits (pid 125011) 09:41:15.221928 DATA sockfilt for passive data channel quit (pid 125011) 09:41:15.222195 =====> Closed passive DATA connection 09:41:15.222593 > "226 File transfer complete[CR][LF]" 09:41:15.259161 < "QUIT" 09:41:15.260579 > "221 bye bye baby[CR][LF]" 09:41:15.265473 MAIN sockfilt said DISC 09:41:15.267209 ====> Client disconnected 09:41:15.268961 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:15.430295 ====> Client connect 09:41:15.432040 Received DATA (on stdin) 09:41:15.432180 > 160 bytes data, server => client 09:41:15.432349 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:15.432448 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:15.432604 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:15.433419 < 16 bytes data, client => server 09:41:15.433612 'USER anonymous\r\n' 09:41:15.434835 Received DATA (on stdin) 09:41:15.434970 > 33 bytes data, server => client 09:41:15.435110 '331 We are happy you popped in!\r\n' 09:41:15.436446 < 22 bytes data, client => server 09:41:15.436659 'PASS ftp@example.com\r\n' 09:41:15.438151 Received DATA (on stdin) 09:41:15.438331 > 30 bytes data, server => client 09:41:15.438580 '230 Welcome you silly person\r\n' 09:41:15.439683 < 5 bytes data, client => server 09:41:15.439818 'PWD\r\n' 09:41:15.440796 Received DATA (on stdin) 09:41:15.440924 > 30 bytes data, server => client 09:41:15.441374 '257 "/" is current directory\r\n' 09:41:15.442307 < 6 bytes data, client => server 09:41:15.442522 'EPSV\r\n' 09:41:15.458626 Received DATA (on stdin) 09:41:15.458792 > 38 bytes data, server => client 09:41:15.458906 '229 Entering Passive Mode (|||33451|)\n' 09:41:15.462090 < 8 bytes data, client => server 09:41:15.462240 'TYPE I\r\n' 09:41:15.465004 Received DATA (on stdin) 09:41:15.465158 > 33 bytes data, server => client 09:41:15.465245 '200 I modify TYPE as you wanted\r\n' 09:41:15.465935 < 21 bytes data, client => server 09:41:15.466071 'SIZE verifiedserver\r\n' 09:41:15.467115 Received DATA (on stdin) 09:41:15.467260 > 8 bytes data, server => client 09:41:15.467416 '213 17\r\n' 09:41:15.468044 < 21 bytes data, client => server 09:41:15.468186 'RETR verifiedserver\r\n' 09:41:15.469399 Received DATA (on stdin) 09:41:15.469614 > 29 bytes data, server => client 09:41:15.469801 '150 Binary junk (17 bytes).\r\n' 09:41:15.476736 Received DATA (on stdin) 09:41:15.476877 > 28 bytes data, server => client 09:41:15.476957 '226 File transfer complete\r\n' 09:41:15.511958 < 6 bytes data, client => server 09:41:15.512115 'QUIT\r\n' 09:41:15.513235 Received DATA (on stdin) 09:41:15.513447 > 18 bytes data, server => client 09:41:15.513752 '221 bye bye baby\r\n' 09:41:15.518596 ====> Client disconnect 09:41:15.519978 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:15.453441 Running IPv4 version 09:41:15.454074 Listening on port 33451 09:41:15.454424 Wrote pid 125011 to log/15/server/ftp_sockdata.pid 09:41:15.454733 Received PING (on stdin) 09:41:15.455385 Received PORT (on stdin) 09:41:15.460196 ====> Client connect 09:41:15.471842 Received DATA (on stdin) 09:41:15.471973 > 17 bytes data, server => client 09:41:15.472053 'WE ROOLZ: 90579\r\n' 09:41:15.472350 Received DISC (on stdin) 09:41:15.473001 ====> Client forcibly disconnected 09:41:15.474050 Received QUIT (on stdin) 09:41:15.474169 quits 09:41:15.474638 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1036 === End of file server.cmd === Start of file valgrind1036 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1036 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1030 ../src/curl -q --output log/4/curl1030.out --include --trace-ascii log/4/trace1030 --trace-config all --trace-time http://127.0.0.1:43013/1030 -T log/4/put1030 -u testuser:testpass --anyauth > log/4/stdout1030 2> log/4/stderr1030 test 1028...[HTTP Location: redirect to FTP URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1028 ../src/curl -q --include --trace-ascii log/20/trace1028 --trace-config all --trace-time http://127.0.0.1:45475/10280001 -L > log/20/stdout1028 2> log/20/stderr1028 1028: stdout FAILED: --- log/20/check-expected 2025-07-18 09:41:16.444471832 +0000 +++ log/20/check-generated 2025-07-18 09:41:16.443590093 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 302 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake swsclose[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Location: ftp://127.0.0.1:34743/10280002[CR][LF] -Content-Length: 0[CR][LF] -Connection: close[CR][LF] -[CR][LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] == Contents of files in the log/20/ dir after test 1028 === Start of file check-expected HTTP/1.1 302 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake swsclose[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Location: ftp://127.0.0.1:34743/10280002[CR][LF] Content-Length: 0[CR][LF] Connection: close[CR][LF] [CR][LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1028 ../src/curl -q --include --trace-ascii log/20/trace1028 --trace-config all --trace-time http://127.0.0.1:45475/10280001 -L > log/20/stdout1028 2> log/20/stderr1028 === End of file commands.log === Start of file ftp_server.log 09:41:15.256017 ====> Client connect 09:41:15.258374 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:15.267622 < "USER anonymous" 09:41:15.268186 > "331 We are happy you popped in![CR][LF]" 09:41:15.270249 < "PASS ftp@example.com" 09:41:15.270677 > "230 Welcome you silly person[CR][LF]" 09:41:15.272225 < "PWD" 09:41:15.273080 > "257 "/" is current directory[CR][LF]" 09:41:15.275156 < "EPSV" 09:41:15.275519 ====> Passive DATA channel requested by client 09:41:15.275832 DATA sockfilt for passive data channel starting... 09:41:15.288977 DATA sockfilt for passive data channel started (pid 125108) 09:41:15.291258 DATA sockfilt for passive data channel listens on port 44117 09:41:15.292085 > "229 Entering Passive Mode (|||44117|)[LF]" 09:41:15.292400 Client has been notified that DATA conn will be accepted on port 44117 09:41:15.294235 Client connects to port 44117 09:41:15.294526 ====> Client established passive DATA connection on port 44117 09:41:15.295862 < "TYPE I" 09:41:15.296530 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:15.298243 < "SIZE verifiedserver" 09:41:15.299465 > "213 17[CR][LF]" 09:41:15.301195 < "RETR verifiedserver" 09:41:15.302414 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:15.303106 =====> Closing passive DATA connection... 09:41:15.303289 Server disconnects passive DATA connection 09:41:15.305540 Server disconnected passive DATA connection 09:41:15.305930 DATA sockfilt for passive data channel quits (pid 125108) 09:41:15.307646 DATA sockfilt for passive data channel quit (pid 125108) 09:41:15.307952 =====> Closed passive DATA connection 09:41:15.308947 > "226 File transfer complete[CR][LF]" 09:41:15.344727 < "QUIT" 09:41:15.346013 > "221 bye bye baby[CR][LF]" 09:41:15.349902 MAIN sockfilt said DISC 09:41:15.350208 ====> Client disconnected 09:41:15.350677 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:15.507824 ====> Client connect 09:41:15.514136 Received DATA (on stdin) 09:41:15.514619 > 160 bytes data, server => client 09:41:15.514745 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:15.514842 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:15.515071 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:15.516872 < 16 bytes data, client => server 09:41:15.517549 'USER anonymous\r\n' 09:41:15.521947 Received DATA (on stdin) 09:41:15.522215 > 33 bytes data, server => client 09:41:15.522363 '331 We are happy you popped in!\r\n' 09:41:15.523276 < 22 bytes data, client => server 09:41:15.523429 'PASS ftp@example.com\r\n' 09:41:15.524419 Received DATA (on stdin) 09:41:15.524623 > 30 bytes data, server => client 09:41:15.524703 '230 Welcome you silly person\r\n' 09:41:15.525300 < 5 bytes data, client => server 09:41:15.525426 'PWD\r\n' 09:41:15.526705 Received DATA (on stdin) 09:41:15.527039 > 30 bytes data, server => client 09:41:15.527152 '257 "/" is current directory\r\n' 09:41:15.528205 < 6 bytes data, client => server 09:41:15.528341 'EPSV\r\n' 09:41:15.545808 Received DATA (on stdin) 09:41:15.545983 > 38 bytes data, server => client 09:41:15.546079 '229 Entering Passive Mode (|||44117|)\n' 09:41:15.548689 < 8 bytes data, client => server 09:41:15.548817 'TYPE I\r\n' 09:41:15.549926 Received DATA (on stdin) 09:41:15.550052 > 33 bytes data, server => client 09:41:15.550585 '200 I modify TYPE as you wanted\r\n' 09:41:15.551223 < 21 bytes data, client => server 09:41:15.551354 'SIZE verifiedserver\r\n' 09:41:15.552353 Received DATA (on stdin) 09:41:15.552586 > 8 bytes data, server => client 09:41:15.552787 '213 17\r\n' 09:41:15.554224 < 21 bytes data, client => server 09:41:15.554393 'RETR verifiedserver\r\n' 09:41:15.555254 Received DATA (on stdin) 09:41:15.555376 > 29 bytes data, server => client 09:41:15.555586 '150 Binary junk (17 bytes).\r\n' 09:41:15.561967 Received DATA (on stdin) 09:41:15.562089 > 28 bytes data, server => client 09:41:15.562301 '226 File transfer complete\r\n' 09:41:15.597632 < 6 bytes data, client => server 09:41:15.597779 'QUIT\r\n' 09:41:15.599019 Received DATA (on stdin) 09:41:15.599150 > 18 bytes data, server => client 09:41:15.599313 '221 bye bye baby\r\n' 09:41:15.600581 ====> Client disconnect 09:41:15.604725 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:15.540943 Running IPv4 version 09:41:15.541379 Listening on port 44117 09:41:15.541919 Wrote pid 125108 to log/20/server/ftp_sockdata.pid 09:41:15.542162 Received PING (on stdin) 09:41:15.543835 Received PORT (on stdin) 09:41:15.547215 ====> Client connect 09:41:15.557277 Received DATA (on stdin) 09:41:15.557398 > 17 bytes data, server => client 09:41:15.557539 'WE ROOLZ: 79624\r\n' 09:41:15.557940 Received DISC (on stdin) 09:41:15.558135 ====> Client forcibly disconnected 09:41:15.559943 Received QUIT (on stdin) 09:41:15.560047 quits 09:41:15.560388 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:15.232143 ====> Client connect 09:41:15.232612 accept_connection 3 returned 4 09:41:15.232816 accept_connection 3 returned 0 09:41:15.232958 Read 93 bytes 09:41:15.233067 Process 93 bytes request 09:41:15.233159 Got request: GET /verifiedserver HTTP/1.1 09:41:15.233239 Are-we-friendly question received 09:41:15.233566 Wrote request (93 bytes) input to log/20/server.input 09:41:15.233767 Identifying ourselves as friends 09:41:15.241749 Response sent (56 bytes) and written to log/20/server.response 09:41:15.241886 special request received, no persistency 09:41:15.241968 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1041 ../src/curl -q --output log/55/curl1041.out --include --trace-ascii log/55/trace1041 --trace-config all --trace-time http://127.0.0.1:33071/1041 -Tlog/55/test1041.txt -C - > log/55/stdout1041 2> log/55/stderr1041 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1040 ../src/curl -q --output log/63/curl1040.out --include --trace-ascii log/63/trace1040 --trace-config all --trace-time http://127.0.0.1:38797/1040 -C - > log/63/stdout1040 2> log/63/stderr1040 ut WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 1028 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind1028 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1028 test 1030...[HTTP PUT with --anyauth authorization (picking Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1030 ../src/curl -q --output log/4/curl1030.out --include --trace-ascii log/4/trace1030 --trace-config all --trace-time http://127.0.0.1:43013/1030 -T log/4/put1030 -u testuser:testpass --anyauth > log/4/stdout1030 2> log/4/stderr1030 1030: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1030 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1030 ../src/curl -q --output log/4/curl1030.out --include --trace-ascii log/4/trace1030 --trace-config all --trace-time http://127.0.0.1:43013/1030 -T log/4/put1030 -u testuser:testpass --anyauth > log/4/stdout1030 2> log/4/stderr1030 === End of file commands.log === Start of file http_server.log 09:41:15.270882 ====> Client connect 09:41:15.271201 accept_connection 3 returned 4 09:41:15.271381 accept_connection 3 returned 0 09:41:15.271684 Read 93 bytes 09:41:15.271840 Process 93 bytes request 09:41:15.271975 Got request: GET /verifiedserver HTTP/1.1 09:41:15.272071 Are-we-friendly question received 09:41:15.272322 Wrote request (93 bytes) input to log/4/server.input 09:41:15.272677 Identifying ourselves as friends 09:41:15.273551 Response sent (56 bytes) and written to log/4/server.response 09:41:15.273748 special request received, no persistency 09:41:15.273829 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file put1030 This is data we upload with PUT a second line line three four is the number of lines === End of file put1030 === Start of file server.cmd Testnum 1030 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind1030 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1030 test 1041...[HTTP PUT with resume from end of already-uploaded file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1041 ../src/curl -q --output log/55/curl1041.out --include --trace-ascii log/55/trace1041 --trace-config all --trace-time http://127.0.0.1:33071/1041 -Tlog/55/test1041.txt -C - > log/55/stdout1041 2> log/55/stderr1041 1041: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 1041 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1041 ../src/curl -q --output log/55/curl1041.out --include --trace-ascii log/55/trace1041 --trace-config all --trace-time http://127.0.0.1:33071/1041 -Tlog/55/test1041.txt -C - > log/55/stdout1041 2> log/55/stderr1041 === End of file commands.log === Start of file http_server.log 09:41:15.801885 ====> Client connect 09:41:15.802177 accept_connection 3 returned 4 09:41:15.802328 accept_connection 3 returned 0 09:41:15.803680 Read 93 bytes 09:41:15.803844 Process 93 bytes request 09:41:15.803950 Got request: GET /verifiedserver HTTP/1.1 09:41:15.804034 Are-we-friendly question received 09:41:15.804344 Wrote request (93 bytes) input to log/55/server.input 09:41:15.804899 Identifying ourselves as friends 09:41:15.805640 Response sent (56 bytes) and written to log/55/server.response 09:41:15.805821 special request received, no persistency 09:41:15.805889 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 1041 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1042 ../src/curl -q --output log/59/curl1042.out --include --trace-ascii log/59/trace1042 --trace-config all --trace-time http://127.0.0.1:43695/1042 -C 200 > log/59/stdout1042 2> log/59/stderr1042 === End of file server.response === Start of file test1041.txt 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file test1041.txt === Start of file valgrind1041 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1041 test 1040...[HTTP GET with resume from end of entirely-downloaded file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1040 ../src/curl -q --output log/63/curl1040.out --include --trace-ascii log/63/trace1040 --trace-config all --trace-time http://127.0.0.1:38797/1040 -C - > log/63/stdout1040 2> log/63/stderr1040 1040: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1040 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1040 ../src/curl -q --output log/63/curl1040.out --include --trace-ascii log/63/trace1040 --trace-config all --trace-time http://127.0.0.1:38797/1040 -C - > log/63/stdout1040 2> log/63/stderr1040 === End of file commands.log === Start of file curl1040.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1040.out === Start of file http_server.log 09:41:15.559233 ====> Client connect 09:41:15.559976 accept_connection 3 returned 4 09:41:15.560132 accept_connection 3 returned 0 09:41:15.561096 Read 93 bytes 09:41:15.561264 Process 93 bytes request 09:41:15.561363 Got request: GET /verifiedserver HTTP/1.1 09:41:15.561441 Are-we-friendly question received 09:41:15.561854 Wrote request (93 bytes) input to log/63/server.input 09:41:15.562086 Identifying ourselves as friends 09:41:15.563336 Response sent (56 bytes) and written to log/63/server.response 09:41:15.564878 special request received, no persistency 09:41:15.565084 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 1040 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1040 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1040 test 1042...[HTTP GET beyond end of entirely-downloaded file, no server resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1042 ../src/curl -q --output log/59/curl1042.out --include --trace-ascii log/59/trace1042 --trace-config all --trace-time http://127.0.0.1:43695/1042 -C 200 > log/59/stdout1042 2> log/59/stderr1042 1042: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 1042 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1042 ../src/curl -q --output log/59/curl1042.out --include --trace-ascii log/59/trace1042 --trace-config all --trace-time http://127.0.0.1:43695/1042 -C 200 > log/59/stdout1042 2> log/59/stderr1042 === End of file commands.log === Start of file curl1042.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1042.out === Start of file http_server.log 09:41:16.174207 ====> Client connect 09:41:16.174671 accept_connection 3 returned 4 09:41:16.174862 accept_connection 3 returned 0 09:41:16.175000 Read 93 bytes 09:41:16.175093 Process 93 bytes request 09:41:16.175183 Got request: GET /verifiedserver HTTP/1.1 09:41:16.175261 Are-we-friendly question received 09:41:16.175569 Wrote request (93 bytes) input to log/59/server.input 09:41:16.175770 Identifying ourselves as friends 09:41:16.176598 Response sent (56 bytes) and written to log/59/server.response 09:41:16.176722 special request received, no persistency 09:41:16.176790 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd TCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1043 ../src/curl -q --output log/62/curl1043.out --include --trace-ascii log/62/trace1043 --trace-config all --trace-time http://127.0.0.1:38899/1043 -C - > log/62/stdout1043 2> log/62/stderr1043 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1063 ../src/curl -q --output log/13/curl1063.out --include --trace-ascii log/13/trace1063 --trace-config all --trace-time -r 4294967303- file://localhost/build/curl/src/build-curl/tests/log/13/test1063.txt > log/13/stdout1063 2> log/13/stderr1063 estnum 1042 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind1042 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1042 test 1043...[HTTP GET with resume from end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1043 ../src/curl -q --output log/62/curl1043.out --include --trace-ascii log/62/trace1043 --trace-config all --trace-time http://127.0.0.1:38899/1043 -C - > log/62/stdout1043 2> log/62/stderr1043 1043: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1043 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1043 ../src/curl -q --output log/62/curl1043.out --include --trace-ascii log/62/trace1043 --trace-config all --trace-time http://127.0.0.1:38899/1043 -C - > log/62/stdout1043 2> log/62/stderr1043 === End of file commands.log === Start of file curl1043.out 012345678 012345678 012345678 012345678 === End of file curl1043.out === Start of file http_server.log 09:41:16.407654 ====> Client connect 09:41:16.408038 accept_connection 3 returned 4 09:41:16.408231 accept_connection 3 returned 0 09:41:16.408382 Read 93 bytes 09:41:16.408574 Process 93 bytes request 09:41:16.408714 Got request: GET /verifiedserver HTTP/1.1 09:41:16.408817 Are-we-friendly question received 09:41:16.409076 Wrote request (93 bytes) input to log/62/server.input 09:41:16.409289 Identifying ourselves as friends 09:41:16.411311 Response sent (56 bytes) and written to log/62/server.response 09:41:16.411440 special request received, no persistency 09:41:16.412865 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1043 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1043 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1043 * starts no server test 1063...[Invalid large X- range on a file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1063 ../src/curl -q --output log/13/curl1063.out --include --trace-ascii log/13/trace1063 --trace-config all --trace-time -r 4294967303- file://localhost/build/curl/src/build-curl/tests/log/13/test1063.txt > log/13/stdout1063 2> log/13/stderr1063 curl returned 1, when expecting 36 1063: exit FAILED == Contents of files in the log/13/ dir after test 1063 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1063 ../src/curl -q --output log/13/curl1063.out --include --trace-ascii log/13/trace1063 --trace-config all --trace-time -r 4294967303- file://localhost/build/curl/src/build-curl/tests/log/13/test1063.txt > log/13/stdout1063 2> log/13/stderr1063 === End of file commands.log === Start of file server.cmd Testnum 1063 === End of file server.cmd === Start of file test1063.txt 1234567890 1234567890 === End of file test1063.txt === Start of file valgrind1063 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1047 ../src/curl -q --output log/60/curl1047.out --include --trace-ascii log/60/trace1047 --trace-config all --trace-time ftp://127.0.0.1:41385/ --interface 127.0.0.1 > log/60/stdout1047 2> log/60/stderr1047 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1057 ../src/curl -q --output log/39/curl1057.out --include --trace-ascii log/39/trace1057 --trace-config all --trace-time -r -12 ftp://127.0.0.1:35393/1057 > log/39/stdout1057 2> log/39/stderr1057 ). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1063 test 1047...[FTP dir list PASV with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1047 ../src/curl -q --output log/60/curl1047.out --include --trace-ascii log/60/trace1047 --trace-config all --trace-time ftp://127.0.0.1:41385/ --interface 127.0.0.1 > log/60/stdout1047 2> log/60/stderr1047 1047: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1047 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1047 ../src/curl -q --output log/60/curl1047.out --include --trace-ascii log/60/trace1047 --trace-config all --trace-time ftp://127.0.0.1:41385/ --interface 127.0.0.1 > log/60/stdout1047 2> log/60/stderr1047 === End of file commands.log === Start of file ftp_server.log 09:41:16.383302 ====> Client connect 09:41:16.385409 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:16.386497 < "USER anonymous" 09:41:16.386974 > "331 We are happy you popped in![CR][LF]" 09:41:16.389179 < "PASS ftp@example.com" 09:41:16.390287 > "230 Welcome you silly person[CR][LF]" 09:41:16.391380 < "PWD" 09:41:16.392555 > "257 "/" is current directory[CR][LF]" 09:41:16.393726 < "EPSV" 09:41:16.394106 ====> Passive DATA channel requested by client 09:41:16.394261 DATA sockfilt for passive data channel starting... 09:41:16.417099 DATA sockfilt for passive data channel started (pid 126242) 09:41:16.418270 DATA sockfilt for passive data channel listens on port 38025 09:41:16.418719 > "229 Entering Passive Mode (|||38025|)[LF]" 09:41:16.419290 Client has been notified that DATA conn will be accepted on port 38025 09:41:16.424405 Client connects to port 38025 09:41:16.424737 ====> Client established passive DATA connection on port 38025 09:41:16.425664 < "TYPE I" 09:41:16.426177 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:16.427626 < "SIZE verifiedserver" 09:41:16.428178 > "213 17[CR][LF]" 09:41:16.431502 < "RETR verifiedserver" 09:41:16.432025 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:16.432736 =====> Closing passive DATA connection... 09:41:16.433066 Server disconnects passive DATA connection 09:41:16.434562 Server disconnected passive DATA connection 09:41:16.434906 DATA sockfilt for passive data channel quits (pid 126242) 09:41:16.437008 DATA sockfilt for passive data channel quit (pid 126242) 09:41:16.437251 =====> Closed passive DATA connection 09:41:16.437562 > "226 File transfer complete[CR][LF]" 09:41:16.474375 < "QUIT" 09:41:16.474811 > "221 bye bye baby[CR][LF]" 09:41:16.476893 MAIN sockfilt said DISC 09:41:16.477254 ====> Client disconnected 09:41:16.477857 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:16.636203 ====> Client connect 09:41:16.638174 Received DATA (on stdin) 09:41:16.638313 > 160 bytes data, server => client 09:41:16.638530 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:16.638636 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:16.638706 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:16.639551 < 16 bytes data, client => server 09:41:16.639727 'USER anonymous\r\n' 09:41:16.641008 Received DATA (on stdin) 09:41:16.641138 > 33 bytes data, server => client 09:41:16.641225 '331 We are happy you popped in!\r\n' 09:41:16.642094 < 22 bytes data, client => server 09:41:16.642231 'PASS ftp@example.com\r\n' 09:41:16.643235 Received DATA (on stdin) 09:41:16.643366 > 30 bytes data, server => client 09:41:16.643589 '230 Welcome you silly person\r\n' 09:41:16.644246 < 5 bytes data, client => server 09:41:16.644363 'PWD\r\n' 09:41:16.645431 Received DATA (on stdin) 09:41:16.645685 > 30 bytes data, server => client 09:41:16.645865 '257 "/" is current directory\r\n' 09:41:16.646593 < 6 bytes data, client => server 09:41:16.646721 'EPSV\r\n' 09:41:16.673395 Received DATA (on stdin) 09:41:16.673638 > 38 bytes data, server => client 09:41:16.673739 '229 Entering Passive Mode (|||38025|)\n' 09:41:16.678153 < 8 bytes data, client => server 09:41:16.678355 'TYPE I\r\n' 09:41:16.679909 Received DATA (on stdin) 09:41:16.680047 > 33 bytes data, server => client 09:41:16.680128 '200 I modify TYPE as you wanted\r\n' 09:41:16.680806 < 21 bytes data, client => server 09:41:16.680950 'SIZE verifiedserver\r\n' 09:41:16.681915 Received DATA (on stdin) 09:41:16.682059 > 8 bytes data, server => client 09:41:16.682144 '213 17\r\n' 09:41:16.684692 < 21 bytes data, client => server 09:41:16.684844 'RETR verifiedserver\r\n' 09:41:16.685759 Received DATA (on stdin) 09:41:16.685906 > 29 bytes data, server => client 09:41:16.685988 '150 Binary junk (17 bytes).\r\n' 09:41:16.691384 Received DATA (on stdin) 09:41:16.691663 > 28 bytes data, server => client 09:41:16.691766 '226 File transfer complete\r\n' 09:41:16.728816 < 6 bytes data, client => server 09:41:16.728954 'QUIT\r\n' 09:41:16.729056 Received DATA (on stdin) 09:41:16.729153 > 18 bytes data, server => client 09:41:16.729237 '221 bye bye baby\r\n' 09:41:16.729811 ====> Client disconnect 09:41:16.734550 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:16.665222 Running IPv4 version 09:41:16.665808 Listening on port 38025 09:41:16.666160 Wrote pid 126242 to log/60/server/ftp_sockdata.pid 09:41:16.666362 Received PING (on stdin) 09:41:16.671293 Received PORT (on stdin) 09:41:16.677781 ====> Client connect 09:41:16.687043 Received DATA (on stdin) 09:41:16.687189 > 17 bytes data, server => client 09:41:16.687277 'WE ROOLZ: 78622\r\n' 09:41:16.687678 Received DISC (on stdin) 09:41:16.687834 ====> Client forcibly disconnected 09:41:16.688887 Received QUIT (on stdin) 09:41:16.689013 quits 09:41:16.689410 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1047 === End of file server.cmd === Start of file valgrind1047 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1047 test 1057...[FTP retrieve a byte-range relative to end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1057 .CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1068 ../src/curl -q --output log/54/curl1068.out --include --trace-ascii log/54/trace1068 --trace-config all --trace-time http://127.0.0.1:44921/bzz/1068 -T - log/54/stdout1068 2> log/54/stderr1068 ./src/curl -q --output log/39/curl1057.out --include --trace-ascii log/39/trace1057 --trace-config all --trace-time -r -12 ftp://127.0.0.1:35393/1057 > log/39/stdout1057 2> log/39/stderr1057 1057: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 1057 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1057 ../src/curl -q --output log/39/curl1057.out --include --trace-ascii log/39/trace1057 --trace-config all --trace-time -r -12 ftp://127.0.0.1:35393/1057 > log/39/stdout1057 2> log/39/stderr1057 === End of file commands.log === Start of file ftp_server.log 09:41:16.523374 ====> Client connect 09:41:16.525669 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:16.527104 < "USER anonymous" 09:41:16.527511 > "331 We are happy you popped in![CR][LF]" 09:41:16.529679 < "PASS ftp@example.com" 09:41:16.530804 > "230 Welcome you silly person[CR][LF]" 09:41:16.532210 < "PWD" 09:41:16.533569 > "257 "/" is current directory[CR][LF]" 09:41:16.534897 < "EPSV" 09:41:16.535165 ====> Passive DATA channel requested by client 09:41:16.535327 DATA sockfilt for passive data channel starting... 09:41:16.553167 DATA sockfilt for passive data channel started (pid 126438) 09:41:16.554088 DATA sockfilt for passive data channel listens on port 43817 09:41:16.554859 > "229 Entering Passive Mode (|||43817|)[LF]" 09:41:16.555086 Client has been notified that DATA conn will be accepted on port 43817 09:41:16.556359 Client connects to port 43817 09:41:16.556634 ====> Client established passive DATA connection on port 43817 09:41:16.557478 < "TYPE I" 09:41:16.557956 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:16.559347 < "SIZE verifiedserver" 09:41:16.559839 > "213 17[CR][LF]" 09:41:16.561096 < "RETR verifiedserver" 09:41:16.561544 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:16.562260 =====> Closing passive DATA connection... 09:41:16.562472 Server disconnects passive DATA connection 09:41:16.563878 Server disconnected passive DATA connection 09:41:16.564137 DATA sockfilt for passive data channel quits (pid 126438) 09:41:16.565997 DATA sockfilt for passive data channel quit (pid 126438) 09:41:16.566245 =====> Closed passive DATA connection 09:41:16.566580 > "226 File transfer complete[CR][LF]" 09:41:16.605241 < "QUIT" 09:41:16.605702 > "221 bye bye baby[CR][LF]" 09:41:16.609149 MAIN sockfilt said DISC 09:41:16.610049 ====> Client disconnected 09:41:16.610582 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:16.776419 ====> Client connect 09:41:16.778343 Received DATA (on stdin) 09:41:16.778567 > 160 bytes data, server => client 09:41:16.778761 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:16.778877 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:16.778952 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:16.779660 < 16 bytes data, client => server 09:41:16.779790 'USER anonymous\r\n' 09:41:16.781562 Received DATA (on stdin) 09:41:16.781745 > 33 bytes data, server => client 09:41:16.781839 '331 We are happy you popped in!\r\n' 09:41:16.782817 < 22 bytes data, client => server 09:41:16.782968 'PASS ftp@example.com\r\n' 09:41:16.783821 Received DATA (on stdin) 09:41:16.783950 > 30 bytes data, server => client 09:41:16.784093 '230 Welcome you silly person\r\n' 09:41:16.785137 < 5 bytes data, client => server 09:41:16.785272 'PWD\r\n' 09:41:16.786284 Received DATA (on stdin) 09:41:16.786416 > 30 bytes data, server => client 09:41:16.786652 '257 "/" is current directory\r\n' 09:41:16.787823 < 6 bytes data, client => server 09:41:16.787957 'EPSV\r\n' 09:41:16.808499 Received DATA (on stdin) 09:41:16.808673 > 38 bytes data, server => client 09:41:16.808772 '229 Entering Passive Mode (|||43817|)\n' 09:41:16.810083 < 8 bytes data, client => server 09:41:16.810217 'TYPE I\r\n' 09:41:16.811637 Received DATA (on stdin) 09:41:16.811815 > 33 bytes data, server => client 09:41:16.811897 '200 I modify TYPE as you wanted\r\n' 09:41:16.812602 < 21 bytes data, client => server 09:41:16.812745 'SIZE verifiedserver\r\n' 09:41:16.813532 Received DATA (on stdin) 09:41:16.813670 > 8 bytes data, server => client 09:41:16.813744 '213 17\r\n' 09:41:16.814281 < 21 bytes data, client => server 09:41:16.814414 'RETR verifiedserver\r\n' 09:41:16.815236 Received DATA (on stdin) 09:41:16.815373 > 29 bytes data, server => client 09:41:16.815512 '150 Binary junk (17 bytes).\r\n' 09:41:16.820295 Received DATA (on stdin) 09:41:16.820441 > 28 bytes data, server => client 09:41:16.820617 '226 File transfer complete\r\n' 09:41:16.858327 < 6 bytes data, client => server 09:41:16.858563 'QUIT\r\n' 09:41:16.859406 Received DATA (on stdin) 09:41:16.859620 > 18 bytes data, server => client 09:41:16.859709 '221 bye bye baby\r\n' 09:41:16.862568 ====> Client disconnect 09:41:16.863211 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:16.805266 Running IPv4 version 09:41:16.805924 Listening on port 43817 09:41:16.806271 Wrote pid 126438 to log/39/server/ftp_sockdata.pid 09:41:16.806432 Received PING (on stdin) 09:41:16.807247 Received PORT (on stdin) 09:41:16.809804 ====> Client connect 09:41:16.816416 Received DATA (on stdin) 09:41:16.816620 > 17 bytes data, server => client 09:41:16.816704 'WE ROOLZ: 77518\r\n' 09:41:16.817052 Received DISC (on stdin) 09:41:16.817200 ====> Client forcibly disconnected 09:41:16.818160 Received QUIT (on stdin) 09:41:16.818280 quits 09:41:16.818718 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1057 === End of file server.cmd === Start of file valgrind1057 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1057 test 1068...[HTTP PUT from stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1068 ../src/curl -q --output log/54/curl1068.out --include --trace-ascii log/54/trace1068 --trace-config all --trace-time http://127.0.0.1:44921/bzz/1068 -T - log/54/stdout1068 2> log/54/stderr1068 1068: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir afterCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1052 ../src/curl -q --output log/5/curl1052.out --include --trace-ascii log/5/trace1052 --trace-config all --trace-time http://127.0.0.1:33413/want/1052 -0 -L -T log/5/test1052.txt > log/5/stdout1052 2> log/5/stderr1052 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1051 ../src/curl -q --output log/18/curl1051.out --include --trace-ascii log/18/trace1051 --trace-config all --trace-time http://127.0.0.1:41285/want/1051 -L -T log/18/test1051.txt > log/18/stdout1051 2> log/18/stderr1051 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1044 ../src/curl -q --include --trace-ascii log/64/trace1044 --trace-config all --trace-time ftp://127.0.0.1:37199/blalbla/1044 -I > log/64/stdout1044 2> log/64/stderr1044 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1053 ../src/curl -q --output log/53/curl1053.out --include --trace-ascii log/53/trace1053 --trace-config all --trace-time http://127.0.0.1:34639/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/53/test1053.txt > log/53/stdout1053 2> log/53/stderr1053 test 1068 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1068 ../src/curl -q --output log/54/curl1068.out --include --trace-ascii log/54/trace1068 --trace-config all --trace-time http://127.0.0.1:44921/bzz/1068 -T - log/54/stdout1068 2> log/54/stderr1068 === End of file commands.log === Start of file http_server.log 09:41:16.839238 ====> Client connect 09:41:16.839849 accept_connection 3 returned 4 09:41:16.840098 accept_connection 3 returned 0 09:41:16.840297 Read 93 bytes 09:41:16.840399 Process 93 bytes request 09:41:16.840569 Got request: GET /verifiedserver HTTP/1.1 09:41:16.840677 Are-we-friendly question received 09:41:16.840917 Wrote request (93 bytes) input to log/54/server.input 09:41:16.841108 Identifying ourselves as friends 09:41:16.845972 Response sent (56 bytes) and written to log/54/server.response 09:41:16.846098 special request received, no persistency 09:41:16.846167 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 1068 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file stdin-for-1068 more than one byte === End of file stdin-for-1068 === Start of file valgrind1068 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1068 test 1052...[HTTP 1.0 PUT with Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1052 ../src/curl -q --output log/5/curl1052.out --include --trace-ascii log/5/trace1052 --trace-config all --trace-time http://127.0.0.1:33413/want/1052 -0 -L -T log/5/test1052.txt > log/5/stdout1052 2> log/5/stderr1052 1052: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1052 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1052 ../src/curl -q --output log/5/curl1052.out --include --trace-ascii log/5/trace1052 --trace-config all --trace-time http://127.0.0.1:33413/want/1052 -0 -L -T log/5/test1052.txt > log/5/stdout1052 2> log/5/stderr1052 === End of file commands.log === Start of file http_server.log 09:41:16.711836 ====> Client connect 09:41:16.712141 accept_connection 3 returned 4 09:41:16.712298 accept_connection 3 returned 0 09:41:16.712428 Read 93 bytes 09:41:16.712661 Process 93 bytes request 09:41:16.712742 Got request: GET /verifiedserver HTTP/1.1 09:41:16.712806 Are-we-friendly question received 09:41:16.713007 Wrote request (93 bytes) input to log/5/server.input 09:41:16.713184 Identifying ourselves as friends 09:41:16.713892 Response sent (56 bytes) and written to log/5/server.response 09:41:16.713998 special request received, no persistency 09:41:16.714064 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1052 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file test1052.txt Weird file to upload for testing the PUT feature === End of file test1052.txt === Start of file valgrind1052 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1052 test 1051...[HTTP PUT with Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1051 ../src/curl -q --output log/18/curl1051.out --include --trace-ascii log/18/trace1051 --trace-config all --trace-time http://127.0.0.1:41285/want/1051 -L -T log/18/test1051.txt > log/18/stdout1051 2> log/18/stderr1051 1051: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 1051 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1051 ../src/curl -q --output log/18/curl1051.out --include --trace-ascii log/18/trace1051 --trace-config all --trace-time http://127.0.0.1:41285/want/1051 -L -T log/18/test1051.txt > log/18/stdout1051 2> log/18/stderr1051 === End of file commands.log === Start of file http_server.log 09:41:16.699924 ====> Client connect 09:41:16.700196 accept_connection 3 returned 4 09:41:16.700350 accept_connection 3 returned 0 09:41:16.700609 Read 93 bytes 09:41:16.700728 Process 93 bytes request 09:41:16.700810 Got request: GET /verifiedserver HTTP/1.1 09:41:16.700884 Are-we-friendly question received 09:41:16.701175 Wrote request (93 bytes) input to log/18/server.input 09:41:16.701395 Identifying ourselves as friends 09:41:16.702144 Response sent (56 bytes) and written to log/18/server.response 09:41:16.702248 special request received, no persistency 09:41:16.702309 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 1051 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file test1051.txt Weird file to upload for testing the PUT feature === End of file test1051.txt === Start of file valgrind1051 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1051 test 1053...[HTTP RFC1867-type formposting from file with Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1053 ../src/curl -q --output log/53/curl1053.out --include --trace-ascii log/53/trace1053 --trace-config all --trace-time http://127.0.0.1:34639/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/53/test1053.txt > log/53/stdout1053 2> log/53/stderr1053 1053: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 1053 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1053 ../src/curl -q --output log/53/curl1053.out --include --trace-ascii log/53/trace1053 --trace-config all --trace-time http://127.0.0.1:34639/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/53/test1053.txt > log/53/stdout1053 2> log/53/stderr1053 === End of file commands.log === Start of file http_server.log 09:41:16.746258 ====> Client connect 09:41:16.746676 accept_connection 3 returned 4 09:41:16.746858 accept_connection 3 returned 0 09:41:16.746987 Read 93 bytes 09:41:16.747083 Process 93 bytes request 09:41:16.747162 Got request: GET /verifiedserver HTTP/1.1 09:41:16.747233 Are-we-friendly question received 09:41:16.747436 Wrote request (93 bytes) input to log/53/server.input 09:41:16.747768 Identifying ourselves as friends 09:41:16.748535 Response sent (56 bytes) and written to log/53/server.response 09:41:16.748663 special request received, no persistency 09:41:16.748732 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 1053 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file test1053.txt foo- This is a moo- bar === End of file test1053.txt === Start of file valgrind1053 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1053 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1058 ../src/curl -q --output log/36/curl1058.out --include --trace-ascii log/36/trace1058 --trace-config all --trace-time http://127.0.0.1:44255/want/1058 -r -101 > log/36/stdout1058 2> log/36/stderr1058 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1064 ../src/curl -q --include --trace-ascii log/57/trace1064 --trace-config all --trace-time -H "Expect:" -T log/57/1064 http://127.0.0.1:35945/1064.upload1 -T log/57/1064 http://127.0.0.1:35945/10640002.upload2 > log/57/stdout1064 2> log/57/stderr1064 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1069 ../src/curl -q --output log/17/curl1069.out --include --trace-ascii log/17/trace1069 --trace-config all --trace-time http://127.0.0.1:44383/bzz/1069 -T - -0 log/17/stdout1069 2> log/17/stderr1069 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1067 ../src/curl -q --output log/58/curl1067.out --include --trace-ascii log/58/trace1067 --trace-config all --trace-time http://127.0.0.1:46727/want/1067 --silent --location --referer "firstone.html;auto" --write-out "%{stderr}|%{referer}|" > log/58/stdout1067 2> log/58/stderr1067 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1059 ../src/curl -q --output log/31/curl1059.out --include --trace-ascii log/31/trace1059 --trace-config all --trace-time ftp://test-number:1059/wanted/page -p -x 127.0.0.1:45557 > log/31/stdout1059 2> log/31/stderr1059 test 1044...[FTP download large file info with -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1044 ../src/curl -q --include --trace-ascii log/64/trace1044 --trace-config all --trace-time ftp://127.0.0.1:37199/blalbla/1044 -I > log/64/stdout1044 2> log/64/stderr1044 1044: stdout FAILED: --- log/64/check-expected 2025-07-18 09:41:17.749423032 +0000 +++ log/64/check-generated 2025-07-18 09:41:17.748589432 +0000 @@ -1,3 +0,0 @@ -Last-Modified: Sat, 26 Jul 2008 10:26:59 GMT[CR][LF] -Content-Length: 9999999999[CR][LF] -Accept-ranges: bytes[CR][LF] == Contents of files in the log/64/ dir after test 1044 === Start of file check-expected Last-Modified: Sat, 26 Jul 2008 10:26:59 GMT[CR][LF] Content-Length: 9999999999[CR][LF] Accept-ranges: bytes[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1044 ../src/curl -q --include --trace-ascii log/64/trace1044 --trace-config all --trace-time ftp://127.0.0.1:37199/blalbla/1044 -I > log/64/stdout1044 2> log/64/stderr1044 === End of file commands.log === Start of file ftp_server.log 09:41:16.396938 ====> Client connect 09:41:16.403029 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:16.407908 < "USER anonymous" 09:41:16.408398 > "331 We are happy you popped in![CR][LF]" 09:41:16.415877 < "PASS ftp@example.com" 09:41:16.416339 > "230 Welcome you silly person[CR][LF]" 09:41:16.425362 < "PWD" 09:41:16.425934 > "257 "/" is current directory[CR][LF]" 09:41:16.427484 < "EPSV" 09:41:16.427877 ====> Passive DATA channel requested by client 09:41:16.428147 DATA sockfilt for passive data channel starting... 09:41:16.447933 DATA sockfilt for passive data channel started (pid 126305) 09:41:16.449560 DATA sockfilt for passive data channel listens on port 41157 09:41:16.450124 > "229 Entering Passive Mode (|||41157|)[LF]" 09:41:16.450422 Client has been notified that DATA conn will be accepted on port 41157 09:41:16.452543 Client connects to port 41157 09:41:16.453051 ====> Client established passive DATA connection on port 41157 09:41:16.456070 < "TYPE I" 09:41:16.456554 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:16.458683 < "SIZE verifiedserver" 09:41:16.460937 > "213 17[CR][LF]" 09:41:16.464627 < "RETR verifiedserver" 09:41:16.465255 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:16.468334 =====> Closing passive DATA connection... 09:41:16.468605 Server disconnects passive DATA connection 09:41:16.469413 Server disconnected passive DATA connection 09:41:16.469686 DATA sockfilt for passive data channel quits (pid 126305) 09:41:16.472259 DATA sockfilt for passive data channel quit (pid 126305) 09:41:16.472488 =====> Closed passive DATA connection 09:41:16.472826 > "226 File transfer complete[CR][LF]" 09:41:16.509013 < "QUIT" 09:41:16.510933 > "221 bye bye baby[CR][LF]" 09:41:16.515173 MAIN sockfilt said DISC 09:41:16.516143 ====> Client disconnected 09:41:16.516855 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:16.647766 ====> Client connect 09:41:16.652257 Received DATA (on stdin) 09:41:16.652444 > 160 bytes data, server => client 09:41:16.657160 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:16.657322 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:16.657414 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:16.658366 < 16 bytes data, client => server 09:41:16.658629 'USER anonymous\r\n' 09:41:16.663602 Received DATA (on stdin) 09:41:16.663769 > 33 bytes data, server => client 09:41:16.663871 '331 We are happy you popped in!\r\n' 09:41:16.666341 < 22 bytes data, client => server 09:41:16.666581 'PASS ftp@example.com\r\n' 09:41:16.673686 Received DATA (on stdin) 09:41:16.673864 > 30 bytes data, server => client 09:41:16.673965 '230 Welcome you silly person\r\n' 09:41:16.677747 < 5 bytes data, client => server 09:41:16.677902 'PWD\r\n' 09:41:16.679713 Received DATA (on stdin) 09:41:16.679849 > 30 bytes data, server => client 09:41:16.679925 '257 "/" is current directory\r\n' 09:41:16.680674 < 6 bytes data, client => server 09:41:16.680817 'EPSV\r\n' 09:41:16.703838 Received DATA (on stdin) 09:41:16.704001 > 38 bytes data, server => client 09:41:16.704090 '229 Entering Passive Mode (|||41157|)\n' 09:41:16.705377 < 8 bytes data, client => server 09:41:16.705644 'TYPE I\r\n' 09:41:16.710684 Received DATA (on stdin) 09:41:16.710887 > 33 bytes data, server => client 09:41:16.711008 '200 I modify TYPE as you wanted\r\n' 09:41:16.711846 < 21 bytes data, client => server 09:41:16.712010 'SIZE verifiedserver\r\n' 09:41:16.715105 Received DATA (on stdin) 09:41:16.715278 > 8 bytes data, server => client 09:41:16.715386 '213 17\r\n' 09:41:16.716249 < 21 bytes data, client => server 09:41:16.716430 'RETR verifiedserver\r\n' 09:41:16.718971 Received DATA (on stdin) 09:41:16.719154 > 29 bytes data, server => client 09:41:16.719261 '150 Binary junk (17 bytes).\r\n' 09:41:16.726862 Received DATA (on stdin) 09:41:16.727005 > 28 bytes data, server => client 09:41:16.727088 '226 File transfer complete\r\n' 09:41:16.761686 < 6 bytes data, client => server 09:41:16.761880 'QUIT\r\n' 09:41:16.763156 Received DATA (on stdin) 09:41:16.763319 > 18 bytes data, server => client 09:41:16.765015 '221 bye bye baby\r\n' 09:41:16.768591 ====> Client disconnect 09:41:16.769241 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:16.699392 Running IPv4 version 09:41:16.700018 Listening on port 41157 09:41:16.700390 Wrote pid 126305 to log/64/server/ftp_sockdata.pid 09:41:16.700649 Received PING (on stdin) 09:41:16.702592 Received PORT (on stdin) 09:41:16.705901 ====> Client connect 09:41:16.721727 Received DATA (on stdin) 09:41:16.721896 > 17 bytes data, server => client 09:41:16.721976 'WE ROOLZ: 78009\r\n' 09:41:16.722877 Received DISC (on stdin) 09:41:16.723938 ====> Client forcibly disconnected 09:41:16.724308 Received QUIT (on stdin) 09:41:16.724430 quits 09:41:16.724909 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1044 === End of file server.cmd === Start of file valgrind1044 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1044 test 1069...[HTTP 1.0 PUT from stdin with no content length] ../libtool --mode=execute /usr/bin/valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1062 ../src/curl -q --output log/14/curl1062.out --include --trace-ascii log/14/trace1062 --trace-config all --trace-time ftp://127.0.0.1:36271/path/1062 > log/14/stdout1062 2> log/14/stderr1062 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1045 ../src/curl -q --output log/49/curl1045.out --include --trace-ascii log/49/trace1045 --trace-config all --trace-time http://127.0.0.1:42667/1045 --interface 127.0.0.1 > log/49/stdout1045 2> log/49/stderr1045 rind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1069 ../src/curl -q --output log/17/curl1069.out --include --trace-ascii log/17/trace1069 --trace-config all --trace-time http://127.0.0.1:44383/bzz/1069 -T - -0 log/17/stdout1069 2> log/17/stderr1069 curl returned 1, when expecting 25 1069: exit FAILED == Contents of files in the log/17/ dir after test 1069 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1069 ../src/curl -q --output log/17/curl1069.out --include --trace-ascii log/17/trace1069 --trace-config all --trace-time http://127.0.0.1:44383/bzz/1069 -T - -0 log/17/stdout1069 2> log/17/stderr1069 === End of file commands.log === Start of file http_server.log 09:41:16.902974 ====> Client connect 09:41:16.903289 accept_connection 3 returned 4 09:41:16.903614 accept_connection 3 returned 0 09:41:16.903783 Read 93 bytes 09:41:16.903875 Process 93 bytes request 09:41:16.903966 Got request: GET /verifiedserver HTTP/1.1 09:41:16.904050 Are-we-friendly question received 09:41:16.904286 Wrote request (93 bytes) input to log/17/server.input 09:41:16.904545 Identifying ourselves as friends 09:41:16.905304 Response sent (56 bytes) and written to log/17/server.response 09:41:16.905410 special request received, no persistency 09:41:16.908628 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 1069 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file stdin-for-1069 this data can't be sent === End of file stdin-for-1069 === Start of file valgrind1069 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1069 test 1058...[HTTP range relative to end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1058 ../src/curl -q --output log/36/curl1058.out --include --trace-ascii log/36/trace1058 --trace-config all --trace-time http://127.0.0.1:44255/want/1058 -r -101 > log/36/stdout1058 2> log/36/stderr1058 1058: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1058 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1058 ../src/curl -q --output log/36/curl1058.out --include --trace-ascii log/36/trace1058 --trace-config all --trace-time http://127.0.0.1:44255/want/1058 -r -101 > log/36/stdout1058 2> log/36/stderr1058 === End of file commands.log === Start of file http_server.log 09:41:16.776413 ====> Client connect 09:41:16.776875 accept_connection 3 returned 4 09:41:16.777040 accept_connection 3 returned 0 09:41:16.777672 Read 93 bytes 09:41:16.777827 Process 93 bytes request 09:41:16.777915 Got request: GET /verifiedserver HTTP/1.1 09:41:16.778008 Are-we-friendly question received 09:41:16.778272 Wrote request (93 bytes) input to log/36/server.input 09:41:16.778541 Identifying ourselves as friends 09:41:16.779093 Response sent (56 bytes) and written to log/36/server.response 09:41:16.779206 special request received, no persistency 09:41:16.779329 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 1058 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind1058 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1058 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1066 ../src/curl -q --include --trace-ascii log/2/trace1066 --trace-config all --trace-time http://127.0.0.1:39659/want/1066 http://127.0.0.1:39659/want/10660001 --dump-header - > log/2/stdout1066 2> log/2/stderr1066 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1054 ../src/curl -q --output log/52/curl1054.out --include --trace-ascii log/52/trace1054 --trace-config all --trace-time http://127.0.0.1:40089/blah/1054 -L -d @log/52/test1054.txt --post301 > log/52/stdout1054 2> log/52/stderr1054 test 1064...[HTTP PUT twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1064 ../src/curl -q --include --trace-ascii log/57/trace1064 --trace-config all --trace-time -H "Expect:" -T log/57/1064 http://127.0.0.1:35945/1064.upload1 -T log/57/1064 http://127.0.0.1:35945/10640002.upload2 > log/57/stdout1064 2> log/57/stderr1064 1064: stdout FAILED: --- log/57/check-expected 2025-07-18 09:41:17.867602052 +0000 +++ log/57/check-generated 2025-07-18 09:41:17.866589372 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 3[CR][LF] -[CR][LF] -ok[LF] -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 9[CR][LF] -[CR][LF] -still ok[LF] == Contents of files in the log/57/ dir after test 1064 === Start of file 1064 test === End of file 1064 === Start of file check-expected HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 3[CR][LF] [CR][LF] ok[LF] HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 9[CR][LF] [CR][LF] still ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1064 ../src/curl -q --include --trace-ascii log/57/trace1064 --trace-config all --trace-time -H "Expect:" -T log/57/1064 http://127.0.0.1:35945/1064.upload1 -T log/57/1064 http://127.0.0.1:35945/10640002.upload2 > log/57/stdout1064 2> log/57/stderr1064 === End of file commands.log === Start of file http_server.log 09:41:16.875908 ====> Client connect 09:41:16.876220 accept_connection 3 returned 4 09:41:16.876399 accept_connection 3 returned 0 09:41:16.880124 Read 93 bytes 09:41:16.880558 Process 93 bytes request 09:41:16.880677 Got request: GET /verifiedserver HTTP/1.1 09:41:16.880771 Are-we-friendly question received 09:41:16.881031 Wrote request (93 bytes) input to log/57/server.input 09:41:16.881231 Identifying ourselves as friends 09:41:16.881881 Response sent (56 bytes) and written to log/57/server.response 09:41:16.881992 special request received, no persistency 09:41:16.882066 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 1064 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind1064 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1064 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1065 ../src/curl -q --include --trace-ascii log/12/trace1065 --trace-config all --trace-time -H "Expect:" -T log/12/1065 http://127.0.0.1:45579/1065.upload1 http://127.0.0.1:45579/10650002.url2 > log/12/stdout1065 2> log/12/stderr1065 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1085 ../src/curl -q --output log/8/curl1085.out --include --trace-ascii log/8/trace1085 --trace-config all --trace-time -g "http://[::1]:47/1085" --interface non-existing-host.haxx.se. > log/8/stdout1085 2> log/8/stderr1085 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1055 ../src/curl -q --output log/51/curl1055.out --include --trace-ascii log/51/trace1055 --trace-config all --trace-time http://127.0.0.1:34903/1055 -L -T log/51/test1055.txt > log/51/stdout1055 2> log/51/stderr1055 test 1067...[HTTP Location: following with auto-referer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1067 ../src/curl -q --output log/58/curl1067.out --include --trace-ascii log/58/trace1067 --trace-config all --trace-time http://127.0.0.1:46727/want/1067 --silent --location --referer "firstone.html;auto" --write-out "%{stderr}|%{referer}|" > log/58/stdout1067 2> log/58/stderr1067 1067: stderr FAILED: --- log/58/check-expected 2025-07-18 09:41:17.962589324 +0000 +++ log/58/check-generated 2025-07-18 09:41:17.961589324 +0000 @@ -1 +0,0 @@ -|http://127.0.0.1:46727/want/1067| == Contents of files in the log/58/ dir after test 1067 === Start of file check-expected |http://127.0.0.1:46727/want/1067| === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1067 ../src/curl -q --output log/58/curl1067.out --include --trace-ascii log/58/trace1067 --trace-config all --trace-time http://127.0.0.1:46727/want/1067 --silent --location --referer "firstone.html;auto" --write-out "%{stderr}|%{referer}|" > log/58/stdout1067 2> log/58/stderr1067 === End of file commands.log === Start of file http_server.log 09:41:16.892670 ====> Client connect 09:41:16.893010 accept_connection 3 returned 4 09:41:16.893169 accept_connection 3 returned 0 09:41:16.894100 Read 93 bytes 09:41:16.894241 Process 93 bytes request 09:41:16.894318 Got request: GET /verifiedserver HTTP/1.1 09:41:16.894386 Are-we-friendly question received 09:41:16.894706 Wrote request (93 bytes) input to log/58/server.input 09:41:16.894895 Identifying ourselves as friends 09:41:16.895687 Response sent (56 bytes) and written to log/58/server.response 09:41:16.895803 special request received, no persistency 09:41:16.895866 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd Testnum 1067 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind1067 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1067 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1071 ../src/curl -q --output log/4/curl1071.out --include --trace-ascii log/4/trace1071 --trace-config all --trace-time http://127.0.0.1:43013/1071 -T log/4/put1071 -u testuser:testpass --anyauth > log/4/stdout1071 2> log/4/stderr1071 test 1066...[HTTP --dump-header - with two URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1066 ../src/curl -q --include --trace-ascii log/2/trace1066 --trace-config all --trace-time http://127.0.0.1:39659/want/1066 http://127.0.0.1:39659/want/10660001 --dump-header - > log/2/stdout1066 2> log/2/stderr1066 1066: stdout FAILED: --- log/2/check-expected 2025-07-18 09:41:18.052329318 +0000 +++ log/2/check-generated 2025-07-18 09:41:18.050589279 +0000 @@ -1,22 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: thebest/1.0[CR][LF] -Server: thebest/1.0[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Length: 6[CR][LF] -Content-Length: 6[CR][LF] -[CR][LF] -[CR][LF] -first[LF] -HTTP/1.1 200 OK[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: thebest/1.0[CR][LF] -Server: thebest/1.0[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Length: 7[CR][LF] -Content-Length: 7[CR][LF] -[CR][LF] -[CR][LF] -second[LF] == Contents of files in the log/2/ dir after test 1066 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] HTTP/1.1 200 OK[CR][LF] Server: thebest/1.0[CR][LF] Server: thebest/1.0[CR][LF] Content-Type: text/plain[CR][LF] Content-Type: text/plain[CR][LF] Content-Length: 6[CR][LF] Content-Length: 6[CR][LF] [CR][LF] [CR][LF] first[LF] HTTP/1.1 200 OK[CR][LF] HTTP/1.1 200 OK[CR][LF] Server: thebest/1.0[CR][LF] Server: thebest/1.0[CR][LF] Content-Type: text/plain[CR][LF] Content-Type: text/plain[CR][LF] Content-Length: 7[CR][LF] Content-Length: 7[CR][LF] [CR][LF] [CR][LF] second[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1066 ../src/curl -q --include --trace-ascii log/2/trace1066 --trace-config all --trace-time http://127.0.0.1:39659/want/1066 http://127.0.0.1:39659/want/10660001 --dump-header - > log/2/stdout1066 2> log/2/stderr1066 === End of file commands.log === Start of file http_server.log 09:41:16.908928 ====> Client connect 09:41:16.909238 accept_connection 3 returned 4 09:41:16.909406 accept_connection 3 returned 0 09:41:16.910137 Read 93 bytes 09:41:16.910285 Process 93 bytes request 09:41:16.910373 Got request: GET /verifiedserver HTTP/1.1 09:41:16.910561 Are-we-friendly question received 09:41:16.910848 Wrote request (93 bytes) input to log/2/server.input 09:41:16.911038 Identifying ourselves as friends 09:41:16.911738 Response sent (56 bytes) and written to log/2/server.response 09:41:16.911856 special request received, no persistency 09:41:16.911928 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 1066 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind1066 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1066 * starts no server prechecked ./server/servers resolve --ipv6 ::1 test 1085...[HTTP-IPv6 GET with invalid --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1085 ../src/curl -q --output log/8/curl1085.out --include --trace-ascii log/8/trace1085 --trace-config all --trace-time -g "http://[::1]:47/1085" --interface non-existing-host.haxx.se. > log/8/stdout1085 2> log/8/stderr1085 curl returned 1, when expecting 45 1085: exit FAILED == Contents of files in the log/8/ dir after test 1085 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1085 ../src/curl -q --output log/8/curl1085.out --include --trace-ascii log/8/trace1085 --trace-config all --trace-time -g "http://[::1]:47/1085" --interface non-existing-host.haxx.se. > log/8/stdout1085 2> log/8/stderr1085 === End of file commands.log === Start of file server.cmd Testnum 1085 === End of file server.cmd === Start of file valgrind1085 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1085 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1084 ../src/curl -q --output log/9/curl1084.out --include --trace-ascii log/9/trace1084 --trace-config all --trace-time http://127.0.0.1:47/1084 --interface non-existing-host.haxx.se. > log/9/stdout1084 2> log/9/stderr1084 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1072 ../src/curl -q --output log/15/curl1072.out --include --trace-ascii log/15/trace1072 --trace-config all --trace-time http://127.0.0.1:35435/1072 -T - -u testuser:testpass --anyauth log/15/stdout1072 2> log/15/stderr1072 test 1065...[HTTP PUT with one file but two URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1065 ../src/curl -q --include --trace-ascii log/12/trace1065 --trace-config all --trace-time -H "Expect:" -T log/12/1065 http://127.0.0.1:45579/1065.upload1 http://127.0.0.1:45579/10650002.url2 > log/12/stdout1065 2> log/12/stderr1065 1065: stdout FAILED: --- log/12/check-expected 2025-07-18 09:41:18.130090079 +0000 +++ log/12/check-generated 2025-07-18 09:41:18.128589240 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 3[CR][LF] -[CR][LF] -ok[LF] -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 9[CR][LF] -[CR][LF] -still ok[LF] == Contents of files in the log/12/ dir after test 1065 === Start of file 1065 test === End of file 1065 === Start of file check-expected HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 3[CR][LF] [CR][LF] ok[LF] HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 9[CR][LF] [CR][LF] still ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1065 ../src/curl -q --include --trace-ascii log/12/trace1065 --trace-config all --trace-time -H "Expect:" -T log/12/1065 http://127.0.0.1:45579/1065.upload1 http://127.0.0.1:45579/10650002.url2 > log/12/stdout1065 2> log/12/stderr1065 === End of file commands.log === Start of file http_server.log 09:41:16.827843 ====> Client connect 09:41:16.828123 accept_connection 3 returned 4 09:41:16.828281 accept_connection 3 returned 0 09:41:16.828407 Read 93 bytes 09:41:16.828847 Process 93 bytes request 09:41:16.828946 Got request: GET /verifiedserver HTTP/1.1 09:41:16.829010 Are-we-friendly question received 09:41:16.829215 Wrote request (93 bytes) input to log/12/server.input 09:41:16.829396 Identifying ourselves as friends 09:41:16.832737 Response sent (56 bytes) and written to log/12/server.response 09:41:16.832865 special request received, no persistency 09:41:16.832943 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 1065 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind1065 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1065 test 1062...[FTP with excessively long server command response lines, boundary condition] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1062 ../src/curl -q --output log/14/curl1062.out --include --trace-ascii log/14/trace1062 --trace-config all --trace-time ftp://127.0.0.1:36271/path/1062 > log/14/stdout1062 2> log/14/stderr1062 1062: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 1062 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1062 ../src/curl -q --output log/14/curl1062.out --include --trace-ascii log/14/trace1062 --trace-config all --trace-time ftp://127.0.0.1:36271/path/1062 > log/14/stdout1062 2> log/14/stderr1062 === End of file commands.log === Start of file ftp_server.log 09:41:16.547573 ====> Client connect 09:41:16.548856 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:16.551476 < "USER anonymous" 09:41:16.552238 > "331 We are happy you popped in![CR][LF]" 09:41:16.554042 < "PASS ftp@example.com" 09:41:16.554448 > "230 Welcome you silly person[CR][LF]" 09:41:16.556653 < "PWD" 09:41:16.557082 > "257 "/" is current directory[CR][LF]" 09:41:16.559041 < "EPSV" 09:41:16.559275 ====> Passive DATA channel requested by client 09:41:16.559415 DATA sockfilt for passive data channel starting... 09:41:16.571945 DATA sockfilt for passive data channel started (pid 126450) 09:41:16.573097 DATA sockfilt for passive data channel listens on port 37081 09:41:16.573491 > "229 Entering Passive Mode (|||37081|)[LF]" 09:41:16.573698 Client has been notified that DATA conn will be accepted on port 37081 09:41:16.575860 Client connects to port 37081 09:41:16.576154 ====> Client established passive DATA connection on port 37081 09:41:16.576916 < "TYPE I" 09:41:16.577299 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:16.579164 < "SIZE verifiedserver" 09:41:16.580184 > "213 17[CR][LF]" 09:41:16.581943 < "RETR verifiedserver" 09:41:16.583047 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:16.585980 =====> Closing passive DATA connection... 09:41:16.586206 Server disconnects passive DATA connection 09:41:16.587421 Server disconnected passive DATA connection 09:41:16.587681 DATA sockfilt for passive data channel quits (pid 126450) 09:41:16.589534 DATA sockfilt for passive data channel quit (pid 126450) 09:41:16.589844 =====> Closed passive DATA connection 09:41:16.590160 > "226 File transfer complete[CR][LF]" 09:41:16.625706 < "QUIT" 09:41:16.627070 > "221 bye bye baby[CR][LF]" 09:41:16.628110 MAIN sockfilt said DISC 09:41:16.628376 ====> Client disconnected 09:41:16.628961 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:16.800691 ====> Client connect 09:41:16.802957 Received DATA (on stdin) 09:41:16.803087 > 160 bytes data, server => client 09:41:16.803172 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:16.803242 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:16.803301 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:16.804030 < 16 bytes data, client => server 09:41:16.804173 'USER anonymous\r\n' 09:41:16.805623 Received DATA (on stdin) 09:41:16.805762 > 33 bytes data, server => client 09:41:16.806257 '331 We are happy you popped in!\r\n' 09:41:16.806934 < 22 bytes data, client => server 09:41:16.807076 'PASS ftp@example.com\r\n' 09:41:16.808641 Received DATA (on stdin) 09:41:16.808793 > 30 bytes data, server => client 09:41:16.808873 '230 Welcome you silly person\r\n' 09:41:16.809539 < 5 bytes data, client => server 09:41:16.809726 'PWD\r\n' 09:41:16.811183 Received DATA (on stdin) 09:41:16.811315 > 30 bytes data, server => client 09:41:16.811389 '257 "/" is current directory\r\n' 09:41:16.811979 < 6 bytes data, client => server 09:41:16.812127 'EPSV\r\n' 09:41:16.827781 Received DATA (on stdin) 09:41:16.827912 > 38 bytes data, server => client 09:41:16.827994 '229 Entering Passive Mode (|||37081|)\n' 09:41:16.829188 < 8 bytes data, client => server 09:41:16.829332 'TYPE I\r\n' 09:41:16.831260 Received DATA (on stdin) 09:41:16.831369 > 33 bytes data, server => client 09:41:16.831445 '200 I modify TYPE as you wanted\r\n' 09:41:16.832086 < 21 bytes data, client => server 09:41:16.832225 'SIZE verifiedserver\r\n' 09:41:16.833218 Received DATA (on stdin) 09:41:16.833350 > 8 bytes data, server => client 09:41:16.833570 '213 17\r\n' 09:41:16.834904 < 21 bytes data, client => server 09:41:16.835050 'RETR verifiedserver\r\n' 09:41:16.836031 Received DATA (on stdin) 09:41:16.836165 > 29 bytes data, server => client 09:41:16.836330 '150 Binary junk (17 bytes).\r\n' 09:41:16.844169 Received DATA (on stdin) 09:41:16.844299 > 28 bytes data, server => client 09:41:16.844375 '226 File transfer complete\r\n' 09:41:16.878402 < 6 bytes data, client => server 09:41:16.878650 'QUIT\r\n' 09:41:16.879876 Received DATA (on stdin) 09:41:16.880053 > 18 bytes data, server => client 09:41:16.880285 '221 bye bye baby\r\n' 09:41:16.881580 ====> Client disconnect 09:41:16.883235 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:16.823738 Running IPv4 version 09:41:16.824582 Listening on port 37081 09:41:16.825109 Wrote pid 126450 to log/14/server/ftp_sockdata.pid 09:41:16.825311 Received PING (on stdin) 09:41:16.826191 Received PORT (on stdin) 09:41:16.828993 ====> Client connect 09:41:16.837873 Received DATA (on stdin) 09:41:16.838143 > 17 bytes data, server => client 09:41:16.838547 'WE ROOLZ: 79507\r\n' 09:41:16.840117 Received DISC (on stdin) 09:41:16.840233 ====> Client forcibly disconnected 09:41:16.841731 Received QUIT (on stdin) 09:41:16.841864 quits 09:41:16.842233 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAACMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1074 ../src/curl -q --include --trace-ascii log/7/trace1074 --trace-config all --trace-time http://127.0.0.1:44647/want/1074 http://127.0.0.1:44647/wantmore/10740001 > log/7/stdout1074 2> log/7/stderr1074 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1076 ../src/curl -q --output log/47/curl1076.out --include --trace-ascii log/47/trace1076 --trace-config all --trace-time http://127.0.0.1:41103/blah/1076 -L -d "moo" --post302 > log/47/stdout1076 2> log/47/stderr1076 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1073 ../src/curl -q --output log/10/curl1073.out --include --trace-ascii log/10/trace1073 --trace-config all --trace-time http://127.0.0.1:36913/1073 -T - -L log/10/stdout1073 2> log/10/stderr1073 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-A Exactly fill curl's buffer\r\n250 Finally, here is the response, boundary condition Testnum 1062 === End of file server.cmd === Start of file valgrind1062 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1062 test 1059...[HTTP CONNECT with proxytunnel to unsupported FTP URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1059 ../src/curl -q --output log/31/curl1059.out --include --trace-ascii log/31/trace1059 --trace-config all --trace-time ftp://test-number:1059/wanted/page -p -x 127.0.0.1:45557 > log/31/stdout1059 2> log/31/stderr1059 1059: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1059 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1059 ../src/curl -q --output log/31/curl1059.out --include --trace-ascii log/31/trace1059 --trace-config all --trace-time ftp://test-number:1059/wanted/page -p -x 127.0.0.1:45557 > log/31/stdout1059 2> log/31/stderr1059 === End of file commands.log === Start of file http_server.log 09:41:16.819333 ====> Client connect 09:41:16.819791 accept_connection 3 returned 4 09:41:16.819958 accept_connection 3 returned 0 09:41:16.820086 Read 93 bytes 09:41:16.820172 Process 93 bytes request 09:41:16.820254 Got request: GET /verifiedserver HTTP/1.1 09:41:16.820323 Are-we-friendly question received 09:41:16.820645 Wrote request (93 bytes) input to log/31/server.input 09:41:16.820840 Identifying ourselves as friends 09:41:16.825107 Response sent (56 bytes) and written to log/31/server.response 09:41:16.825218 special request received, no persistency 09:41:16.825327 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 1059 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1059 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1075 ../src/curl -q --output log/50/curl1075.out --include --trace-ascii log/50/trace1075 --trace-config all --trace-time http://127.0.0.1:45651/1075 -T log/50/put1075 -u testuser:testpass --anyauth > log/50/stdout1075 2> log/50/stderr1075 called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1059 test 1045...[HTTP GET with numeric localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1045 ../src/curl -q --output log/49/curl1045.out --include --trace-ascii log/49/trace1045 --trace-config all --trace-time http://127.0.0.1:42667/1045 --interface 127.0.0.1 > log/49/stdout1045 2> log/49/stderr1045 1045: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 1045 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1045 ../src/curl -q --output log/49/curl1045.out --include --trace-ascii log/49/trace1045 --trace-config all --trace-time http://127.0.0.1:42667/1045 --interface 127.0.0.1 > log/49/stdout1045 2> log/49/stderr1045 === End of file commands.log === Start of file http_server.log 09:41:16.708883 ====> Client connect 09:41:16.709195 accept_connection 3 returned 4 09:41:16.709359 accept_connection 3 returned 0 09:41:16.709634 Read 93 bytes 09:41:16.709756 Process 93 bytes request 09:41:16.709854 Got request: GET /verifiedserver HTTP/1.1 09:41:16.709934 Are-we-friendly question received 09:41:16.710144 Wrote request (93 bytes) input to log/49/server.input 09:41:16.710305 Identifying ourselves as friends 09:41:16.711057 Response sent (56 bytes) and written to log/49/server.response 09:41:16.711158 special request received, no persistency 09:41:16.711249 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 1045 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind1045 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1045 test 1054...[HTTP POST from file with 301 redirect and --post301] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1054 ../src/curl -q --output log/52/curl1054.out --include --trace-ascii log/52/trace1054 --trace-config all --trace-time http://127.0.0.1:40089/blah/1054 -L -d @log/52/test1054.txt --post301 > log/52/stdout1054 2> log/52/stderr1054 1054: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1054 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1054 ../src/curl -q --output log/52/curl1054.out --include --trace-ascii log/52/trace1054 --trace-config all --trace-time http://127.0.0.1:40089/blah/1054 -L -d @log/52/test1054.txt --post301 > log/52/stdout1054 2> log/52/stderr1054 === End of file commands.log === Start of file http_server.log 09:41:16.741740 ====> Client connect 09:41:16.742055 accept_connection 3 returned 4 09:41:16.742209 accept_connection 3 returned 0 09:41:16.742342 Read 93 bytes 09:41:16.742437 Process 93 bytes request 09:41:16.742620 Got request: GET /verifiedserver HTTP/1.1 09:41:16.742705 Are-we-friendly question received 09:41:16.742938 Wrote request (93 bytes) input to log/52/server.input 09:41:16.743124 Identifying ourselves as friends 09:41:16.743895 Response sent (56 bytes) and written to log/52/server.response 09:41:16.744004 special request received, no persistency 09:41:16.744077 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 1054 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file test1054.txt field=data === End of file test1054.txt === Start of file valgrind1054 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1054 test 1071...[Downgraded HTTP PUT to HTTP 1.0 with authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1071 ../src/curl -q --output log/4/curl1071.out --include --trace-ascii log/4/trace1071 --trace-config all --trace-time http://127.0.0.1:43013/1071 -T log/4/put1071 -u testuser:testpass --anyauth > log/4/stdout1071 2> log/4/stderr1071 1071: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1071 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1071 ../src/curl -q --output log/4/curl1071.out --include --trace-ascii log/4/trace1071 --trace-config all --trace-time http://127.0.0.1:43013/1071 -T log/4/put1071 -u testuser:testpass --anyauth > log/4/stdout1071 2> log/4/stderr1071 === End of file commands.log === Start of file http_server.log 09:41:17.198845 ====> Client connect 09:41:17.199145 accept_connection 3 returned 4 09:41:17.199341 accept_connection 3 returned 0 09:41:17.199876 Read 93 bytes 09:41:17.200136 Process 93 bytes request 09:41:17.200308 Got request: GET /verifiedserver HTTP/1.1 09:41:17.200640 Are-we-friendly question received 09:41:17.201157 Wrote request (93 bytes) input to log/4/server.input 09:41:17.201636 Identifying ourselves as friends 09:41:17.205056 Response sent (56 bytes) and written to log/4/server.response 09:41:17.205295 special request received, no persistency 09:41:17.205366 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file put1071 This is data we upload with PUT a second line line three four is the number of lines === End of file put1071 === Start of file server.cmd Testnum 1071 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind1071 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1071 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1046 ../src/curl -q --output log/61/curl1046.out --include --trace-ascii log/61/trace1046 --trace-config all --trace-time -g "http://[::1]:39413/1046" --interface ::1 > log/61/stdout1046 2> log/61/stderr1046 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1048 ../src/curl -q --output log/37/curl1048.out --include --trace-ascii log/37/trace1048 --trace-config all --trace-time -g "ftp://[::1]:43303/" --interface ::1 > log/37/stdout1048 2> log/37/stderr1048 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1082 ../src/curl -q --output log/35/curl1082.out --include --trace-ascii log/35/trace1082 --trace-config all --trace-time http://127.0.0.1:43179/1082 -4 --interface 127.0.0.1 > log/35/stdout1082 2> log/35/stderr1082 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1081 ../src/curl -q --include --trace-ascii log/38/trace1081 --trace-config all --trace-time http://127.0.0.1:33511/we/want/our/1081 http://127.0.0.1:33511/we/want/our/10810002 -w '%{redirect_url}\n' > log/38/stdout1081 2> log/38/stderr1081 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1077 ../src/curl -q --output log/55/curl1077.out --include --trace-ascii log/55/trace1077 --trace-config all --trace-time -x 127.0.0.1:33071 ftp://127.0.0.1:33071/we/want/that/page/1077 ftp://127.0.0.1:33071/we/want/that/page/10770002 > log/55/stdout1077 2> log/55/stderr1077 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1087 ../src/curl -q --output log/48/curl1087.out --include --trace-ascii log/48/trace1087 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/10871000 -x 127.0.0.1:46339 --user iam:myself --location --anyauth > log/48/stdout1087 2> log/48/stderr1087 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1070 ../src/curl -q --output log/20/curl1070.out --include --trace-ascii log/20/trace1070 --trace-config all --trace-time -d @log/20/input1070 http://127.0.0.1:45475/1070 -H "Expect: 100-continue" > log/20/stdout1070 2> log/20/stderr1070 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1090 ../src/curl -q --include --trace-ascii log/23/trace1090 --trace-config all --trace-time http://127.0.0.1:42467/1090 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/23/stdout1090 2> log/23/stderr1090 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1089 ../src/curl -q --include --trace-ascii log/29/trace1089 --trace-config all --trace-time http://127.0.0.1:36877/1089 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/29/stdout1089 2> log/29/stderr1089 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1050 ../src/curl -q --output log/22/curl1050.out --include --trace-ascii log/22/trace1050 --trace-config all --trace-time -g "ftp://[::1]:33787/" -P ::1 > log/22/stdout1050 2> log/22/stderr1050 test 1074...[HTTP downgrade to HTTP/1.0 on second request] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1074 ../src/curl -q --include --trace-ascii log/7/trace1074 --trace-config all --trace-time http://127.0.0.1:44647/want/1074 http://127.0.0.1:44647/wantmore/10740001 > log/7/stdout1074 2> log/7/stderr1074 1074: stdout FAILED: --- log/7/check-expected 2025-07-18 09:41:18.337631154 +0000 +++ log/7/check-generated 2025-07-18 09:41:18.336589134 +0000 @@ -1,11 +0,0 @@ -HTTP/1.0 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 9[CR][LF] -Connection: Keep-Alive[CR][LF] -[CR][LF] -surprise[LF] -HTTP/1.0 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Connection: close[CR][LF] -[CR][LF] -surprise2[LF] == Contents of files in the log/7/ dir after test 1074 === Start of file check-expected HTTP/1.0 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 9[CR][LF] Connection: Keep-Alive[CR][LF] [CR][LF] surprise[LF] HTTP/1.0 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Connection: close[CR][LF] [CR][LF] surprise2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1074 ../src/curl -q --include --trace-ascii log/7/trace1074 --trace-config all --trace-time http://127.0.0.1:44647/want/1074 http://127.0.0.1:44647/wantmore/10740001 > log/7/stdout1074 2> log/7/stderr1074 === End of file commands.log === Start of file http_server.log 09:41:17.246888 ====> Client connect 09:41:17.247180 accept_connection 3 returned 4 09:41:17.247351 accept_connection 3 returned 0 09:41:17.247632 Read 93 bytes 09:41:17.247756 Process 93 bytes request 09:41:17.247846 Got request: GET /verifiedserver HTTP/1.1 09:41:17.247921 Are-we-friendly question received 09:41:17.248147 Wrote request (93 bytes) input to log/7/server.input 09:41:17.248338 Identifying ourselves as friends 09:41:17.249203 Response sent (56 bytes) and written to log/7/server.response 09:41:17.249335 special request received, no persistency 09:41:17.249418 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 1074 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind1074 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1074 * starts no server test 1084...[HTTP GET with invalid --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1084 ../src/curl -q --output log/9/curl1084.out --include --trace-ascii log/9/trace1084 --trace-config all --trace-time http://127.0.0.1:47/1084 --interface non-existing-host.haxx.se. > log/9/stdout1084 2> log/9/stderr1084 curl returned 1, when expecting 45 1084: exit FAILED == Contents of files in the log/9/ dir after test 1084 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1084 ../src/curl -q --output log/9/curl1084.out --include --trace-ascii log/9/trace1084 --trace-config all --trace-time http://127.0.0.1:47/1084 --interface non-existing-host.haxx.se. > log/9/stdout1084 2> log/9/stderr1084 === End of file commands.log === Start of file server.cmd Testnum 1084 === End of file server.cmd === Start of file valgrind1084 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1084 test 1073...[HTTP chunked PUT to HTTP 1.0 server with redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1073 ../src/curl -q --output log/10/curl1073.out --include --trace-ascii log/10/trace1073 --trace-config all --trace-time http://127.0.0.1:36913/1073 -T - -L log/10/stdout1073 2> log/10/stderr1073 1073: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 1073 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1073 ../src/curl -q --output log/10/curl1073.out --include --trace-ascii log/10/trace1073 --trace-config all --trace-time http://127.0.0.1:36913/1073 -T - -L log/10/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1049 ../src/curl -q --output log/24/curl1049.out --include --trace-ascii log/24/trace1049 --trace-config all --trace-time tftp://127.0.0.1:54018//1049 --interface 127.0.0.1 > log/24/stdout1049 2> log/24/stderr1049 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1080 ../src/curl -q --include --trace-ascii log/40/trace1080 --trace-config all --trace-time http://127.0.0.1:42139/we/want/our/1080 http://127.0.0.1:42139/we/want/our/1080 -w '%{redirect_url}\n' > log/40/stdout1080 2> log/40/stderr1080 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1079 ../src/curl -q --output log/46/curl1079.out --include --trace-ascii log/46/trace1079 --trace-config all --trace-time http://127.0.0.1:46523/1079 -u testuser:testpass --digest > log/46/stdout1079 2> log/46/stderr1079 stdout1073 2> log/10/stderr1073 === End of file commands.log === Start of file http_server.log 09:41:17.247777 ====> Client connect 09:41:17.248107 accept_connection 3 returned 4 09:41:17.248268 accept_connection 3 returned 0 09:41:17.248396 Read 93 bytes 09:41:17.253620 Process 93 bytes request 09:41:17.253766 Got request: GET /verifiedserver HTTP/1.1 09:41:17.253848 Are-we-friendly question received 09:41:17.254116 Wrote request (93 bytes) input to log/10/server.input 09:41:17.254301 Identifying ourselves as friends 09:41:17.257976 Response sent (56 bytes) and written to log/10/server.response 09:41:17.258103 special request received, no persistency 09:41:17.258174 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 1073 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file stdin-for-1073 This is data we upload with PUT it comes from stdin so MUST be sent with chunked encoding which is impossible in HTTP/1.0 === End of file stdin-for-1073 === Start of file valgrind1073 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1073 test 1072...[HTTP chunked PUT to HTTP 1.0 server with authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1072 ../src/curl -q --output log/15/curl1072.out --include --trace-ascii log/15/trace1072 --trace-config all --trace-time http://127.0.0.1:35435/1072 -T - -u testuser:testpass --anyauth log/15/stdout1072 2> log/15/stderr1072 1072: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 1072 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1072 ../src/curl -q --output log/15/curl1072.out --include --trace-ascii log/15/trace1072 --trace-config all --trace-time http://127.0.0.1:35435/1072 -T - -u testuser:testpass --anyauth log/15/stdout1072 2> log/15/stderr1072 === End of file commands.log === Start of file http_server.log 09:41:17.191908 ====> Client connect 09:41:17.192226 accept_connection 3 returned 4 09:41:17.192396 accept_connection 3 returned 0 09:41:17.192786 Read 93 bytes 09:41:17.192922 Process 93 bytes request 09:41:17.193021 Got request: GET /verifiedserver HTTP/1.1 09:41:17.193117 Are-we-friendly question received 09:41:17.193372 Wrote request (93 bytes) input to log/15/server.input 09:41:17.193681 Identifying ourselves as friends 09:41:17.194569 Response sent (56 bytes) and written to log/15/server.response 09:41:17.194695 special request received, no persistency 09:41:17.194769 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 1072 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file stdin-for-1072 This is data we upload with PUT it comes from stdin so MUST be sent with chunked encoding which is impossible in HTTP/1.0 === End of file stdin-for-1072 === Start of file valgrind1072 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1072 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/26/server/http_ipv6_server.pid" --logfile "log/26/http_ipv6_server.log" --logdir "log/26" --portfile log/26/server/http_ipv6_server.port --config log/26/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 126867 port 46351 * pid http-ipv6 => 126867 126867 prechecked /usr/bin/perl -e "if('[::1]' ne '[::1]') {print 'Test requires default test client host address';} else {exec './server/servers resolve --ipv6 ip6-localhost'; print 'Cannot run precheck resolve';}" test 1083 SKIPPED: Resolving IPv6 'ip6-localhost' didn't work test 1076...[HTTP POST with 302 redirect and --post302] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1095 ../src/curl -q --output log/45/curl1095.out --include --trace-ascii log/45/trace1095 --trace-config all --trace-time http://127.0.0.1:34239/1095 -u testuser:testpass --digest > log/45/stdout1095 2> log/45/stderr1095 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1104 ../src/curl -q --output log/42/curl1104.out --include --trace-ascii log/42/trace1104 --trace-config all --trace-time http://127.0.0.1:42819/want/1104 -L -x 127.0.0.1:42819 -c log/42/cookies1104.jar > log/42/stdout1104 2> log/42/stderr1104 grind1076 ../src/curl -q --output log/47/curl1076.out --include --trace-ascii log/47/trace1076 --trace-config all --trace-time http://127.0.0.1:41103/blah/1076 -L -d "moo" --post302 > log/47/stdout1076 2> log/47/stderr1076 1076: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1076 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1076 ../src/curl -q --output log/47/curl1076.out --include --trace-ascii log/47/trace1076 --trace-config all --trace-time http://127.0.0.1:41103/blah/1076 -L -d "moo" --post302 > log/47/stdout1076 2> log/47/stderr1076 === End of file commands.log === Start of file http_server.log 09:41:17.325997 ====> Client connect 09:41:17.326278 accept_connection 3 returned 4 09:41:17.326439 accept_connection 3 returned 0 09:41:17.326759 Read 93 bytes 09:41:17.326862 Process 93 bytes request 09:41:17.326991 Got request: GET /verifiedserver HTTP/1.1 09:41:17.327095 Are-we-friendly question received 09:41:17.327373 Wrote request (93 bytes) input to log/47/server.input 09:41:17.327658 Identifying ourselves as friends 09:41:17.328705 Response sent (56 bytes) and written to log/47/server.response 09:41:17.328890 special request received, no persistency 09:41:17.328959 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 1076 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind1076 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1076 test 1075...[HTTP PUT with --anyauth authorization (picking Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1075 ../src/curl -q --output log/50/curl1075.out --include --trace-ascii log/50/trace1075 --trace-config all --trace-time http://127.0.0.1:45651/1075 -T log/50/put1075 -u testuser:testpass --anyauth > log/50/stdout1075 2> log/50/stderr1075 1075: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 1075 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1075 ../src/curl -q --output log/50/curl1075.out --include --trace-ascii log/50/trace1075 --trace-config all --trace-time http://127.0.0.1:45651/1075 -T log/50/put1075 -u testuser:testpass --anyauth > log/50/stdout1075 2> log/50/stderr1075 === End of file commands.log === Start of file http_server.log 09:41:17.196417 ====> Client connect 09:41:17.196870 accept_connection 3 returned 4 09:41:17.197050 accept_connection 3 returned 0 09:41:17.197879 Read 93 bytes 09:41:17.198008 Process 93 bytes request 09:41:17.198094 Got request: GET /verifiedserver HTTP/1.1 09:41:17.198173 Are-we-friendly question received 09:41:17.198398 Wrote request (93 bytes) input to log/50/server.input 09:41:17.198662 Identifying ourselves as friends 09:41:17.200841 Response sent (56 bytes) and written to log/50/server.response 09:41:17.201085 special request received, no persistency 09:41:17.201191 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file put1075 This is data we upload with PUT a second line line three four is the number of lines === End of file put1075 === Start of file server.cmd Testnum 1075 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind1075 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1075 test 1055...[HTTP PUT Location: redirect to FTP URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1055 ../src/curl -q --output log/51/curl1055.out --include --trace-ascii log/51/trace1055 --trace-config all --trace-time http://127.0.0.1:34903/1055 -L -T log/51/test1055.txt > log/51/stdout1055 2> log/51/stderr1055 1055: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 1055 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1055 ../src/curl -q --output log/51/curl1055.out --include --trace-ascii log/51/trace1055 --trace-config all --trace-time http://127.0.0.1:34903/1055 -L -T log/51/test1055.txt > log/51/stdout1055 2> log/51/stderr1055 === End of file commands.log === Start of file ftp_server.log 09:41:16.780145 ====> Client connect 09:41:16.782871 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:16.784667 < "USER anonymous" 09:41:16.786624 > "331 We are happy you popped in![CR][LF]" 09:41:16.788107 < "PASS ftp@example.com" 09:41:16.788936 > "230 Welcome you silly person[CR][LF]" 09:41:16.790967 < "PWD" 09:41:16.792185 > "257 "/" is current directory[CR][LF]" 09:41:16.793994 < "EPSV" 09:41:16.794302 ====> Passive DATA channel requested by client 09:41:16.794501 DATA sockfilt for passive data channel starting... 09:41:16.816873 DATA sockfilt for passive data channel started (pid 126671) 09:41:16.818114 DATA sockfilt for passive data channel listens on port 45321 09:41:16.818613 > "229 Entering Passive Mode (|||45321|)[LF]" 09:41:16.818998 Client has been notified that DATA conn will be accepted on port 45321 09:41:16.821233 Client connects to port 45321 09:41:16.821591 ====> Client established passive DATA connection on port 45321 09:41:16.823230 < "TYPE I" 09:41:16.824147 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:16.826223 < "SIZE verifiedserver" 09:41:16.827219 > "213 17[CR][LF]" 09:41:16.829290 < "RETR verifiedserver" 09:41:16.830593 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:16.831509 =====> Closing passive DATA connection... 09:41:16.832503 Server disconnects passive DATA connection 09:41:16.833111 Fancy that; client wants to DISC, too 09:41:16.833527 Server disconnected passive DATA connection 09:41:16.833875 DATA sockfilt for passive data channel quits (pid 126671) 09:41:16.836204 DATA sockfilt for passive data channel quit (pid 126671) 09:41:16.836466 =====> Closed passive DATA connection 09:41:16.837268 > "226 File transfer complete[CR][LF]" 09:41:16.872872 < "QUIT" 09:41:16.874161 > "221 bye bye baby[CR][LF]" 09:41:16.878197 MAIN sockfilt said DISC 09:41:16.879351 ====> Client disconnected 09:41:16.879996 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:17.033089 ====> Client connect 09:41:17.035334 Received DATA (on stdin) 09:41:17.035599 > 160 bytes data, server => client 09:41:17.035834 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:17.035983 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:17.036077 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:17.037513 < 16 bytes data, client => server 09:41:17.037680 'USER anonymous\r\n' 09:41:17.039006 Received DATA (on stdin) 09:41:17.039174 > 33 bytes data, server => client 09:41:17.039372 '331 We are happy you popped in!\r\n' 09:41:17.040928 < 22 bytes data, client => server 09:41:17.041064 'PASS ftp@example.com\r\n' 09:41:17.042202 Received DATA (on stdin) 09:41:17.042354 > 30 bytes data, server => client 09:41:17.042995 '230 Welcome you silly person\r\n' 09:41:17.043805 < 5 bytes data, client => server 09:41:17.043957 'PWD\r\n' 09:41:17.045088 Received DATA (on stdin) 09:41:17.045229 > 30 bytes data, server => client 09:41:17.045425 '257 "/" is current directory\r\n' 09:41:17.046994 < 6 bytes data, client => server 09:41:17.047161 'EPSV\r\n' 09:41:17.073078 Received DATA (on stdin) 09:41:17.073236 > 38 bytes data, server => client 09:41:17.073327 '229 Entering Passive Mode (|||45321|)\n' 09:41:17.075933 < 8 bytes data, client => server 09:41:17.076094 'TYPE I\r\n' 09:41:17.077392 Received DATA (on stdin) 09:41:17.077623 > 33 bytes data, server => client 09:41:17.078197 '200 I modify TYPE as you wanted\r\n' 09:41:17.078969 < 21 bytes data, client => server 09:41:17.079120 'SIZE verifiedserver\r\n' 09:41:17.080392 Received DATA (on stdin) 09:41:17.080654 > 8 bytes data, server => client 09:41:17.081269 '213 17\r\n' 09:41:17.082085 < 21 bytes data, client => server 09:41:17.082245 'RETR verifiedserver\r\n' 09:41:17.083431 Received DATA (on stdin) 09:41:17.083691 > 29 bytes data, server => client 09:41:17.083892 '150 Binary junk (17 bytes).\r\n' 09:41:17.090586 Received DATA (on stdin) 09:41:17.090755 > 28 bytes data, server => client 09:41:17.091329 '226 File transfer complete\r\n' 09:41:17.125556 < 6 bytes data, client => server 09:41:17.125751 'QUIT\r\n' 09:41:17.127001 Received DATA (on stdin) 09:41:17.127161 > 18 bytes data, server => client 09:41:17.127361 '221 bye bye baby\r\n' 09:41:17.131595 ====> Client disconnect 09:41:17.132289 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:16.068824 Running IPv4 version 09:41:16.069532 Listening on port 45321 09:41:16.069942 Wrote pid 126671 to log/51/server/ftp_sockdata.pid 09:41:16.070149 Received PING (on stdin) 09:41:16.071118 Received PORT (on stdin) 09:41:16.074625 ====> Client connect 09:41:16.084862 Received DATA (on stdin) 09:41:16.085030 > 17 bytes data, server => client 09:41:16.085125 'WE ROOLZ: 77543\r\n' 09:41:16.086105 ====> Client disconnect 09:41:16.086816 Received DISC (on stdin) 09:41:16.086969 Crikey! Client also wants to disconnect 09:41:16.087182 Received ACKD (on stdin) 09:41:16.087977 Received QUIT (on stdin) 09:41:16.088121 quits 09:41:16.088794 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:16.777265 ====> Client connect 09:41:16.777657 accept_connection 3 returned 4 09:41:16.777811 accept_connection 3 returned 0 09:41:16.777927 Read 93 bytes 09:41:16.778010 Process 93 bytes request 09:41:16.778086 Got request: GET /verifiedserver HTTP/1.1 09:41:16.778150 Are-we-friendly question received 09:41:16.778349 Wrote request (93 bytes) input to log/51/server.input 09:41:16.778814 Identifying ourselves as friends 09:41:16.780003 Response sent (56 bytes) and written to log/51/server.response 09:41:16.780106 special request received, no persistency 09:41:16.780171 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 1055 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file test1055.txt Weird file to upload for testing the PUT feature === End of file test1055.txt === Start of file valgrind1055 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, shortCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1098 ../src/curl -q --include --trace-ascii log/32/trace1098 --trace-config all --trace-time ftp://ftp-site/moo/1098 ftp://ftp-site/moo/1098 --proxy http://127.0.0.1:45607 > log/32/stdout1098 2> log/32/stderr1098 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1092 ../src/curl -q --output log/11/curl1092.out --include --trace-ascii log/11/trace1092 --trace-config all --trace-time "ftp://127.0.0.1:41387/we/want/that/page/1092;type=i" --use-ascii -x 127.0.0.1:41387 > log/11/stdout1092 2> log/11/stderr1092 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1088 ../src/curl -q --output log/44/curl1088.out --include --trace-ascii log/44/trace1088 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/10881000 -x 127.0.0.1:34655 --user iam:myself --location-trusted --anyauth > log/44/stdout1088 2> log/44/stderr1088 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1103 ../src/curl -q --output log/3/curl1103.out --include --trace-ascii log/3/trace1103 --trace-config all --trace-time ftp://127.0.0.1:42255/1103 > log/3/stdout1103 2> log/3/stderr1103 term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1055 test 1092...[FTP with type=i over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1092 ../src/curl -q --output log/11/curl1092.out --include --trace-ascii log/11/trace1092 --trace-config all --trace-time "ftp://127.0.0.1:41387/we/want/that/page/1092;type=i" --use-ascii -x 127.0.0.1:41387 > log/11/stdout1092 2> log/11/stderr1092 1092: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 1092 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1092 ../src/curl -q --output log/11/curl1092.out --include --trace-ascii log/11/trace1092 --trace-config all --trace-time "ftp://127.0.0.1:41387/we/want/that/page/1092;type=i" --use-ascii -x 127.0.0.1:41387 > log/11/stdout1092 2> log/11/stderr1092 === End of file commands.log === Start of file http_server.log 09:41:17.724841 ====> Client connect 09:41:17.725142 accept_connection 3 returned 4 09:41:17.725303 accept_connection 3 returned 0 09:41:17.725439 Read 93 bytes 09:41:17.725626 Process 93 bytes request 09:41:17.725713 Got request: GET /verifiedserver HTTP/1.1 09:41:17.725789 Are-we-friendly question received 09:41:17.726128 Wrote request (93 bytes) input to log/11/server.input 09:41:17.726305 Identifying ourselves as friends 09:41:17.727266 Response sent (56 bytes) and written to log/11/server.response 09:41:17.727372 special request received, no persistency 09:41:17.727433 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41387... * Connected to 127.0.0.1 (127.0.0.1) port 41387 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41387 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73809 === End of file http_verify.out === Start of file server.cmd Testnum 1092 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73809 === End of file server.response === Start of file valgrind1092 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1092 test 1070...[HTTP POST with server closing connection before (all) data is received] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1070 ../src/curl -q --output log/20/curl1070.out --include --trace-ascii log/20/trace1070 --trace-config all --trace-time -d @log/20/input1070 http://127.0.0.1:45475/1070 -H "Expect: 100-continue" > log/20/stdout1070 2> log/20/stderr1070 1070: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 1070 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1070 ../src/curl -q --output log/20/curl1070.out --include --trace-ascii log/20/trace1070 --trace-config all --trace-time -d @log/20/input1070 http://127.0.0.1:45475/1070 -H "Expect: 100-continue" > log/20/stdout1070 2> log/20/stderr1070 === End of file commands.log === Start of file http_server.log 09:41:17.135883 ====> Client connect 09:41:17.136171 accept_connection 3 returned 4 09:41:17.136342 accept_connection 3 returned 0 09:41:17.136621 Read 93 bytes 09:41:17.136753 Process 93 bytes request 09:41:17.136841 Got request: GET /verifiedserver HTTP/1.1 09:41:17.136925 Are-we-friendly question received 09:41:17.137159 Wrote request (93 bytes) input to log/20/server.input 09:41:17.137355 Identifying ourselves as friends 09:41:17.147732 Response sent (56 bytes) and written to log/20/server.response 09:41:17.147853 special request received, no persistency 09:41:17.147948 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file input1070 This creates the named file with this content before the test case is run, which is useful if the test case needs a file to act on. We create this file rather large (larger than your typical TCP packet) so that not all of it can nor will be sent in one go as that is kind of the point of this test Here's 2000 x 'O': OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO === End of file input1070 === Start of file server.cmd skip: 2300 Testnum 1070 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind1070 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1070 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/22/server/ftp_ipv6_server.pid" --logfile "log/22/ftp_ipv6_server.log" --logdir "log/22" --portfile "log/22/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 33787 (log/22/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 126034 port 33787 * pid ftp-ipv6 => 126034 126034 test 1050...[FTP-IPv6 dir list, EPRT with specified IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1050 ../src/curl -q --output log/22/curl1050.out --include --trace-ascii log/22/trace1050 --trace-config all --trace-time -g "ftp://[::1]:33787/" -P ::1 > log/22/stdout1050 2> log/22/stderr1050 1050: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 1050 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1050 ../src/curl -q --output log/22/curl1050.out --include --trace-ascii log/22/trace1050 --trace-config all --trace-time -g "ftp://[::1]:33787/" -P ::1 > log/22/stdout1050 2> log/22/stderr1050 === End of file commands.log === Start of file ftp_ipv6_server.log 09:41:17.036958 FTP server listens on port IPv6/33787 09:41:17.040924 logged pid 126034 in log/22/server/ftp_ipv6_server.pid 09:41:17.041229 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 09:41:17.288387 Running IPv6 version 09:41:17.288970 Listening on port 33787 09:41:17.289321 Wrote pid 127122 to log/22/server/ftp_ipv6_sockctrl.pid 09:41:17.289743 Wrote port 33787 to log/22/server/ftp_ipv6_server.port 09:41:17.289900 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 1050 === End of file server.cmd === Start of file valgrind1050 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1050 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1107 ../src/curl -q --output log/13/curl1107.out --include --trace-ascii log/13/trace1107 --trace-config all --trace-time ftp://127.0.0.1:34087/1107 --ftp-pret > log/13/stdout1107 2> log/13/stderr1107 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1091 ../src/curl -q --output log/28/curl1091.out --include --trace-ascii log/28/trace1091 --trace-config all --trace-time "ftp://127.0.0.1:34373/%2ftmp/moo/1091;type=i" --use-ascii > log/28/stdout1091 2> log/28/stderr1091 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1101 ../src/curl -q --output log/21/curl1101.out --include --trace-ascii log/21/trace1101 --trace-config all --trace-time http://user:secret@127.0.0.1:34827/gimme/1101 > log/21/stdout1101 2> log/21/stderr1101 test 1090...[HTTP GET --write-out with redirected fetch and chunked reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1090 ../src/curl -q --include --trace-ascii log/23/trace1090 --trace-config all --trace-time http://127.0.0.1:42467/1090 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/23/stdout1090 2> log/23/stderr1090 1090: stdout FAILED: --- log/23/check-expected 2025-07-18 09:41:18.629588986 +0000 +++ log/23/check-generated 2025-07-18 09:41:18.628588987 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 8[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain[CR][LF] -Location: ./10900001[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Transfer-Encoding: chunked[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain; charset=us-ascii[CR][LF] -[CR][LF] -bigger monster[LF] -2[LF] -1[LF] -15[LF] -http://127.0.0.1:42467/10900001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/23/ dir after test 1090 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 8[CR][LF] Connection: close[CR][LF] Content-Type: text/plain[CR][LF] Location: ./10900001[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Transfer-Encoding: chunked[CR][LF] Connection: close[CR][LF] Content-Type: text/plain; charset=us-ascii[CR][LF] [CR][LF] bigger monster[LF] 2[LF] 1[LF] 15[LF] http://127.0.0.1:42467/10900001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1090 ../src/curl -q --include --trace-ascii log/23/trace1090 --trace-config all --trace-time http://127.0.0.1:42467/1090 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/23/stdout1090 2> log/23/stderr1090 === End of file commands.log === Start of file http_server.log 09:41:17.503998 ====> Client connect 09:41:17.504291 accept_connection 3 returned 4 09:41:17.504640 accept_connection 3 returned 0 09:41:17.504814 Read 93 bytes 09:41:17.504904 Process 93 bytes request 09:41:17.504993 Got request: GET /verifiedserver HTTP/1.1 09:41:17.505092 Are-we-friendly question received 09:41:17.505315 Wrote request (93 bytes) input to log/23/server.input 09:41:17.508636 Identifying ourselves as friends 09:41:17.509681 Response sent (56 bytes) and written to log/23/server.response 09:41:17.509800 special request received, no persistency 09:41:17.509872 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 1090 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind1090 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1090 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/24/server/tftp_server.pid" --portfile "log/24/server/tftp_server.port" --logfile "log/24/tftp_server.log" --logdir "log/24" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 126027 port 54018 * pid tftp => 126027 126027 test 1049...[TFTP retrieve with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1049 ../src/curl -q --output log/24/curl1049.out --include --trace-ascii log/24/trace1049 --trace-config all --trace-time tftp://127.0.0.1:54018//1049 --interface 127.0.0.1 > log/24/stdout1049 2> log/24/stderr1049 1049: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 1049 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1049 ../src/curl -q --output log/24/curl1049.out --include --trace-ascii log/24/trace1049 --trace-config all --trace-time tftp://127.0.0.1:54018//1049 --interface 127.0.0.1 > log/24/stdout1049 2> log/24/stderr1049 === End of file commands.log === Start of file server.cmd Testnum 1049 === End of file server.cmd === Start of file tftp_server.log 09:41:16.667410 Wrote pid 126027 to log/24/server/tftp_server.pid 09:41:16.668135 Wrote port 54018 to log/24/server/tftp_server.port 09:41:16.668328 Running IPv4 version on port UDP/54018 === End of file tftp_server.log === Start of file valgrind1049 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1111 ../src/curl -q --output log/1/curl1111.out --include --trace-ascii log/1/trace1111 --trace-config all --trace-time http://127.0.0.1:40633/1111?q=foobar#fragment#fragment2 > log/1/stdout1111 2> log/1/stderr1111 nd: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1049 test 1089...[HTTP GET --write-out with redirected fetch] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1089 ../src/curl -q --include --trace-ascii log/29/trace1089 --trace-config all --trace-time http://127.0.0.1:36877/1089 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/29/stdout1089 2> log/29/stderr1089 1089: stdout FAILED: --- log/29/check-expected 2025-07-18 09:41:18.744243728 +0000 +++ log/29/check-generated 2025-07-18 09:41:18.740588930 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 8[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain[CR][LF] -Location: ./10890001[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 15[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain; charset=us-ascii[CR][LF] -[CR][LF] -bigger monster[LF] -2[LF] -1[LF] -15[LF] -http://127.0.0.1:36877/10890001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/29/ dir after test 1089 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 8[CR][LF] Connection: close[CR][LF] Content-Type: text/plain[CR][LF] Location: ./10890001[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 15[CR][LF] Connection: close[CR][LF] Content-Type: text/plain; charset=us-ascii[CR][LF] [CR][LF] bigger monster[LF] 2[LF] 1[LF] 15[LF] http://127.0.0.1:36877/10890001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1089 ../src/curl -q --include --trace-ascii log/29/trace1089 --trace-config all --trace-time http://127.0.0.1:36877/1089 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/29/stdout1089 2> log/29/stderr1089 === End of file commands.log === Start of file http_server.log 09:41:17.633859 ====> Client connect 09:41:17.634182 accept_connection 3 returned 4 09:41:17.634356 accept_connection 3 returned 0 09:41:17.634631 Read 93 bytes 09:41:17.634750 Process 93 bytes request 09:41:17.634830 Got request: GET /verifiedserver HTTP/1.1 09:41:17.634904 Are-we-friendly question received 09:41:17.635114 Wrote request (93 bytes) input to log/29/server.input 09:41:17.635287 Identifying ourselves as friends 09:41:17.636037 Response sent (56 bytes) and written to log/29/server.response 09:41:17.636151 special request received, no persistency 09:41:17.636235 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 1089 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind1089 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1089 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1106 ../src/curl -q --output log/34/curl1106.out --include --trace-ascii log/34/trace1106 --trace-config all --trace-time ftp://127.0.0.1:23456/1106 > log/34/stdout1106 2> log/34/stderr1106 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1115 ../src/curl -q --output log/5/curl1115.out --include --trace-ascii log/5/trace1115 --trace-config all --trace-time http://127.0.0.1:33413/1115 > log/5/stdout1115 2> log/5/stderr1115 test 1098...[FTP RETR twice over proxy confirming persistent connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1098 ../src/curl -q --include --trace-ascii log/32/trace1098 --trace-config all --trace-time ftp://ftp-site/moo/1098 ftp://ftp-site/moo/1098 --proxy http://127.0.0.1:45607 > log/32/stdout1098 2> log/32/stderr1098 1098: stdout FAILED: --- log/32/check-expected 2025-07-18 09:41:18.844588877 +0000 +++ log/32/check-generated 2025-07-18 09:41:18.843588878 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -[CR][LF] -hello[LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -[CR][LF] -hello[LF] == Contents of files in the log/32/ dir after test 1098 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 6[CR][LF] [CR][LF] hello[LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 6[CR][LF] [CR][LF] hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1098 ../src/curl -q --include --trace-ascii log/32/trace1098 --trace-config all --trace-time ftp://ftp-site/moo/1098 ftp://ftp-site/moo/1098 --proxy http://127.0.0.1:45607 > log/32/stdout1098 2> log/32/stderr1098 === End of file commands.log === Start of file http_server.log 09:41:17.695246 ====> Client connect 09:41:17.695676 accept_connection 3 returned 4 09:41:17.695857 accept_connection 3 returned 0 09:41:17.695989 Read 93 bytes 09:41:17.696090 Process 93 bytes request 09:41:17.696190 Got request: GET /verifiedserver HTTP/1.1 09:41:17.696274 Are-we-friendly question received 09:41:17.696572 Wrote request (93 bytes) input to log/32/server.input 09:41:17.696766 Identifying ourselves as friends 09:41:17.697557 Response sent (56 bytes) and written to log/32/server.response 09:41:17.697675 special request received, no persistency 09:41:17.697746 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 1098 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind1098 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1098 prechecked /usr/bin/perl -e "print 'Test requires default test client host address' if('127.0.0.1' ne '127.0.0.1');" test 1082...[HTTP GET with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1082 ../src/curl -q --output log/35/curl1082.out --include --trace-ascii log/35/trace1082 --trace-config all --trace-time http://127.0.0.1:43179/1082 -4 --interface 127.0.0.1 > log/35/stdout1082 2> log/35/stderr1082 1082: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 1082 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1082 ../src/curl -q --output log/35/curl1082.out --include --trace-ascii log/35/trace1082 --trace-config all --trace-time http://127.0.0.1:43179/1082 -4 --interface 127.0.0.1 > log/35/stdout1082 2> log/35/stderr1082 === End of file commands.log === Start of file http_server.log 09:41:17.320175 ====> Client connect 09:41:17.320616 accept_connection 3 returned 4 09:41:17.320852 accept_connection 3 returned 0 09:41:17.321539 Read 93 bytes 09:41:17.321692 Process 93 bytes request 09:41:17.321777 Got request: GET /verifiedserver HTTP/1.1 09:41:17.321853 Are-we-friendly question received 09:41:17.322127 Wrote request (93 bytes) input to log/35/server.input 09:41:17.322542 Identifying ourselves as friends 09:41:17.323110 Response sent (56 bytes) and written to log/35/server.response 09:41:17.323293 special request received, no persistency 09:41:17.323359 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 1082 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind1082 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1096 ../src/curl -q --output log/41/curl1096.out --include --trace-ascii log/41/trace1096 --trace-config all --trace-time ftp://127.0.0.1:41781/dir/1096 ftp://127.0.0.1:41781/dir/1096 > log/41/stdout1096 2> log/41/stderr1096 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1102 ../src/curl -q --output log/19/curl1102.out --include --trace-ascii log/19/trace1102 --trace-config all --trace-time ftp://127.0.0.1:32777/1102 > log/19/stdout1102 2> log/19/stderr1102 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1056 ../src/curl -q --output log/43/curl1056.out --include --trace-ascii log/43/trace1056 --trace-config all --trace-time http://127.0.0.1:41267/we/are/all/twits/1056 -L > log/43/stdout1056 2> log/43/stderr1056 glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1082 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/37/server/ftp_ipv6_server.pid" --logfile "log/37/ftp_ipv6_server.log" --logdir "log/37" --portfile "log/37/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 43303 (log/37/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 126022 port 43303 * pid ftp-ipv6 => 126022 126022 test 1048...[FTP-IPv6 dir list PASV with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1048 ../src/curl -q --output log/37/curl1048.out --include --trace-ascii log/37/trace1048 --trace-config all --trace-time -g "ftp://[::1]:43303/" --interface ::1 > log/37/stdout1048 2> log/37/stderr1048 1048: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 1048 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1048 ../src/curl -q --output log/37/curl1048.out --include --trace-ascii log/37/trace1048 --trace-config all --trace-time -g "ftp://[::1]:43303/" --interface ::1 > log/37/stdout1048 2> log/37/stderr1048 === End of file commands.log === Start of file ftp_ipv6_server.log 09:41:16.700229 FTP server listens on port IPv6/43303 09:41:16.701233 logged pid 126022 in log/37/server/ftp_ipv6_server.pid 09:41:16.701535 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 09:41:16.949119 Running IPv6 version 09:41:16.950838 Listening on port 43303 09:41:16.951247 Wrote pid 126529 to log/37/server/ftp_ipv6_sockctrl.pid 09:41:16.951771 Wrote port 43303 to log/37/server/ftp_ipv6_server.port 09:41:16.951950 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 1048 === End of file server.cmd === Start of file valgrind1048 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1048 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1105 ../src/curl -q --output log/62/curl1105.out --include --trace-ascii log/62/trace1105 --trace-config all --trace-time "http://127.0.0.1:38899/we/want/1105?parm1=this*that/other/thing&parm2=foobar/1105" -c log/62/cookie1105.txt -d "userid=myname&password=mypassword" > log/62/stdout1105 2> log/62/stderr1105 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1093 ../src/curl -q --output log/6/curl1093.out --include --trace-ascii log/6/trace1093 --trace-config all --trace-time "tftp://127.0.0.1:54954//1093;mode=i" --use-ascii > log/6/stdout1093 2> log/6/stderr1093 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1109 ../src/curl -q --output log/16/curl1109.out --include --trace-ascii log/16/trace1109 --trace-config all --trace-time http://127.0.0.1:34829/1109#test > log/16/stdout1109 2> log/16/stderr1109 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1086 ../src/curl -q --output log/59/curl1086.out --include --trace-ascii log/59/trace1086 --trace-config all --trace-time ftp://127.0.0.1:43961/1086 -m 5 > log/59/stdout1086 2> log/59/stderr1086 * kill pid for ftp-ctrl => 80270 RUN: Process with pid 78816 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1108 ../src/curl -q --output log/25/curl1108.out --include --trace-ascii log/25/trace1108 --trace-config all --trace-time ftp://127.0.0.1:34069/1108 --ftp-pret > log/25/stdout1108 2> log/25/stderr1108 test 1081...[HTTP no Location: on second URL 'redirect_url' check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1081 ../src/curl -q --include --trace-ascii log/38/trace1081 --trace-config all --trace-time http://127.0.0.1:33511/we/want/our/1081 http://127.0.0.1:33511/we/want/our/10810002 -w '%{redirect_url}\n' > log/38/stdout1081 2> log/38/stderr1081 1081: stdout FAILED: --- log/38/check-expected 2025-07-18 09:41:18.960446439 +0000 +++ log/38/check-generated 2025-07-18 09:41:18.959588819 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10810099.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:33511/we/want/our/data/10810099.txt?coolsite=yes[LF] -HTTP/1.1 200 Followed here fine swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 41[CR][LF] -[CR][LF] -This second URL does not have a location[LF] -[LF] == Contents of files in the log/38/ dir after test 1081 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10810099.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:33511/we/want/our/data/10810099.txt?coolsite=yes[LF] HTTP/1.1 200 Followed here fine swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 41[CR][LF] [CR][LF] This second URL does not have a location[LF] [LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1081 ../src/curl -q --include --trace-ascii log/38/trace1081 --trace-config all --trace-time http://127.0.0.1:33511/we/want/our/1081 http://127.0.0.1:33511/we/want/our/10810002 -w '%{redirect_url}\n' > log/38/stdout1081 2> log/38/stderr1081 === End of file commands.log === Start of file http_server.log 09:41:17.378880 ====> Client connect 09:41:17.379195 accept_connection 3 returned 4 09:41:17.379365 accept_connection 3 returned 0 09:41:17.379645 Read 93 bytes 09:41:17.379769 Process 93 bytes request 09:41:17.379860 Got request: GET /verifiedserver HTTP/1.1 09:41:17.379939 Are-we-friendly question received 09:41:17.380168 Wrote request (93 bytes) input to log/38/server.input 09:41:17.380369 Identifying ourselves as friends 09:41:17.381268 Response sent (56 bytes) and written to log/38/server.response 09:41:17.381388 special request received, no persistency 09:41:17.381539 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1081 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1081 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1081 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1110 ../src/curl -q --output log/60/curl1110.out --include --trace-ascii log/60/trace1110 --trace-config all --trace-time http://127.0.0.1:38843/1110?q=foobar#fragment > log/60/stdout1110 2> log/60/stderr1110 test 1080...[HTTP Location: on two URLs 'redirect_url' check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1080 ../src/curl -q --include --trace-ascii log/40/trace1080 --trace-config all --trace-time http://127.0.0.1:42139/we/want/our/1080 http://127.0.0.1:42139/we/want/our/1080 -w '%{redirect_url}\n' > log/40/stdout1080 2> log/40/stderr1080 1080: stdout FAILED: --- log/40/check-expected 2025-07-18 09:41:19.023588787 +0000 +++ log/40/check-generated 2025-07-18 09:41:19.022588787 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10800002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:42139/we/want/our/data/10800002.txt?coolsite=yes[LF] -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10800002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:42139/we/want/our/data/10800002.txt?coolsite=yes[LF] == Contents of files in the log/40/ dir after test 1080 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10800002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:42139/we/want/our/data/10800002.txt?coolsite=yes[LF] HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10800002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:42139/we/want/our/data/10800002.txt?coolsite=yes[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1080 ../src/curl -q --include --trace-ascii log/40/trace1080 --trace-config all --trace-time http://127.0.0.1:42139/we/want/our/1080 http://127.0.0.1:42139/we/want/our/1080 -w '%{redirect_url}\n' > log/40/stdout1080 2> log/40/stderr1080 === End of file commands.log === Start of file http_server.log 09:41:17.343266 ====> Client connect 09:41:17.343701 accept_connection 3 returned 4 09:41:17.343851 accept_connection 3 returned 0 09:41:17.344003 Read 93 bytes 09:41:17.344104 Process 93 bytes request 09:41:17.344214 Got request: GET /verifiedserver HTTP/1.1 09:41:17.344317 Are-we-friendly question received 09:41:17.344662 Wrote request (93 bytes) input to log/40/server.input 09:41:17.344874 Identifying ourselves as friends 09:41:17.348975 Response sent (56 bytes) and written to log/40/server.response 09:41:17.349119 special request received, no persistency 09:41:17.349201 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd Testnum 1080 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file valgrind1080 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1080 test 1104...[HTTP cookie expiry date at Jan 1 00:00:00 GMT 1970] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1104 ../src/curl -q --output log/42/curl1104.out --include --trace-ascii log/42/trace1104 --trace-config all --trace-time http://127.0.0.1:42819/want/1104 -L -x 127.0.0.1:42819 -c log/42/cookies1104.jar > log/42/stdout1104 2> log/42/stderr1104 1104: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 1104 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1104 ../src/curl -q --output log/42/curl1104.out --include --trace-ascii log/42/trace1104 --trace-config all --trace-time http://127.0.0.1:42819/want/1104 -L -x 127.0.0.1:42819 -c log/42/cookies1104.jar > log/42/stdout1104 2> log/42/stderr1104 === End of file commands.log === Start of file http_server.log 09:41:17.773359 ====> Client connect 09:41:17.773806 accept_connection 3 returned 4 09:41:17.773978 accept_connection 3 returned 0 09:41:17.774109 Read 93 bytes 09:41:17.774209 Process 93 bytes request 09:41:17.774299 Got request: GET /verifiedserver HTTP/1.1 09:41:17.774377 Are-we-friendly question received 09:41:17.774670 Wrote request (93 bytes) input to log/42/server.input 09:41:17.774847 Identifying ourselves as friends 09:41:17.775630 Response sent (56 bytes) and written to log/42/server.response 09:41:17.775731 special request received, no persistency 09:41:17.775802 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 1104 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind1104 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp vRUN: Process with pid 78816 gracefully died algrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1104 test 1088...[HTTP, proxy with --anyauth and Location: to new host using location-trusted] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1088 ../src/curl -q --output log/44/curl1088.out --include --trace-ascii log/44/trace1088 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/10881000 -x 127.0.0.1:34655 --user iam:myself --location-trusted --anyauth > log/44/stdout1088 2> log/44/stderr1088 1088: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 1088 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1088 ../src/curl -q --output log/44/curl1088.out --include --trace-ascii log/44/trace1088 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/10881000 -x 127.0.0.1:34655 --user iam:myself --location-trusted --anyauth > log/44/stdout1088 2> log/44/stderr1088 === End of file commands.log === Start of file http_server.log 09:41:17.530851 ====> Client connect 09:41:17.531138 accept_connection 3 returned 4 09:41:17.531289 accept_connection 3 returned 0 09:41:17.531430 Read 93 bytes 09:41:17.531624 Process 93 bytes request 09:41:17.531717 Got request: GET /verifiedserver HTTP/1.1 09:41:17.531792 Are-we-friendly question received 09:41:17.532031 Wrote request (93 bytes) input to log/44/server.input 09:41:17.532230 Identifying ourselves as friends 09:41:17.536735 Response sent (56 bytes) and written to log/44/server.response 09:41:17.536872 special request received, no persistency 09:41:17.536955 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 1088 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind1088 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1088 test 1095...[HTTP with Digest and realm with quoted quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1095 ../src/curl -q --output log/45/curl1095.out --include --trace-ascii log/45/trace1095 --trace-config all --trace-time http://127.0.0.1:34239/1095 -u testuser:testpass --digest > log/45/stdout1095 2> log/45/stderr1095 1095: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 1095 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1095 ../src/curl -q --output log/45/curl1095.out --include --trace-ascii log/45/trace1095 --trace-config all --trace-time http://127.0.0.1:34239/1095 -u testuser:testpass --digest > log/45/stdout1095 2> log/45/stderr1095 === End of file commands.log === Start of file http_server.log 09:41:16.580885 ====> Client connect 09:41:16.581187 accept_connection 3 returned 4 09:41:16.581340 accept_connection 3 returned 0 09:41:16.581531 Read 93 bytes 09:41:16.581693 Process 93 bytes request 09:41:16.581785 Got request: GET /verifiedserver HTTP/1.1 09:41:16.581863 Are-we-friendly question received 09:41:16.582067 Wrote request (93 bytes) input to log/45/server.input 09:41:16.582239 Identifying ourselves as friends 09:41:16.582947 Response sent (56 bytes) and written to log/45/server.response 09:41:16.583072 special request received, no persistency 09:41:16.583131 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 1095 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind1095 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-liCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1113 ./libtest/libtests lib574 "ftp://127.0.0.1:35393/fully_simulated/DOS/*.txt" > log/39/stdout1113 2> log/39/stderr1113 nux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1095 test 1079...[HTTP retry after closed connection and empty response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1079 ../src/curl -q --output log/46/curl1079.out --include --trace-ascii log/46/trace1079 --trace-config all --trace-time http://127.0.0.1:46523/1079 -u testuser:testpass --digest > log/46/stdout1079 2> log/46/stderr1079 1079: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 1079 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1079 ../src/curl -q --output log/46/curl1079.out --include --trace-ascii log/46/trace1079 --trace-config all --trace-time http://127.0.0.1:46523/1079 -u testuser:testpass --digest > log/46/stdout1079 2> log/46/stderr1079 === End of file commands.log === Start of file http_server.log 09:41:17.443089 ====> Client connect 09:41:17.443440 accept_connection 3 returned 4 09:41:17.443836 accept_connection 3 returned 0 09:41:17.444030 Read 93 bytes 09:41:17.444156 Process 93 bytes request 09:41:17.444253 Got request: GET /verifiedserver HTTP/1.1 09:41:17.444352 Are-we-friendly question received 09:41:17.445855 Wrote request (93 bytes) input to log/46/server.input 09:41:17.446054 Identifying ourselves as friends 09:41:17.448845 Response sent (56 bytes) and written to log/46/server.response 09:41:17.448961 special request received, no persistency 09:41:17.449032 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 1079 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind1079 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1079 test 1087...[HTTP, proxy with --anyauth and Location: to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1087 ../src/curl -q --output log/48/curl1087.out --include --trace-ascii log/48/trace1087 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/10871000 -x 127.0.0.1:46339 --user iam:myself --location --anyauth > log/48/stdout1087 2> log/48/stderr1087 1087: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 1087 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1087 ../src/curl -q --output log/48/curl1087.out --include --trace-ascii log/48/trace1087 --trace-config all --trace-time http://first.host.it.is/we/want/that/page/10871000 -x 127.0.0.1:46339 --user iam:myself --location --anyauth > log/48/stdout1087 2> log/48/stderr1087 === End of file commands.log === Start of file http_server.log 09:41:17.434907 ====> Client connect 09:41:17.435236 accept_connection 3 returned 4 09:41:17.435400 accept_connection 3 returned 0 09:41:17.435689 Read 93 bytes 09:41:17.435806 Process 93 bytes request 09:41:17.435902 Got request: GET /verifiedserver HTTP/1.1 09:41:17.435995 Are-we-friendly question received 09:41:17.436258 Wrote request (93 bytes) input to log/48/server.input 09:41:17.436435 Identifying ourselves as friends 09:41:17.437345 Response sent (56 bytes) and written to log/48/server.response 09:41:17.437547 special request received, no persistency 09:41:17.437661 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 1087 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind1087 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your LCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1094 ../src/curl -q --output log/56/curl1094.out --include --trace-ascii log/56/trace1094 --trace-config all --trace-time "tftp://127.0.0.1:41264//1094;mode=netascii" > log/56/stdout1094 2> log/56/stderr1094 inux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1087 test 1077...[FTP over HTTP proxy with downgrade to HTTP 1.0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1077 ../src/curl -q --output log/55/curl1077.out --include --trace-ascii log/55/trace1077 --trace-config all --trace-time -x 127.0.0.1:33071 ftp://127.0.0.1:33071/we/want/that/page/1077 ftp://127.0.0.1:33071/we/want/that/page/10770002 > log/55/stdout1077 2> log/55/stderr1077 1077: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 1077 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1077 ../src/curl -q --output log/55/curl1077.out --include --trace-ascii log/55/trace1077 --trace-config all --trace-time -x 127.0.0.1:33071 ftp://127.0.0.1:33071/we/want/that/page/1077 ftp://127.0.0.1:33071/we/want/that/page/10770002 > log/55/stdout1077 2> log/55/stderr1077 === End of file commands.log === Start of file http_server.log 09:41:17.336907 ====> Client connect 09:41:17.337254 accept_connection 3 returned 4 09:41:17.337448 accept_connection 3 returned 0 09:41:17.337969 Read 93 bytes 09:41:17.338055 Process 93 bytes request 09:41:17.338144 Got request: GET /verifiedserver HTTP/1.1 09:41:17.338223 Are-we-friendly question received 09:41:17.338537 Wrote request (93 bytes) input to log/55/server.input 09:41:17.338747 Identifying ourselves as friends 09:41:17.340596 Response sent (56 bytes) and written to log/55/server.response 09:41:17.340748 special request received, no persistency 09:41:17.340831 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 1077 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind1077 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1077 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/61/server/http_ipv6_server.pid" --logfile "log/61/http_ipv6_server.log" --logdir "log/61" --portfile log/61/server/http_ipv6_server.port --config log/61/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 126009 port 39413 * pid http-ipv6 => 126009 126009 test 1046...[HTTP-IPv6 GET with numeric localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1046 ../src/curl -q --output log/61/curl1046.out --include --trace-ascii log/61/trace1046 --trace-config all --trace-time -g "http://[::1]:39413/1046" --interface ::1 > log/61/stdout1046 2> log/61/stderr1046 1046: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1046 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1046 ../src/curl -q --output log/61/curl1046.out --include --trace-ascii log/61/trace1046 --trace-config all --trace-time -g "http://[::1]:39413/1046" --interface ::1 > log/61/stdout1046 2> log/61/stderr1046 === End of file commands.log === Start of file http_ipv6_server.log 09:41:16.690033 Running HTTP IPv6 version on port 39413 09:41:16.690805 Wrote pid 126009 to log/61/server/http_ipv6_server.pid 09:41:16.691108 Wrote port 39413 to log/61/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1046 === End of file server.cmd === Start of file valgrind1046 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1046 test 1111...[HTTP GET with URL whose fragment contains a # (which is illegal)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1111 ../src/curl -q --output log/1/curl1111.out --include --trace-ascii log/1/trace1111 --trace-config all --trace-time http://127.0.0.1:40633/1111?q=foobar#fragment#fragment2 > log/1/stdout1111 2> log/1/stderr1111 1111: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1111 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1111 ../src/curl -q --output log/1/curl1111.out --include --trace-ascii log/1/trace1111 --trace-config all --trace-time http://127.0.0.1:40633/1111?q=foobar#fragment#fragment2 > log/1/stdout1111 2> log/1/stderr1111 === End of file commands.log === Start of file http_server.log 09:41:17.963848 ====> Client connect 09:41:17.964140 accept_connection 3 returned 4 09:41:17.964290 accept_connection 3 returned 0 09:41:17.964412 Read 93 bytes 09:41:17.964652 Process 93 bytes request 09:41:17.964753 Got request: GET /verifiedserver HTTP/1.1 09:41:17.964827 Are-we-friendly question received 09:41:17.965044 Wrote request (93 bytes) input to log/1/server.input 09:41:17.965249 Identifying ourselves as friends 09:41:17.966042 Response sent (56 bytes) and written to log/1/server.response 09:41:17.966150 special request received, no persistency 09:41:17.966211 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 1111 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind1111 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1111 test 1103...[FTP non-OS/400 server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1103 ../src/curl -q --output log/3/curl1103.out --include --trace-ascii log/3/trace1103 --trace-config all --trace-time ftp://127.0.0.1:42255/1103 > log/3/stdout1103 2> log/3/stderr1103 1103: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1103 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1103 ../src/curl -q --output log/3/curl1103.out --include --trace-ascii log/3/trace1103 --trace-config all --trace-time ftp://127.0.0.1:42255/1103 > log/3/stdout1103 2> log/3/stderr1103 === End of file commands.log === Start of file ftp_server.log 09:41:17.555000 ====> Client connect 09:41:17.556649 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.561327 < "USER anonymous" 09:41:17.563003 > "331 We are happy you popped in![CR][LF]" 09:41:17.567022 < "PASS ftp@example.com" 09:41:17.568576 > "230 Welcome you silly person[CR][LF]" 09:41:17.570072 < "PWD" 09:41:17.570735 > "257 "/" is current directory[CR][LF]" 09:41:17.573028 < "EPSV" 09:41:17.573347 ====> Passive DATA channel requested by client 09:41:17.573578 DATA sockfilt for passive data channel starting... 09:41:17.593407 DATA sockfilt for passive data channel started (pid 128233) 09:41:17.595208 DATA sockfilt for passive data channel listens on port 40867 09:41:17.596334 > "229 Entering Passive Mode (|||40867|)[LF]" 09:41:17.596830 Client has been notified that DATA conn will be accepted on port 40867 09:41:17.599737 Client connects to port 40867 09:41:17.600107 ====> Client established passive DATA connection on port 40867 09:41:17.600988 < "TYPE I" 09:41:17.601398 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:17.604125 < "SIZE verifiedserver" 09:41:17.605358 > "213 17[CR][LF]" 09:41:17.607397 < "RETR verifiedserver" 09:41:17.608268 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:17.610576 =====> Closing passive DATA connection... 09:41:17.611261 Server disconnects passive DATA connection 09:41:17.613318 Server disconnected passive DATA connection 09:41:17.613682 DATA sockfilt for passive data channel quits (pid 128233) 09:41:17.615940 DATA sockfilt for passive data channel quit (pid 128233) 09:41:17.616183 =====> Closed passive DATA connection 09:41:17.616493 > "226 File transfer complete[CR][LF]" 09:41:17.654439 < "QUIT" 09:41:17.654851 > "221 bye bye baby[CR][LF]" 09:41:17.657964 MAIN sockfilt said DISC 09:41:17.658329 ====> Client disconnected 09:41:17.658995 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:17.807922 ====> Client connect 09:41:17.810814 Received DATA (on stdin) 09:41:17.810978 > 160 bytes data, server => client 09:41:17.811079 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:17.811157 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:17.811239 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:17.813587 < 16 bytes data, client => server 09:41:17.813814 'USER anonymous\r\n' 09:41:17.815596 Received DATA (on stdin) 09:41:17.815822 > 33 bytes data, server => client 09:41:17.816038 '331 We are happy you popped in!\r\n' 09:41:17.819943 < 22 bytes data, client => server 09:41:17.820076 'PASS ftp@example.com\r\n' 09:41:17.821094 Received DATA (on stdin) 09:41:17.821234 > 30 bytes data, server => client 09:41:17.821429 '230 Welcome you silly person\r\n' 09:41:17.822833 < 5 bytes data, client => server 09:41:17.822973 'PWD\r\n' 09:41:17.824839 Received DATA (on stdin) 09:41:17.824987 > 30 bytes data, server => client 09:41:17.825091 '257 "/" is current directory\r\n' 09:41:17.825868 < 6 bytes data, client => server 09:41:17.826026 'EPSV\r\n' 09:41:17.851118 Received DATA (on stdin) 09:41:17.851263 > 38CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1116 ../src/curl -q --output log/64/curl1116.out --include --trace-ascii log/64/trace1116 --trace-config all --trace-time http://127.0.0.1:33073/1116 -D log/64/heads1116 > log/64/stdout1116 2> log/64/stderr1116 bytes data, server => client 09:41:17.851409 '229 Entering Passive Mode (|||40867|)\n' 09:41:17.852840 < 8 bytes data, client => server 09:41:17.852994 'TYPE I\r\n' 09:41:17.855427 Received DATA (on stdin) 09:41:17.855761 > 33 bytes data, server => client 09:41:17.855889 '200 I modify TYPE as you wanted\r\n' 09:41:17.856930 < 21 bytes data, client => server 09:41:17.857078 'SIZE verifiedserver\r\n' 09:41:17.858255 Received DATA (on stdin) 09:41:17.858415 > 8 bytes data, server => client 09:41:17.858669 '213 17\r\n' 09:41:17.860309 < 21 bytes data, client => server 09:41:17.860552 'RETR verifiedserver\r\n' 09:41:17.861623 Received DATA (on stdin) 09:41:17.861780 > 29 bytes data, server => client 09:41:17.862543 '150 Binary junk (17 bytes).\r\n' 09:41:17.870616 Received DATA (on stdin) 09:41:17.870756 > 28 bytes data, server => client 09:41:17.870836 '226 File transfer complete\r\n' 09:41:17.905263 < 6 bytes data, client => server 09:41:17.905428 'QUIT\r\n' 09:41:17.908981 Received DATA (on stdin) 09:41:17.909075 > 18 bytes data, server => client 09:41:17.909156 '221 bye bye baby\r\n' 09:41:17.909735 ====> Client disconnect 09:41:17.913233 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.844568 Running IPv4 version 09:41:17.845226 Listening on port 40867 09:41:17.846651 Wrote pid 128233 to log/3/server/ftp_sockdata.pid 09:41:17.846834 Received PING (on stdin) 09:41:17.847678 Received PORT (on stdin) 09:41:17.853188 ====> Client connect 09:41:17.862954 Received DATA (on stdin) 09:41:17.863102 > 17 bytes data, server => client 09:41:17.865327 'WE ROOLZ: 77381\r\n' 09:41:17.865840 Received DISC (on stdin) 09:41:17.866002 ====> Client forcibly disconnected 09:41:17.867786 Received QUIT (on stdin) 09:41:17.867907 quits 09:41:17.868309 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "C:/somedir" is the current directory REPLY SYST 215 unknown-OS runs this server Testnum 1103 === End of file server.cmd === Start of file valgrind1103 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1103 test 1115...[HTTP GET with unexpected 1xx response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1115 ../src/curl -q --output log/5/curl1115.out --include --trace-ascii log/5/trace1115 --trace-config all --trace-time http://127.0.0.1:33413/1115 > log/5/stdout1115 2> log/5/stderr1115 1115: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1115 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1115 ../src/curl -q --output log/5/curl1115.out --include --trace-ascii log/5/trace1115 --trace-config all --trace-time http://127.0.0.1:33413/1115 > log/5/stdout1115 2> log/5/stderr1115 === End of file commands.log === Start of file http_server.log 09:41:18.255242 ====> Client connect 09:41:18.255673 accept_connection 3 returned 4 09:41:18.255857 accept_connection 3 returned 0 09:41:18.256842 Read 93 bytes 09:41:18.256992 Process 93 bytes request 09:41:18.257081 Got request: GET /verifiedserver HTTP/1.1 09:41:18.257160 Are-we-friendly question received 09:41:18.257395 Wrote request (93 bytes) input to log/5/server.input 09:41:18.257684 Identifying ourselves as friends 09:41:18.259598 Response sent (56 bytes) and written to log/5/server.response 09:41:18.259727 special request received, no persistency 09:41:18.259796 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1115 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind1115 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1115 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/6/server/tftp_server.pid" --portfile "log/6/server/tftp_server.port" --logfile "log/6/tftp_server.log" --logdir "log/6" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 127218 port 54954 * pid tftp => 127218 127218 test 1093...[TFTP retrieve with mode=i] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1093 ../src/curl -q --output log/6/curl1093.out --include --trace-ascii log/6/trace1093 --trace-config all --trace-time "tftp://127.0.0.1:54954//1093;mode=i" --use-ascii > log/6/stdout1093 2> log/6/stderr1093 1093: protocol FAILECMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1099 ../src/curl -q --include --trace-ascii log/33/trace1099 --trace-config all --trace-time tftp://127.0.0.1:42512/an/invalid-file tftp://127.0.0.1:42512//1099 > log/33/stdout1099 2> log/33/stderr1099 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1061 ../src/curl -q --output log/27/curl1061.out --include --trace-ascii log/27/trace1061 --trace-config all --trace-time http://test.remote.haxx.se.1061:8990/path/10610002 --proxy http://127.0.0.1:42323 --proxy-user silly:person --proxy-digest --proxytunnel > log/27/stdout1061 2> log/27/stderr1061 D! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1093 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1093 ../src/curl -q --output log/6/curl1093.out --include --trace-ascii log/6/trace1093 --trace-config all --trace-time "tftp://127.0.0.1:54954//1093;mode=i" --use-ascii > log/6/stdout1093 2> log/6/stderr1093 === End of file commands.log === Start of file server.cmd Testnum 1093 === End of file server.cmd === Start of file tftp_server.log 09:41:17.601562 Wrote pid 127218 to log/6/server/tftp_server.pid 09:41:17.602134 Wrote port 54954 to log/6/server/tftp_server.port 09:41:17.602242 Running IPv4 version on port UDP/54954 === End of file tftp_server.log === Start of file valgrind1093 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1093 test 1107...[FTP RETR PASV with PRET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1107 ../src/curl -q --output log/13/curl1107.out --include --trace-ascii log/13/trace1107 --trace-config all --trace-time ftp://127.0.0.1:34087/1107 --ftp-pret > log/13/stdout1107 2> log/13/stderr1107 1107: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 1107 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1107 ../src/curl -q --output log/13/curl1107.out --include --trace-ascii log/13/trace1107 --trace-config all --trace-time ftp://127.0.0.1:34087/1107 --ftp-pret > log/13/stdout1107 2> log/13/stderr1107 === End of file commands.log === Start of file ftp_server.log 09:41:17.621994 ====> Client connect 09:41:17.624268 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.626504 < "USER anonymous" 09:41:17.627381 > "331 We are happy you popped in![CR][LF]" 09:41:17.629422 < "PASS ftp@example.com" 09:41:17.630278 > "230 Welcome you silly person[CR][LF]" 09:41:17.632227 < "PWD" 09:41:17.633362 > "257 "/" is current directory[CR][LF]" 09:41:17.635063 < "EPSV" 09:41:17.635307 ====> Passive DATA channel requested by client 09:41:17.635430 DATA sockfilt for passive data channel starting... 09:41:17.648272 DATA sockfilt for passive data channel started (pid 128352) 09:41:17.649657 DATA sockfilt for passive data channel listens on port 41525 09:41:17.650183 > "229 Entering Passive Mode (|||41525|)[LF]" 09:41:17.650465 Client has been notified that DATA conn will be accepted on port 41525 09:41:17.654040 Client connects to port 41525 09:41:17.654346 ====> Client established passive DATA connection on port 41525 09:41:17.655192 < "TYPE I" 09:41:17.656565 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:17.657869 < "SIZE verifiedserver" 09:41:17.658703 > "213 17[CR][LF]" 09:41:17.661468 < "RETR verifiedserver" 09:41:17.661993 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:17.664083 =====> Closing passive DATA connection... 09:41:17.664347 Server disconnects passive DATA connection 09:41:17.667481 Server disconnected passive DATA connection 09:41:17.667848 DATA sockfilt for passive data channel quits (pid 128352) 09:41:17.670237 DATA sockfilt for passive data channel quit (pid 128352) 09:41:17.670699 =====> Closed passive DATA connection 09:41:17.671487 > "226 File transfer complete[CR][LF]" 09:41:17.706375 < "QUIT" 09:41:17.710923 > "221 bye bye baby[CR][LF]" 09:41:17.711663 MAIN sockfilt said DISC 09:41:17.712061 ====> Client disconnected 09:41:17.712521 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:16.875037 ====> Client connect 09:41:16.876899 Received DATA (on stdin) 09:41:16.877042 > 160 bytes data, server => client 09:41:16.877230 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:16.877339 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:16.877414 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:16.879112 < 16 bytes data, client => server 09:41:16.879333 'USER anonymous\r\n' 09:41:16.880687 Received DATA (on stdin) 09:41:16.880882 > 33 bytes data, server => client 09:41:16.881406 '331 We are happy you popped in!\r\n' 09:41:16.882442 < 22 bytes data, client => server 09:41:16.882677 'PASS ftp@example.com\r\n' 09:41:16.883623 Received DATA (on stdin) 09:41:16.883760 > 30 bytes data, server => client 09:41:16.884409 '230 Welcome you silly person\r\n' 09:41:16.885151 < 5 bytes data, client => server 09:41:16.885287 'PWD\r\n' 09:41:16.886296 Received DATA (on stdin) 09:41:16.886432 > 30 bytes data, server => client 09:41:16.886692 '257 "/" is current directory\r\n' 09:41:16.888078 < 6 bytes data, client => server 09:41:16.888242 'EPSV\r\n' 09:41:16.904701 Received DATA (on stdin) 09:41:16.904945 > 38 bytes data, server => client 09:41:16.905055 '229 Entering Passive Mode (|||41525|)\n' 09:41:16.907398 < 8 bytes data, client => server 09:41:16.907564 'TYPE I\r\n' 09:41:16.909256 Received DATA (on stdin) 09:41:16.909392 > 33 bytes data, server => client 09:41:16.909621 '200 I modify TYPE as you wanted\r\n' 09:41:16.910742 < 21 bytes data, client => server 09:41:16.910881 'SIZE verifiedserver\r\n' 09:41:16.912061 Received DATA (on stdin) 09:41:16.912221 > 8 bytes data, server => client 09:41:16.912970 '213 17\r\n' 09:41:16.914062 < 21 bytes data, client => server 09:41:16.914284 'RETR verifiedserver\r\n' 09:41:16.916357 Received DATA (on stdin) 09:41:16.916573 > 29 bytes data, server => client 09:41:16.916721 '150 Binary junk (17 bytes).\r\n' 09:41:16.925622 Received DATA (on stdin) 09:41:16.925788 > 28 bytes data, server => client 09:41:16.925896 '226 File transfer complete\r\n' 09:41:16.959101 < 6 bytes data, client => server 09:41:16.959293 'QUIT\r\n' 09:41:16.960573 Received DATA (on stdin) 09:41:16.960747 > 18 bytes data, server => client 09:41:16.960953 '221 bye bye baby\r\n' 09:41:16.965124 ====> Client disconnect 09:41:16.966557 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.899835 Running IPv4 version 09:41:17.900670 Listening on port 41525 09:41:17.901171 Wrote pid 128352 to log/13/server/ftp_sockdata.pid 0CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1060 ../src/curl -q --output log/30/curl1060.out --include --trace-ascii log/30/trace1060 --trace-config all --trace-time http://test.remote.haxx.se.1060:8990/path/10600002 --proxy http://127.0.0.1:43913 --proxy-user silly:person --proxy-digest --proxytunnel > log/30/stdout1060 2> log/30/stderr1060 9:41:17.901426 Received PING (on stdin) 09:41:17.902699 Received PORT (on stdin) 09:41:17.907083 ====> Client connect 09:41:17.916055 Received DATA (on stdin) 09:41:17.916196 > 17 bytes data, server => client 09:41:17.918544 'WE ROOLZ: 79551\r\n' 09:41:17.919087 Received DISC (on stdin) 09:41:17.919433 ====> Client forcibly disconnected 09:41:17.921930 Received QUIT (on stdin) 09:41:17.922067 quits 09:41:17.922567 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PRET 200 fine Testnum 1107 === End of file server.cmd === Start of file valgrind1107 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1107 test 1109...[HTTP GET with URL that contains fragment after the path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1109 ../src/curl -q --output log/16/curl1109.out --include --trace-ascii log/16/trace1109 --trace-config all --trace-time http://127.0.0.1:34829/1109#test > log/16/stdout1109 2> log/16/stderr1109 1109: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 1109 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1109 ../src/curl -q --output log/16/curl1109.out --include --trace-ascii log/16/trace1109 --trace-config all --trace-time http://127.0.0.1:34829/1109#test > log/16/stdout1109 2> log/16/stderr1109 === End of file commands.log === Start of file http_server.log 09:41:17.858299 ====> Client connect 09:41:17.858785 accept_connection 3 returned 4 09:41:17.858955 accept_connection 3 returned 0 09:41:17.859092 Read 93 bytes 09:41:17.859223 Process 93 bytes request 09:41:17.859530 Got request: GET /verifiedserver HTTP/1.1 09:41:17.859704 Are-we-friendly question received 09:41:17.860059 Wrote request (93 bytes) input to log/16/server.input 09:41:17.860408 Identifying ourselves as friends 09:41:17.867281 Response sent (56 bytes) and written to log/16/server.response 09:41:17.867391 special request received, no persistency 09:41:17.867544 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 1109 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind1109 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1109 test 1102...[FTP OS/400 server name format check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1102 ../src/curl -q --output log/19/curl1102.out --include --trace-ascii log/19/trace1102 --trace-config all --trace-time ftp://127.0.0.1:32777/1102 > log/19/stdout1102 2> log/19/stderr1102 1102: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 1102 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1102 ../src/curl -q --output log/19/curl1102.out --include --trace-ascii log/19/trace1102 --trace-config all --trace-time ftp://127.0.0.1:32777/1102 > log/19/stdout1102 2> log/19/stderr1102 === End of file commands.log === Start of file ftp_server.log 09:41:17.573489 ====> Client connect 09:41:17.574925 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.577636 < "USER anonymous" 09:41:17.578590 > "331 We are happy you popped in![CR][LF]" 09:41:17.581581 < "PASS ftp@example.com" 09:41:17.582509 > "230 Welcome you silly person[CR][LF]" 09:41:17.585292 < "PWD" 09:41:17.586298 > "257 "/" is current directory[CR][LF]" 09:41:17.588953 < "EPSV" 09:41:17.589258 ====> Passive DATA channel requested by client 09:41:17.589449 DATA sockfilt for passive data channel starting... 09:41:17.613953 DATA sockfilt for passive data channel started (pid 128272) 09:41:17.615174 DATA sockfilt for passive data channel listens on port 34925 09:41:17.617178 > "229 Entering Passive Mode (|||34925|)[LF]" 09:41:17.617482 Client has been notified that DATA conn will be accepted on port 34925 09:41:17.619827 Client connects to port 34925 09:41:17.620191 ====> Client established passive DATA connection on port 34925 09:41:17.621143 < "TYPE I" 09:41:17.621605 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:17.624055 < "SIZE verifiedserver" 09:41:17.625240 > "213 17[CR][LF]" 09:41:17.627368 < "RETR verifiedserver" 09:41:17.628933 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:17.630279 =====> Closing passive DATA connection... 09:41:17.630648 Server disconnects passive DATA connection 09:41:17.632423 Server disconnected passive DATA connection 09:41:17.632840 DATA sockfilt for passive data channel quits (pid 128272) 09:41:17.635087 DATA sockfilt for passive data channel quit (pid 128272) 09:41:17.635363 =====> Closed passive DATA connection 09:41:17.635826 > "226 File transfer complete[CR][LF]" 09:41:17.676694 < "QUIT" 09:41:17.677973 > "221 bye bye baby[CR][LF]" 09:41:17.697109 MAIN sockfilt said DISC 09:41:17.699288 ====> Client disconnected 09:41:17.700054 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:17.826333 ====> Client connect 09:41:17.828972 Received DATA (on stdin) 09:41:17.829101 > 160 bytes data, server => client 09:41:17.829199 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:17.829290 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:17.829366 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:17.830210 < 16 bytes data, client => server 09:41:17.830367 'USER anonymous\r\n' 09:41:17.831824 Received DATA (on stdin) 09:41:17.831998 > 33 bytes data, server => client 09:41:17.832806 '331 We are happy you popped in!\r\n' 09:41:17.834055 < 22 bytes data, client => server 09:41:17.834345 'PASS ftp@example.com\r\n' 09:41:17.835854 Received DATA (on stdin) 09:41:17.836019 > 30 bytes data, server => client 09:41:17.836573 '230 Welcome you silly person\r\n' 09:41:17.837948 < 5 bytes data, client => server 09:41:17.838192 'PWD\r\n' 09:41:17.839652 Received DATA (on stdin) 09:41:17.839815 > 30 bytes data, server => client 09:41:17.840320 '257 "/" is current directory\r\n' 09:41:17.841698 < 6 bytes data, client => server 09:41:17.841853 'EPSV\r\n' 09:41:17.869597 Received DATA (on stdin) 09:41:17.869797 > 38 bytes data, server => client 09:41:17.871600 '229 Entering Passive Mode (|||34925|)\n' 09:41:17.873291 < 8 bytes data, client => server 09:41:17.873688 'TYPE I\r\n' 09:41:17.875822 Received DATA (on stdin) 09:41:17.875971 > 33 bytes data, server => client 09:41:17.876048 '200 I modify TYPE as you wanted\r\n' 09:41:17.876749 < 21 bytes data, client => server 09:41:17.876894 'SIZE verifiedserver\r\n' 09:41:17.878374 Received DATA (on stdin) 09:41:17.878724 > 8 bytes data, server => client 09:41:17.879391 '213 17\r\n' 09:41:17.880152 < 21 bytes data, client => server 09:41:17.880293 'RETR verifiedserver\r\n' 09:41:17.881567 Received DATA (on stdin) 09:41:17.881732 > 29 bytes data, server => client 09:41:17.881926 '150 Binary junk (17 bytes).\r\n' 09:41:17.889898 Received DATA (on stdin) 09:41:17.890035 > 28 bytes data, server => client 09:41:17.890124 '226 File transfer complete\r\n' 09:41:17.927897 < 6 bytes data, client => server 09:41:17.928235 'QUIT\r\n' 09:41:17.933770 Received DATA (on stdin) 09:41:17.933997 > 18 bytes data, server => client 09:41:17.934134 '221 bye bye baby\r\n' 09:41:17.948702 ====> Client disconnect 09:41:17.951699 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.865911 Running IPv4 version 09:41:17.866641 Listening on port 34925 09:41:17.867083 Wrote pid 128272 to log/19/server/ftp_sockdata.pid 09:41:17.867260 Received PING (on stdin) 09:41:17.868162 Received PORT (on stdin) 09:41:17.873006 ====> Client connect 09:41:17.883078 Received DATA (on stdin) 09:41:17.883278 > 17 bytes data, server => client 09:41:17.884685 'WE ROOLZ: 89661\r\n' 09:41:17.885052 Received DISC (on stdin) 09:41:17.885209 ====> Client forcibly disconnected 09:41:17.886868 Received QUIT (on stdin) 09:41:17.886993 quits 09:41:17.887430 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "QGPL" is the current library REPLY SYST 215 OS/400 runs this server REPLY SITE 250 Name format set to 1 Testnum 1102 === End of file server.cmd === Start of file valgrind1102 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1102 setenv no_proxy = 127.0.0.1 setenv http_proxy = http://non-existing-host.haxx.se:3128/ test 1101...[NO_PROXY test, with user name in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1101 ../src/curl -q --output log/21/curl1101.out --include --trace-ascii log/21/trace1101 --trace-config all --trace-time http://user:secret@127.0.0.1:34827/gimme/1101 > log/21/stdout1101 2> log/21/stderr1101 1101: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 1101 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1101 ../src/curl -q --output log/21/curl1101.out --include --trace-ascii log/21/trace1101 --trace-config all --trace-time http://user:secret@127.0.0.1:34827/gimme/1101 > log/21/stdout1101 2> log/21/stderr1101 === End of file commands.log === Start of file http_server.log 09:41:17.769981 ====> Client connect 09:41:17.770299 accept_connection 3 returned 4 09:41:17.770775 accept_connection 3 returned 0 09:41:17.775989 Read 93 bytes 09:41:17.776140 Process 93 bytes request 09:41:17.776222 Got request: GET /verifiedserver HTTP/1.1 09:41:17.776296 Are-we-friendly question received 09:41:17.776612 Wrote request (93 bytes) input to log/21/server.input 09:41:17.776871 Identifying ourselves as friends 09:41:17.777554 Response sent (56 bytes) and written to log/21/server.response 09:41:17.777753 special request received, no persistency 09:41:17.777816 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 1101 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind1101 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1101 test 1108...[FTP RETR PASV with PRET not supported] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1108 ../src/curl -q --output log/25/curl1108.out --include --trace-ascii log/25/trace1108 --trace-config all --trace-time ftp://127.0.0.1:34069/1108 --ftp-pret > log/25/stdout1108 2> log/25/stderr1108 1108: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 1108 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1108 ../src/curl -q --output log/25/curl1108.out --include --trace-ascii log/25/trace1108 --trace-config all --trace-time ftp://127.0.0.1:34069/1108 --ftp-pret > log/25/stdout1108 2> log/25/stderr1108 === End of file commands.log === Start of file ftp_server.log 09:41:17.662901 ====> Client connect 09:41:17.666404 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.669334 < "USER anonymous" 09:41:17.671045 > "331 We are happy you popped in![CR][LF]" 09:41:17.672409 < "PASS ftp@example.com" 09:41:17.673450 > "230 Welcome you silly person[CR][LF]" 09:41:17.679599 < "PWD" 09:41:17.680719 > "257 "/" is current directory[CR][LF]" 09:41:17.689613 < "EPSV" 09:41:17.690193 ====> Passive DATA channel requested by client 09:41:17.690429 DATA sockfilt for passive data channel starting... 09:41:17.722881 DATA sockfilt for passive data channel started (pid 128446) 09:41:17.726574 DATA sockfilt for passive data channel listens on port 45395 09:41:17.727142 > "229 Entering Passive Mode (|||45395|)[LF]" 09:41:17.727404 Client has been notified that DATA conn will be accepted on port 45395 09:41:17.735734 Client connects to port 45395 09:41:17.736113 ====> Client established passive DATA connection on port 45395 09:41:17.737844 < "TYPE I" 09:41:17.741199 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:17.742035 < "SIZE verifiedserver" 09:41:17.744692 > "213 17[CR][LF]" 09:41:17.745605 < "RETR verifiedserver" 09:41:17.746168 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:17.746963 =====> Closing passive DATA connection... 09:41:17.747216 Server disconnects passive DATA connection 09:41:17.750116 Server disconnected passive DATA connection 09:41:17.750427 DATA sockfilt for passive data channel quits (pid 128446) 09:41:17.752657 DATA sockfilt for passive data channel quit (pid 128446) 09:41:17.753120 =====> Closed passive DATA connection 09:41:17.754139 > "226 File transfer complete[CR][LF]" 09:41:17.800148 < "QUIT" 09:41:17.800608 > "221 bye bye baby[CR][LF]" 09:41:17.806986 MAIN sockfilt said DISC 09:41:17.807393 ====> Client disconnected 09:41:17.808038 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:17.915917 ====> Client connect 09:41:17.917997 Received DATA (on stdin) 09:41:17.918353 > 160 bytes data, server => client 09:41:17.918827 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:17.919085 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:17.919258 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:17.921957 < 16 bytes data, client => server 09:41:17.922103 'USER anonymous\r\n' 09:41:17.923420 Received DATA (on stdin) 09:41:17.923706 > 33 bytes data, server => client 09:41:17.923983 '331 We are happy you popped in!\r\n' 09:41:17.925258 < 22 bytes data, client => server 09:41:17.925383 'PASS ftp@example.com\r\n' 09:41:17.926756 Received DATA (on stdin) 09:41:17.926898 > 30 bytes data, server => client 09:41:17.927862 '230 Welcome you silly person\r\n' 09:41:17.929110 < 5 bytes data, client => server 09:41:17.929620 'PWD\r\n' 09:41:17.935648 Received DATA (on stdin) 09:41:17.935927 > 30 bytes data, server => client 09:41:17.936253 '257 "/" is current directory\r\n' 09:41:17.939579 < 6 bytes data, client => server 09:41:17.939787 'EPSV\r\n' 09:41:17.984592 Received DATA (on stdin) 09:41:17.984759 > 38 bytes data, server => client 09:41:17.984841 '229 Entering Passive Mode (|||45395|)\n' 09:41:17.987231 < 8 bytes data, client => server 09:41:17.987994 'TYPE I\r\n' 09:41:17.993184 Received DATA (on stdin) 09:41:17.993431 > 33 bytes data, server => client 09:41:17.993726 '200 I modify TYPE as you wanted\r\n' 09:41:17.994338 < 21 bytes data, client => server 09:41:17.994558 'SIZE verifiedserver\r\n' 09:41:17.996249 Received DATA (on stdin) 09:41:17.996436 > 8 bytes data, server => client 09:41:17.996894 '213 17\r\n' 09:41:17.997971 < 21 bytes data, client => server 09:41:17.998139 'RETR verifiedserver\r\n' 09:41:18.001164 Received DATA (on stdin) 09:41:18.001305 > 29 bytes data, server => client 09:41:18.001396 '150 Binary junk (17 bytes).\r\n' 09:41:18.007275 Received DATA (on stdin) 09:41:18.007445 > 28 bytes data, server => client 09:41:18.008377 '226 File transfer complete\r\n' 09:41:18.049663 < 6 bytes data, client => server 09:41:18.049870 'QUIT\r\n' 09:41:18.054760 Received DATA (on stdin) 09:41:18.054920 > 18 bytes data, server => client 09:41:18.055009 '221 bye bye baby\r\n' 09:41:18.059648 ====> Client disconnect 09:41:18.062433 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.975098 Running IPv4 version 09:41:17.975693 Listening on port 45395 09:41:17.976081 Wrote pid 128446 to log/25/server/ftp_sockdata.pid 09:41:17.976239 Received PING (on stdin) 09:41:17.979448 Received PORT (on stdin) 09:41:17.988785 ====> Client connect 09:41:18.001818 Received DATA (on stdin) 09:41:18.002006 > 17 bytes data, server => client 09:41:18.002114 'WE ROOLZ: 87701\r\n' 09:41:18.002425 Received DISC (on stdin) 09:41:18.002683 ====> Client forcibly disconnected 09:41:18.004581 Received QUIT (on stdin) 09:41:18.004751 quits 09:41:18.005236 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PRET 550 unknown command Testnum 1108 === End of file server.cmd === Start of file valgrind1108 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1108 test 1091...[FTP URL with type=i] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1091 ../src/curl -q --output log/28/curl1091.out --include --trace-ascii log/28/trace1091 --trace-config all --trace-time "ftp://127.0.0.1:34373/%2ftmp/moo/1091;type=i" --use-ascii > log/28/stdout1091 2> log/28/stderr1091 1091: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 1091 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1091 ../src/curl -q --output log/28/curl1091.out --include --trace-ascii log/28/trace1091 --trace-config all --trace-time "ftp://127.0.0.1:34373/%2ftmp/moo/1091;type=i" --use-ascii > log/28/stdout1091 2> log/28/stderr1091 === End of file commands.log === Start of file ftp_server.log 09:41:17.447966 ====> Client connect 09:41:17.449295 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.453408 < "USER anonymous" 09:41:17.453895 > "331 We are happy you popped in![CR][LF]" 09:41:17.457626 < "PASS ftp@example.com" 09:41:17.458161 > "230 Welcome you silly person[CR][LF]" 09:41:17.461523 < "PWD" 09:41:17.462022 > "257 "/" is current directory[CR][LF]" 09:41:17.467320 < "EPSV" 09:41:17.467597 ====> Passive DATA channel requested by client 09:41:17.467901 DATA sockfilt for passive data channel starting... 09:41:17.506939 DATA sockfilt for passive data channel started (pid 128049) 09:41:17.508012 DATA sockfilt for passive data channel listens on port 33619 09:41:17.508453 > "229 Entering Passive Mode (|||33619|)[LF]" 09:41:17.508717 Client has been notified that DATA conn will be accepted on port 33619 09:41:17.512426 Client connects to port 33619 09:41:17.512730 ====> Client established passive DATA connection on port 33619 09:41:17.516378 < "TYPE I" 09:41:17.516983 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:17.523417 < "SIZE verifiedserver" 09:41:17.526427 > "213 17[CR][LF]" 09:41:17.534030 < "RETR verifiedserver" 09:41:17.539369 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:17.543060 =====> Closing passive DATA connection... 09:41:17.543377 Server disconnects passive DATA connection 09:41:17.546839 Server disconnected passive DATA connection 09:41:17.547149 DATA sockfilt for passive data channel quits (pid 128049) 09:41:17.565971 DATA sockfilt for passive data channel quit (pid 128049) 09:41:17.566278 =====> Closed passive DATA connection 09:41:17.566610 > "226 File transfer complete[CR][LF]" 09:41:17.588557 < "QUIT" 09:41:17.589119 > "221 bye bye baby[CR][LF]" 09:41:17.601171 MAIN sockfilt said DISC 09:41:17.602307 ====> Client disconnected 09:41:17.605289 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:16.698760 ====> Client connect 09:41:16.702997 Received DATA (on stdin) 09:41:16.703173 > 160 bytes data, server => client 09:41:16.703257 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:16.703328 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:16.703399 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:16.706055 < 16 bytes data, client => server 09:41:16.706213 'USER anonymous\r\n' 09:41:16.709567 Received DATA (on stdin) 09:41:16.709740 > 33 bytes data, server => client 09:41:16.709840 '331 We are happy you popped in!\r\n' 09:41:16.710560 < 22 bytes data, client => server 09:41:16.710712 'PASS ftp@example.com\r\n' 09:41:16.713565 Received DATA (on stdin) 09:41:16.713728 > 30 bytes data, server => client 09:41:16.713812 '230 Welcome you silly person\r\n' 09:41:16.714439 < 5 bytes data, client => server 09:41:16.714647 'PWD\r\n' 09:41:16.716573 Received DATA (on stdin) 09:41:16.716749 > 30 bytes data, server => client 09:41:16.716855 '257 "/" is current directory\r\n' 09:41:16.717582 < 6 bytes data, client => server 09:41:16.717725 'EPSV\r\n' 09:41:16.762566 Received DATA (on stdin) 09:41:16.762736 > 38 bytes data, server => client 09:41:16.762827 '229 Entering Passive Mode (|||33619|)\n' 09:41:16.766951 < 8 bytes data, client => server 09:41:16.767081 'TYPE I\r\n' 09:41:16.774579 Received DATA (on stdin) 09:41:16.774759 > 33 bytes data, server => client 09:41:16.774854 '200 I modify TYPE as you wanted\r\n' 09:41:16.775990 < 21 bytes data, client => server 09:41:16.776135 'SIZE verifiedserver\r\n' 09:41:16.779751 Received DATA (on stdin) 09:41:16.779915 > 8 bytes data, server => client 09:41:16.780553 '213 17\r\n' 09:41:16.786632 < 21 bytes data, client => server 09:41:16.786832 'RETR verifiedserver\r\n' 09:41:16.788589 Received DATA (on stdin) 09:41:16.788969 > 29 bytes data, server => client 09:41:16.797514 '150 Binary junk (17 bytes).\r\n' 09:41:16.820744 Received DATA (on stdin) 09:41:16.820890 > 28 bytes data, server => client 09:41:16.820987 '226 File transfer complete\r\n' 09:41:16.840943 < 6 bytes data, client => server 09:41:16.841391 'QUIT\r\n' 09:41:16.851118 Received DATA (on stdin) 09:41:16.851257 > 18 bytes data, server => client 09:41:16.851415 '221 bye bye baby\r\n' 09:41:16.854583 ====> Client disconnect 09:41:16.855192 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.752058 Running IPv4 version 09:41:17.752597 Listening on port 33619 09:41:17.755625 Wrote pid 128049 to log/28/server/ftp_sockdata.pid 09:41:17.755847 Received PING (on stdin) 09:41:17.761111 Received PORT (on stdin) 09:41:17.765805 ====> Client connect 09:41:17.798415 Received DATA (on stdin) 09:41:17.798691 > 17 bytes data, server => client 09:41:17.798785 'WE ROOLZ: 77437\r\n' 09:41:17.799105 Received DISC (on stdin) 09:41:17.799309 ====> Client forcibly disconnected 09:41:17.808587 Received QUIT (on stdin) 09:41:17.808820 quits 09:41:17.809326 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1091 === End of file server.cmd === Start of file valgrind1091 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1091 setenv ftp_proxy = http://127.0.0.1:33117/ test 1106...[FTP URL and with ftp_proxy environment variable set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1106 ../src/curl -q --output log/34/curl1106.out --include --trace-ascii log/34/trace1106 --trace-config all --trace-time ftp://127.0.0.1:23456/1106 > log/34/stdout1106 2> log/34/stderr1106 1106: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 1106 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1106 ../src/curl -q --output log/34/curl1106.out --include --trace-ascii log/34/trace1106 --trace-config all --trace-time ftp://127.0.0.1:23456/1106 > log/34/stdout1106 2> log/34/stderr1106 === End of file commands.log === Start of file http_server.log 09:41:17.939739 ====> Client connect 09:41:17.940167 accept_connection 3 returned 4 09:41:17.940380 accept_connection 3 returned 0 09:41:17.941274 Read 93 bytes 09:41:17.941421 Process 93 bytes request 09:41:17.941584 Got request: GET /verifiedserver HTTP/1.1 09:41:17.941681 Are-we-friendly question received 09:41:17.941919 Wrote request (93 bytes) input to log/34/server.input 09:41:17.942321 Identifying ourselves as friends 09:41:17.947280 Response sent (56 bytes) and written to log/34/server.response 09:41:17.947411 special request received, no persistency 09:41:17.947593 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file server.cmd Testnum 1106 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file valgrind1106 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1106 test 1113...[FTP wildcard download - changed fnmatch, 2x perform (DOS LIST response)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1113 ./libtest/libtests lib574 "ftp://127.0.0.1:35393/fully_simulated/DOS/*.txt" > log/39/stdout1113 2> log/39/stderr1113 1113: stdout FAILED: --- log/39/check-expected 2025-07-18 09:41:19.308353522 +0000 +++ log/39/check-generated 2025-07-18 09:41:19.306588643 +0000 @@ -1,10 +0,0 @@ -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] == Contents of files in the log/39/ dir after test 1113 === Start of file check-expected This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1113 ./libtest/libtests lib574 "ftp://127.0.0.1:35393/fully_simulated/DOS/*.txt" > log/39/stdout1113 2> log/39/stderr1113 === End of file commands.log === Start of file ftp_server.log 09:41:17.981117 ====> Client connect 09:41:17.983590 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.985264 < "USER anonymous" 09:41:17.986931 > "331 We are happy you popped in![CR][LF]" 09:41:17.987622 < "PASS ftp@example.com" 09:41:17.988098 > "230 Welcome you silly person[CR][LF]" 09:41:17.989958 < "PWD" 09:41:17.991257 > "257 "/" is current directory[CR][LF]" 09:41:17.992547 < "EPSV" 09:41:17.992907 ====> Passive DATA channel requested by client 09:41:17.993121 DATA sockfilt for passive data channel starting... 09:41:18.006205 DATA sockfilt for passive data channel started (pid 129056) 09:41:18.007194 DATA sockfilt for passive data channel listens on port 46827 09:41:18.007632 > "229 Entering Passive Mode (|||46827|)[LF]" 09:41:18.007989 Client has been notified that DATA conn will be accepted on port 46827 09:41:18.010291 Client connects to port 46827 09:41:18.010598 ====> Client established passive DATA connection on port 46827 09:41:18.011466 < "TYPE I" 09:41:18.011946 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:18.013982 < "SIZE verifiedserver" 09:41:18.015294 > "213 17[CR][LF]" 09:41:18.016431 < "RETR verifiedserver" 09:41:18.017650 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:18.018371 =====> Closing passive DATA connection... 09:41:18.018560 Server disconnects passive DATA connection 09:41:18.020368 Server disconnected passive DATA connection 09:41:18.020622 DATA sockfilt for passive data channel quits (pid 129056) 09:41:18.022349 DATA sockfilt for passive data channel quit (pid 129056) 09:41:18.022573 =====> Closed passive DATA connection 09:41:18.023185 > "226 File transfer complete[CR][LF]" 09:41:18.060705 < "QUIT" 09:41:18.061221 > "221 bye bye baby[CR][LF]" 09:41:18.063080 MAIN sockfilt said DISC 09:41:18.065885 ====> Client disconnected 09:41:18.066503 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:18.234191 ====> Client connect 09:41:18.236006 Received DATA (on stdin) 09:41:18.236155 > 160 bytes data, server => client 09:41:18.236344 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:18.236532 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:18.236628 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:18.238139 < 16 bytes data, client => server 09:41:18.238278 'USER anonymous\r\n' 09:41:18.239324 Received DATA (on stdin) 09:41:18.239440 > 33 bytes data, server => client 09:41:18.239711 '331 We are happy you popped in!\r\n' 09:41:18.240246 < 22 bytes data, client => server 09:41:18.240382 'PASS ftp@example.com\r\n' 09:41:18.242110 Received DATA (on stdin) 09:41:18.242219 > 30 bytes data, server => client 09:41:18.242294 '230 Welcome you silly person\r\n' 09:41:18.242916 < 5 bytes data, client => server 09:41:18.243044 'PWD\r\n' 09:41:18.244030 Received DATA (on stdin) 09:41:18.244153 > 30 bytes data, server => client 09:41:18.244317 '257 "/" is current directory\r\n' 09:41:18.245379 < 6 bytes data, client => server 09:41:18.245588 'EPSV\r\n' 09:41:18.262027 Received DATA (on stdin) 09:41:18.262160 > 38 bytes data, server => client 09:41:18.262240 '229 Entering Passive Mode (|||46827|)\n' 09:41:18.263376 < 8 bytes data, client => server 09:41:18.263591 'TYPE I\r\n' 09:41:18.265993 Received DATA (on stdin) 09:41:18.266134 > 33 bytes data, server => client 09:41:18.266228 '200 I modify TYPE as you wanted\r\n' 09:41:18.266895 < 21 bytes data, client => server 09:41:18.267040 'SIZE verifiedserver\r\n' 09:41:18.268087 Received DATA (on stdin) 09:41:18.268230 > 8 bytes data, server => client 09:41:18.268387 '213 17\r\n' 09:41:18.269403 < 21 bytes data, client => server 09:41:18.269617 'RETR verifiedserver\r\n' 09:41:18.270554 Received DATA (on stdin) 09:41:18.270690 > 29 bytes data, server => client 09:41:18.270833 '150 Binary junk (17 bytes).\r\n' 09:41:18.276584 Received DATA (on stdin) 09:41:18.276714 > 28 bytes data, server => client 09:41:18.277181 '226 File transfer complete\r\n' 09:41:18.313240 < 6 bytes data, client => server 09:41:18.313415 'QUIT\r\n' 09:41:18.315538 Received DATA (on stdin) 09:41:18.315686 > 18 bytes data, server => client 09:41:18.315794 '221 bye bye baby\r\n' 09:41:18.316405 ====> Client disconnect 09:41:18.320567 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:18.258417 Running IPv4 version 09:41:18.259027 Listening on port 46827 09:41:18.259372 Wrote pid 129056 to log/39/server/ftp_sockdata.pid 09:41:18.259633 Received PING (on stdin) 09:41:18.260316 Received PORT (on stdin) 09:41:18.263774 ====> Client connect 09:41:18.272588 Received DATA (on stdin) 09:41:18.272784 > 17 bytes data, server => client 09:41:18.272884 'WE ROOLZ: 77518\r\n' 09:41:18.273151 Received DISC (on stdin) 09:41:18.273274 ====> Client forcibly disconnected 09:41:18.274681 Received QUIT (on stdin) 09:41:18.274809 quits 09:41:18.275152 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1113 === End of file server.cmd === Start of file valgrind1113 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1113 test 1096...[Two FTP downloads, with failed RETR but reused control connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1096 ../src/curl -q --output log/41/curl1096.out --include --trace-ascii log/41/trace1096 --trace-config all --trace-time ftp://127.0.0.1:41781/dir/1096 ftp://127.0.0.1:41781/dir/1096 > log/41/stdout1096 2> log/41/stderr1096 1096: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 1096 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1096 ../src/curl -q --output log/41/curl1096.out --include --trace-ascii log/41/trace1096 --trace-config all --trace-time ftp://127.0.0.1:41781/dir/1096 ftp://127.0.0.1:41781/dir/1096 > log/41/stdout1096 2> log/41/stderr1096 === End of file commands.log === Start of file ftp_server.log 09:41:17.474456 ====> Client connect 09:41:17.476007 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.482247 < "USER anonymous" 09:41:17.484952 > "331 We are happy you popped in![CR][LF]" 09:41:17.488473 < "PASS ftp@example.com" 09:41:17.490963 > "230 Welcome you silly person[CR][LF]" 09:41:17.496574 < "PWD" 09:41:17.497013 > "257 "/" is current directory[CR][LF]" 09:41:17.500561 < "EPSV" 09:41:17.500904 ====> Passive DATA channel requested by client 09:41:17.501095 DATA sockfilt for passive data channel starting... 09:41:17.583295 DATA sockfilt for passive data channel started (pid 128180) 09:41:17.595379 DATA sockfilt for passive data channel listens on port 42699 09:41:17.596334 > "229 Entering Passive Mode (|||42699|)[LF]" 09:41:17.596855 Client has been notified that DATA conn will be accepted on port 42699 09:41:17.599457 Client connects to port 42699 09:41:17.599879 ====> Client established passive DATA connection on port 42699 09:41:17.601296 < "TYPE I" 09:41:17.603935 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:17.612332 < "SIZE verifiedserver" 09:41:17.617956 > "213 17[CR][LF]" 09:41:17.620271 < "RETR verifiedserver" 09:41:17.621164 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:17.621903 =====> Closing passive DATA connection... 09:41:17.622132 Server disconnects passive DATA connection 09:41:17.627880 Server disconnected passive DATA connection 09:41:17.628161 DATA sockfilt for passive data channel quits (pid 128180) 09:41:17.631006 DATA sockfilt for passive data channel quit (pid 128180) 09:41:17.631250 =====> Closed passive DATA connection 09:41:17.631564 > "226 File transfer complete[CR][LF]" 09:41:17.664903 < "QUIT" 09:41:17.665393 > "221 bye bye baby[CR][LF]" 09:41:17.668969 MAIN sockfilt said DISC 09:41:17.669276 ====> Client disconnected 09:41:17.669715 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:16.727647 ====> Client connect 09:41:16.730250 Received DATA (on stdin) 09:41:16.730397 > 160 bytes data, server => client 09:41:16.730571 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:16.730682 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:16.730766 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:16.734992 < 16 bytes data, client => server 09:41:16.735134 'USER anonymous\r\n' 09:41:16.736366 Received DATA (on stdin) 09:41:16.736654 > 33 bytes data, server => client 09:41:16.739289 '331 We are happy you popped in!\r\n' 09:41:16.740751 < 22 bytes data, client => server 09:41:16.740942 'PASS ftp@example.com\r\n' 09:41:16.748565 Received DATA (on stdin) 09:41:16.748725 > 30 bytes data, server => client 09:41:16.748804 '230 Welcome you silly person\r\n' 09:41:16.749442 < 5 bytes data, client => server 09:41:16.749652 'PWD\r\n' 09:41:16.752565 Received DATA (on stdin) 09:41:16.752698 > 30 bytes data, server => client 09:41:16.752781 '257 "/" is current directory\r\n' 09:41:16.753522 < 6 bytes data, client => server 09:41:16.753664 'EPSV\r\n' 09:41:16.850258 Received DATA (on stdin) 09:41:16.851236 > 38 bytes data, server => client 09:41:16.851448 '229 Entering Passive Mode (|||42699|)\n' 09:41:16.854132 < 8 bytes data, client => server 09:41:16.854265 'TYPE I\r\n' 09:41:16.855403 Received DATA (on stdin) 09:41:16.860701 > 33 bytes data, server => client 09:41:16.860835 '200 I modify TYPE as you wanted\r\n' 09:41:16.864880 < 21 bytes data, client => server 09:41:16.865079 'SIZE verifiedserver\r\n' 09:41:16.866525 Received DATA (on stdin) 09:41:16.866670 > 8 bytes data, server => client 09:41:16.872027 '213 17\r\n' 09:41:16.872819 < 21 bytes data, client => server 09:41:16.872967 'RETR verifiedserver\r\n' 09:41:16.874426 Received DATA (on stdin) 09:41:16.874655 > 29 bytes data, server => client 09:41:16.876065 '150 Binary junk (17 bytes).\r\n' 09:41:16.885700 Received DATA (on stdin) 09:41:16.885838 > 28 bytes data, server => client 09:41:16.885917 '226 File transfer complete\r\n' 09:41:16.917442 < 6 bytes data, client => server 09:41:16.917685 'QUIT\r\n' 09:41:16.921617 Received DATA (on stdin) 09:41:16.921776 > 18 bytes data, server => client 09:41:16.921863 '221 bye bye baby\r\n' 09:41:16.922364 ====> Client disconnect 09:41:16.923864 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.823404 Running IPv4 version 09:41:17.834530 Listening on port 42699 09:41:17.835074 Wrote pid 128180 to log/41/server/ftp_sockdata.pid 09:41:17.835317 Received PING (on stdin) 09:41:17.837600 Received PORT (on stdin) 09:41:17.852853 ====> Client connect 09:41:17.876691 Received DATA (on stdin) 09:41:17.876834 > 17 bytes data, server => client 09:41:17.876908 'WE ROOLZ: 77417\r\n' 09:41:17.877169 Received DISC (on stdin) 09:41:17.877297 ====> Client forcibly disconnected 09:41:17.882200 Received QUIT (on stdin) 09:41:17.882334 quits 09:41:17.882827 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 550 no such file REPLY SIZE 500 command not understood Testnum 1096 === End of file server.cmd === Start of file valgrind1096 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1096 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/43/server/http_ipv6_server.pid" --logfile "log/43/http_ipv6_server.log" --logdir "log/43" --portfile log/43/server/http_ipv6_server.port --config log/43/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 126368 port 40705 * pid http-ipv6 => 126368 126368 prechecked /usr/bin/perl -e "print 'Test is not supported on the Windows kernel' if($^O eq 'MSWin32' || $^O eq 'msys' || $^O eq 'cygwin');" test 1056...[HTTP follow redirect from IPv4 to IPv6 with scope] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1056 ../src/curl -q --output log/43/curl1056.out --include --trace-ascii log/43/trace1056 --trace-config all --trace-time http://127.0.0.1:41267/we/are/all/twits/1056 -L > log/43/stdout1056 2> log/43/stderr1056 1056: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 1056 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1056 ../src/curl -q --output log/43/curl1056.out --include --trace-ascii log/43/trace1056 --trace-config all --trace-time http://127.0.0.1:41267/we/are/all/twits/1056 -L > log/43/stdout1056 2> log/43/stderr1056 === End of file commands.log === Start of file http_ipv6_server.log 09:41:16.939313 Running HTTP IPv6 version on port 40705 09:41:16.940079 Wrote pid 126368 to log/43/server/http_ipv6_server.pid 09:41:16.940384 Wrote port 40705 to log/43/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file http_server.log 09:41:16.709634 ====> Client connect 09:41:16.709943 accept_connection 3 returned 4 09:41:16.710087 accept_connection 3 returned 0 09:41:16.710219 Read 93 bytes 09:41:16.710305 Process 93 bytes request 09:41:16.710385 Got request: GET /verifiedserver HTTP/1.1 09:41:16.710539 Are-we-friendly question received 09:41:16.710817 Wrote request (93 bytes) input to log/43/server.input 09:41:16.711024 Identifying ourselves as friends 09:41:16.711868 Response sent (56 bytes) and written to log/43/server.response 09:41:16.711977 special request received, no persistency 09:41:16.712048 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 1056 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind1056 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1056 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/56/server/tftp_server.pid" --portfile "log/56/server/tftp_server.port" --logfile "log/56/tftp_server.log" --logdir "log/56" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 127229 port 41264 * pid tftp => 127229 127229 test 1094...[TFTP retrieve with mode=netascii] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1094 ../src/curl -q --output log/56/curl1094.out --include --trace-ascii log/56/trace1094 --trace-config all --trace-time "tftp://127.0.0.1:41264//1094;mode=netascii" > log/56/stdout1094 2> log/56/stderr1094 1094: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 1094 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1094 ../src/curl -q --output log/56/curl1094.out --include --trace-ascii log/56/trace1094 --trace-config all --trace-time "tftp://127.0.0.1:41264//1094;mode=netascii" > log/56/stdout1094 2> log/56/stderr1094 === End of file commands.log === Start of file server.cmd Testnum 1094 === End of file server.cmd === Start of file tftp_server.log 09:41:17.567989 Wrote pid 127229 to log/56/server/tftp_server.pid 09:41:17.568704 Wrote port 41264 to log/56/server/tftp_server.port 09:41:17.568802 Running IPv4 version on port UDP/41264 === End of file tftp_server.log === Start of file valgrind1094 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1094 test 1086...[FTP download with strict timeout and slow data transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1086 ../src/curl -q --output log/59/curl1086.out --include --trace-ascii log/59/trace1086 --trace-config all --trace-time ftp://127.0.0.1:43961/1086 -m 5 > log/59/stdout1086 2> log/59/stderr1086 1086: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 1086 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1086 ../src/curl -q --output log/59/curl1086.out --include --trace-ascii log/59/trace1086 --trace-config all --trace-time ftp://127.0.0.1:43961/1086 -m 5 > log/59/stdout1086 2> log/59/stderr1086 === End of file commands.log === Start of file ftp_server.log 09:41:17.418476 ====> Client connect 09:41:17.419653 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.424399 < "USER anonymous" 09:41:17.429213 > "331 We are happy you popped in![CR][LF]" 09:41:17.441302 < "PASS ftp@example.com" 09:41:17.441623 > "230 Welcome you silly person[CR][LF]" 09:41:17.447641 < "PWD" 09:41:17.449942 > "257 "/" is current directory[CR][LF]" 09:41:17.457340 < "EPSV" 09:41:17.457632 ====> Passive DATA channel requested by client 09:41:17.457918 DATA sockfilt for passive data channel starting... 09:41:17.501962 DATA sockfilt for passive data channel started (pid 128042) 09:41:17.503143 DATA sockfilt for passive data channel listens on port 32823 09:41:17.503542 > "229 Entering Passive Mode (|||32823|)[LF]" 09:41:17.503867 Client has been notified that DATA conn will be accepted on port 32823 09:41:17.507622 Client connects to port 32823 09:41:17.507983 ====> Client established passive DATA connection on port 32823 09:41:17.508654 < "TYPE I" 09:41:17.509133 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:17.515258 < "SIZE verifiedserver" 09:41:17.519393 > "213 17[CR][LF]" 09:41:17.523920 < "RETR verifiedserver" 09:41:17.525233 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:17.527674 =====> Closing passive DATA connection... 09:41:17.528184 Server disconnects passive DATA connection 09:41:17.528458 Fancy that; client wants to DISC, too 09:41:17.532270 Server disconnected passive DATA connection 09:41:17.532554 DATA sockfilt for passive data channel quits (pid 128042) 09:41:17.540497 DATA sockfilt for passive data channel quit (pid 128042) 09:41:17.540844 =====> Closed passive DATA connection 09:41:17.541211 > "226 File transfer complete[CR][LF]" 09:41:17.567462 < "QUIT" 09:41:17.570918 > "221 bye bye baby[CR][LF]" 09:41:17.571610 MAIN sockfilt said DISC 09:41:17.574497 ====> Client disconnected 09:41:17.575136 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:17.671623 ====> Client connect 09:41:17.674145 Received DATA (on stdin) 09:41:17.674292 > 160 bytes data, server => client 09:41:17.674383 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:17.674611 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:17.674734 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:17.677008 < 16 bytes data, client => server 09:41:17.677175 'USER anonymous\r\n' 09:41:17.684556 Received DATA (on stdin) 09:41:17.684716 > 33 bytes data, server => client 09:41:17.684810 '331 We are happy you popped in!\r\n' 09:41:17.688638 < 22 bytes data, client => server 09:41:17.688788 'PASS ftp@example.com\r\n' 09:41:17.699575 Received DATA (on stdin) 09:41:17.699785 > 30 bytes data, server => client 09:41:17.699889 '230 Welcome you silly person\r\n' 09:41:17.700597 < 5 bytes data, client => server 09:41:17.700753 'PWD\r\n' 09:41:17.701782 Received DATA (on stdin) 09:41:17.701918 > 30 bytes data, server => client 09:41:17.703997 '257 "/" is current directory\r\n' 09:41:17.708391 < 6 bytes data, client => server 09:41:17.708611 'EPSV\r\n' 09:41:17.757939 Received DATA (on stdin) 09:41:17.758071 > 38 bytes data, server => client 09:41:17.758150 '229 Entering Passive Mode (|||32823|)\n' 09:41:17.760610 < 8 bytes data, client => server 09:41:17.760762 'TYPE I\r\n' 09:41:17.766913 Received DATA (on stdin) 09:41:17.767048 > 33 bytes data, server => client 09:41:17.767129 '200 I modify TYPE as you wanted\r\n' 09:41:17.767874 < 21 bytes data, client => server 09:41:17.768012 'SIZE verifiedserver\r\n' 09:41:17.769517 Received DATA (on stdin) 09:41:17.769681 > 8 bytes data, server => client 09:41:17.772336 '213 17\r\n' 09:41:17.776662 < 21 bytes data, client => server 09:41:17.776796 'RETR verifiedserver\r\n' 09:41:17.778042 Received DATA (on stdin) 09:41:17.778203 > 29 bytes data, server => client 09:41:17.778429 '150 Binary junk (17 bytes).\r\n' 09:41:17.795225 Received DATA (on stdin) 09:41:17.795362 > 28 bytes data, server => client 09:41:17.795447 '226 File transfer complete\r\n' 09:41:17.820325 < 6 bytes data, client => server 09:41:17.820559 'QUIT\r\n' 09:41:17.822293 Received DATA (on stdin) 09:41:17.822446 > 18 bytes data, server => client 09:41:17.822822 '221 bye bye baby\r\n' 09:41:17.825075 ====> Client disconnect 09:41:17.825703 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.745376 Running IPv4 version 09:41:17.750015 Listening on port 32823 09:41:17.750373 Wrote pid 128042 to log/59/server/ftp_sockdata.pid 09:41:17.752640 Received PING (on stdin) 09:41:17.756201 Received PORT (on stdin) 09:41:17.761079 ====> Client connect 09:41:17.779802 Received DATA (on stdin) 09:41:17.779952 > 17 bytes data, server => client 09:41:17.780019 'WE ROOLZ: 78816\r\n' 09:41:17.780907 ====> Client disconnect 09:41:17.783540 Received DISC (on stdin) 09:41:17.783725 Crikey! Client also wants to disconnect 09:41:17.783816 Received ACKD (on stdin) 09:41:17.788824 Received QUIT (on stdin) 09:41:17.788998 quits 09:41:17.789415 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd SLOWDOWNDATA REPLY welcome 220 Hey REPLY USER 331 OK REPLY PASS 230 OK REPLY PWD 257 "/" REPLY TYPE 200 OK Testnum 1086 === End of file server.cmd === Start of file valgrind1086 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1086 test 1110...[HTTP GET with URL that contains a fragment after the query part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1110 ../src/curl -q --output log/60/curl1110.out --include --trace-ascii log/60/trace1110 --trace-config all --trace-time http://127.0.0.1:38843/1110?q=foobar#fragment > log/60/stdout1110 2> log/60/stderr1110 1110: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1110 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1110 ../src/curl -q --output log/60/curl1110.out --include --trace-ascii log/60/trace1110 --trace-config all --trace-time http://127.0.0.1:38843/1110?q=foobar#fragment > log/60/stdout1110 2> log/60/stderr1110 === End of file commands.log === Start of file http_server.log 09:41:17.988157 ====> Client connect 09:41:17.988844 accept_connection 3 returned 4 09:41:17.989049 accept_connection 3 returned 0 09:41:17.989224 Read 93 bytes 09:41:17.989338 Process 93 bytes request 09:41:17.989424 Got request: GET /verifiedserver HTTP/1.1 09:41:17.989573 Are-we-friendly question received 09:41:17.989805 Wrote request (93 bytes) input to log/60/server.input 09:41:17.990008 Identifying ourselves as friends 09:41:17.994777 Response sent (56 bytes) and written to log/60/server.response 09:41:17.994936 special request received, no persistency 09:41:17.995015 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1110 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1110 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1110 test 1105...[HTTP with cookie parser and header recording] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1105 ../src/curl -q --output log/62/curl1105.out --include --trace-ascii log/62/trace1105 --trace-config all --trace-time "http://127.0.0.1:38899/we/want/1105?parm1=this*that/other/thing&parm2=foobar/1105" -c log/62/cookie1105.txt -d "userid=myname&password=mypassword" > log/62/stdout1105 2> log/62/stderr1105 1105: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1105 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1105 ../src/curl -q --output log/62/curl1105.out --include --trace-ascii log/62/trace1105 --trace-config all --trace-time "http://127.0.0.1:38899/we/want/1105?parm1=this*that/other/thing&parm2=foobar/1105" -c log/62/cookie1105.txt -d "userid=myname&password=mypassword" > log/62/stdout1105 2> log/62/stderr1105 === End of file commands.log === Start of file http_server.log 09:41:17.916182 ====> Client connect 09:41:17.916634 accept_connection 3 returned 4 09:41:17.916839 accept_connection 3 returned 0 09:41:17.916981 Read 93 bytes 09:41:17.917093 Process 93 bytes request 09:41:17.917209 Got request: GET /verifiedserver HTTP/1.1 09:41:17.917305 Are-we-friendly question received 09:41:17.917646 Wrote request (93 bytes) input to log/62/server.input 09:41:17.917834 Identifying ourselves as friends 09:41:17.919012 Response sent (56 bytes) and written to log/62/server.response 09:41:17.919316 special request received, no persistency 09:41:17.919437 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1105 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1105 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1105 test 1061...[HTTP proxy CONNECT auth Digest, large headers and chunked data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1061 ../src/curl -q --output log/27/curl1061.out --include --trace-ascii log/27/trace1061 --trace-config all --trace-time http://test.remote.haxx.se.1061:8990/path/10610002 --proxy http://127.0.0.1:42323 --proxy-user silly:person --proxy-digest --proxytunnel > log/27/stdout1061 2> log/27/stderr1061 1061: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 1061 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1061 ../src/curl -q --output log/27/curl1061.out --include --trace-ascii log/27/trace1061 --trace-config all --trace-time http://test.remote.haxx.se.1061:8990/path/10610002 --proxy http://127.0.0.1:42323 --proxy-user silly:person --proxy-digest --proxytunnel > log/27/stdout1061 2> log/27/stderr1061 === End of file commands.log === Start of file http_server.log 09:41:16.879446 ====> Client connect 09:41:16.879913 accept_connection 3 returned 4 09:41:16.880190 accept_connection 3 returned 0 09:41:16.880390 Read 93 bytes 09:41:16.880584 Process 93 bytes request 09:41:16.880689 Got request: GET /verifiedserver HTTP/1.1 09:41:16.880777 Are-we-friendly question received 09:41:16.881018 Wrote request (93 bytes) input to log/27/server.input 09:41:16.881202 Identifying ourselves as friends 09:41:16.886788 Response sent (56 bytes) and written to log/27/server.response 09:41:16.886942 special request received, no persistency 09:41:16.887027 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 1061 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind1061 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1061 test 1060...[HTTP proxy CONNECT auth Digest, large headers and data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1060 ../src/curl -q --output log/30/curl1060.out --include --trace-ascii log/30/trace1060 --trace-config all --trace-time http://test.remote.haxx.se.1060:8990/path/10600002 --proxy http://127.0.0.1:43913 --proxy-user silly:person --proxy-digest --proxytunnel > log/30/stdout1060 2> log/30/stderr1060 1060: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 1060 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1060 ../src/curl -q --output log/30/curl1060.out --include --trace-ascii log/30/trace1060 --trace-config all --trace-time http://test.remote.haxx.se.1060:8990/path/10600002 --proxy http://127.0.0.1:43913 --proxy-user silly:person --proxy-digest --proxytunnel > log/30/stdout1060 2> log/30/stderr1060 === End of file commands.log === Start of file http_server.log 09:41:16.773011 ====> Client connect 09:41:16.773318 accept_connection 3 returned 4 09:41:16.773596 accept_connection 3 returned 0 09:41:16.774172 Read 93 bytes 09:41:16.774302 Process 93 bytes request 09:41:16.774376 Got request: GET /verifiedserver HTTP/1.1 09:41:16.774437 Are-we-friendly question received 09:41:16.774760 Wrote request (93 bytes) input to log/30/server.input 09:41:16.774942 Identifying ourselves as friends 09:41:16.778568 Response sent (56 bytes) and written to log/30/server.response 09:41:16.778688 special request received, no persistency 09:41:16.778749 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 1060 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind1060 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1060 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1114 ./libtest/libtests lib576 ftp://127.0.0.1:41829/fully_simulated/DOS/* > log/54/stdout1114 2> log/54/stderr1114 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/33/server/tftp_server.pid" --portfile "log/33/server/tftp_server.port" --logfile "log/33/tftp_server.log" --logdir "log/33" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 127399 port 42512 * pid tftp => 127399 127399 test 1099...[TFTP get first a non-existing file then an existing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1099 ../src/curl -q --include --trace-ascii log/33/trace1099 --trace-config all --trace-time tftp://127.0.0.1:42512/an/invalid-file tftp://127.0.0.1:42512//1099 > log/33/stdout1099 2> log/33/stderr1099 1099: stdout FAILED: --- log/33/check-expected 2025-07-18 09:41:19.544170143 +0000 +++ log/33/check-generated 2025-07-18 09:41:19.542588524 +0000 @@ -1 +0,0 @@ -data for 1099[LF] == Contents of files in the log/33/ dir after test 1099 === Start of file check-expected data for 1099[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1099 ../src/curl -q --include --trace-ascii log/33/trace1099 --trace-config all --trace-time tftp://127.0.0.1:42512/an/invalid-file tftp://127.0.0.1:42512//1099 > log/33/stdout1099 2> log/33/stderr1099 === End of file commands.log === Start of file server.cmd Testnum 1099 === End of file server.cmd === Start of file tftp_server.log 09:41:17.657443 Wrote pid 127399 to log/33/server/tftp_server.pid 09:41:17.658084 Wrote port 42512 to log/33/server/tftp_server.port 09:41:17.658180 Running IPv4 version on port UDP/42512 === End of file tftp_server.log === Start of file valgrind1099 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1099 test 1116...[HTTP GET with chunked trailer without Trailer:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1116 ../src/curl -q --output log/64/curl1116.out --include --trace-ascii log/64/trace1116 --trace-config all --trace-time http://127.0.0.1:33073/1116 -D log/64/heads1116 > log/64/stdout1116 2> log/64/stderr1116 1116: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1116 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1116 ../src/curl -q --output log/64/curl1116.out --include --trace-ascii log/64/trace1116 --trace-config all --trace-time http://127.0.0.1:33073/1116 -D log/64/heads1116 > log/64/stdout1116 2> log/64/stderr1116 === End of file commands.log === Start of file http_server.log 09:41:18.352870 ====> Client connect 09:41:18.353187 accept_connection 3 returned 4 09:41:18.353358 accept_connection 3 returned 0 09:41:18.353830 Read 93 bytes 09:41:18.353962 Process 93 bytes request 09:41:18.354056 Got request: GET /verifiedserver HTTP/1.1 09:41:18.354132 Are-we-friendly question received 09:41:18.354364 Wrote request (93 bytes) input to log/64/server.input 09:41:18.354648 Identifying ourselves as friends 09:41:18.356583 Response sent (56 bytes) and written to log/64/server.response 09:41:18.356716 special request received, no persistency 09:41:18.356794 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1116 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1116 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1116 test 1114...[FTP wildcard download - skip/correctness/FNMATCH_FUNCTION (DOS)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1114 ./libtest/libtests lib576 ftp://127.0.0.1:41829/fully_simulated/DOS/* > log/54/stdout1114 2> log/54/stderr1114 1114: stdout FAILED: --- log/54/check-expected 2025-07-18 09:41:19.649338550 +0000 +++ log/54/check-generated 2025-07-18 09:41:19.647588471 +0000 @@ -1,96 +0,0 @@ -=============================================================[LF] -Remains: 12[LF] -Filename: .[LF] -Size: 0B[LF] -Time: 04-27-10 05:12AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 11[LF] -Filename: ..[LF] -Size: 0B[LF] -Time: 04-23-10 03:12AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 10[LF] -Filename: chmod1[LF] -Size: 38B[LF] -Time: 01-11-10 10:00AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 444[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 9[LF] -Filename: chmod2[LF] -Size: 38B[LF] -Time: 02-01-10 08:00AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 666[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 8[LF] -Filename: chmod3[LF] -Size: 38B[LF] -Time: 02-01-10 08:00AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 777[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 7[LF] -Filename: chmod4[LF] -Size: 0B[LF] -Time: 05-04-10 04:31AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 6[LF] -Filename: chmod5[LF] -Size: 0B[LF] -Time: 05-04-10 04:31AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 5[LF] -Filename: empty_file.dat[LF] -Size: 0B[LF] -Time: 04-27-10 11:01AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 4[LF] -Filename: file.txt[LF] -Size: 35B[LF] -Time: 04-27-10 11:01AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This is content of file "file.txt"[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 3[LF] -Filename: .NeXT[LF] -Size: 0B[LF] -Time: 01-23-05 02:05AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 2[LF] -Filename: someothertext.txt[LF] -Size: 47B[LF] -Time: 04-27-10 11:01AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -# THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 1[LF] -Filename: weirddir.txt[LF] -Size: 0B[LF] -Time: 04-23-10 03:12AM[LF] -Filetype: directory[LF] -=============================================================[LF] == Contents of files in the log/54/ dir after test 1114 === Start of file check-expected =============================================================[LF] Remains: 12[LF] Filename: .[LF] Size: 0B[LF] Time: 04-27-10 05:12AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 11[LF] Filename: ..[LF] Size: 0B[LF] Time: 04-23-10 03:12AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 10[LF] Filename: chmod1[LF] Size: 38B[LF] Time: 01-11-10 10:00AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 444[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 9[LF] Filename: chmod2[LF] Size: 38B[LF] Time: 02-01-10 08:00AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 666[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 8[LF] Filename: chmod3[LF] Size: 38B[LF] Time: 02-01-10 08:00AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 777[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 7[LF] Filename: chmod4[LF] Size: 0B[LF] Time: 05-04-10 04:31AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 6[LF] Filename: chmod5[LF] Size: 0B[LF] Time: 05-04-10 04:31AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 5[LF] Filename: empty_file.dat[LF] Size: 0B[LF] Time: 04-27-10 11:01AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 4[LF] Filename: file.txt[LF] Size: 35B[LF] Time: 04-27-10 11:01AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This is content of file "file.txt"[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 3[LF] Filename: .NeXT[LF] Size: 0B[LF] Time: 01-23-05 02:05AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 2[LF] Filename: someothertext.txt[LF] Size: 47B[LF] Time: 04-27-10 11:01AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] # THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 1[LF] Filename: weirddir.txt[LF] Size: 0B[LF] Time: 04-23-10 03:12AM[LF] Filetype: directory[LF] =============================================================[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1114 ./libtest/libtCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1078 ../src/curl -q --include --trace-ascii log/63/trace1078 --trace-config all --trace-time --proxy1.0 127.0.0.1:44435 -p http://127.0.0.1:38797/we/want/that/page/1078 http://127.0.0.1:38797/we/want/that/page/1078 > log/63/stdout1078 2> log/63/stderr1078 ests lib576 ftp://127.0.0.1:41829/fully_simulated/DOS/* > log/54/stdout1114 2> log/54/stderr1114 === End of file commands.log === Start of file ftp_server.log 09:41:17.968918 ====> Client connect 09:41:17.970151 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:17.974628 < "USER anonymous" 09:41:17.975108 > "331 We are happy you popped in![CR][LF]" 09:41:17.978096 < "PASS ftp@example.com" 09:41:17.979489 > "230 Welcome you silly person[CR][LF]" 09:41:17.980668 < "PWD" 09:41:17.981243 > "257 "/" is current directory[CR][LF]" 09:41:17.983565 < "EPSV" 09:41:17.983859 ====> Passive DATA channel requested by client 09:41:17.984060 DATA sockfilt for passive data channel starting... 09:41:18.001425 DATA sockfilt for passive data channel started (pid 129023) 09:41:18.005980 DATA sockfilt for passive data channel listens on port 41971 09:41:18.006425 > "229 Entering Passive Mode (|||41971|)[LF]" 09:41:18.006682 Client has been notified that DATA conn will be accepted on port 41971 09:41:18.012899 Client connects to port 41971 09:41:18.013232 ====> Client established passive DATA connection on port 41971 09:41:18.014071 < "TYPE I" 09:41:18.014439 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:18.016536 < "SIZE verifiedserver" 09:41:18.016973 > "213 17[CR][LF]" 09:41:18.019729 < "RETR verifiedserver" 09:41:18.020561 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:18.021322 =====> Closing passive DATA connection... 09:41:18.021516 Server disconnects passive DATA connection 09:41:18.024587 Server disconnected passive DATA connection 09:41:18.024961 DATA sockfilt for passive data channel quits (pid 129023) 09:41:18.030080 DATA sockfilt for passive data channel quit (pid 129023) 09:41:18.030333 =====> Closed passive DATA connection 09:41:18.030731 > "226 File transfer complete[CR][LF]" 09:41:18.066502 < "QUIT" 09:41:18.066927 > "221 bye bye baby[CR][LF]" 09:41:18.072307 MAIN sockfilt said DISC 09:41:18.073544 ====> Client disconnected 09:41:18.074684 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:18.220064 ====> Client connect 09:41:18.224245 Received DATA (on stdin) 09:41:18.224393 > 160 bytes data, server => client 09:41:18.224586 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:18.224692 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:18.224769 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:18.227033 < 16 bytes data, client => server 09:41:18.227178 'USER anonymous\r\n' 09:41:18.229193 Received DATA (on stdin) 09:41:18.229343 > 33 bytes data, server => client 09:41:18.229449 '331 We are happy you popped in!\r\n' 09:41:18.230940 < 22 bytes data, client => server 09:41:18.231094 'PASS ftp@example.com\r\n' 09:41:18.232200 Received DATA (on stdin) 09:41:18.232337 > 30 bytes data, server => client 09:41:18.232607 '230 Welcome you silly person\r\n' 09:41:18.233420 < 5 bytes data, client => server 09:41:18.233650 'PWD\r\n' 09:41:18.235270 Received DATA (on stdin) 09:41:18.235399 > 30 bytes data, server => client 09:41:18.235578 '257 "/" is current directory\r\n' 09:41:18.236289 < 6 bytes data, client => server 09:41:18.236431 'EPSV\r\n' 09:41:18.260836 Received DATA (on stdin) 09:41:18.260996 > 38 bytes data, server => client 09:41:18.261081 '229 Entering Passive Mode (|||41971|)\n' 09:41:18.262304 < 8 bytes data, client => server 09:41:18.262435 'TYPE I\r\n' 09:41:18.268514 Received DATA (on stdin) 09:41:18.268650 > 33 bytes data, server => client 09:41:18.268739 '200 I modify TYPE as you wanted\r\n' 09:41:18.269358 < 21 bytes data, client => server 09:41:18.269663 'SIZE verifiedserver\r\n' 09:41:18.271084 Received DATA (on stdin) 09:41:18.271218 > 8 bytes data, server => client 09:41:18.271301 '213 17\r\n' 09:41:18.272673 < 21 bytes data, client => server 09:41:18.272840 'RETR verifiedserver\r\n' 09:41:18.273920 Received DATA (on stdin) 09:41:18.274065 > 29 bytes data, server => client 09:41:18.276550 '150 Binary junk (17 bytes).\r\n' 09:41:18.284905 Received DATA (on stdin) 09:41:18.285110 > 28 bytes data, server => client 09:41:18.285210 '226 File transfer complete\r\n' 09:41:18.318376 < 6 bytes data, client => server 09:41:18.318711 'QUIT\r\n' 09:41:18.321040 Received DATA (on stdin) 09:41:18.321193 > 18 bytes data, server => client 09:41:18.321298 '221 bye bye baby\r\n' 09:41:18.325421 ====> Client disconnect 09:41:18.326368 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:17.251382 Running IPv4 version 09:41:17.252044 Listening on port 41971 09:41:17.252370 Wrote pid 129023 to log/54/server/ftp_sockdata.pid 09:41:17.252620 Received PING (on stdin) 09:41:17.255867 Received PORT (on stdin) 09:41:17.262695 ====> Client connect 09:41:17.276925 Received DATA (on stdin) 09:41:17.277064 > 17 bytes data, server => client 09:41:17.277153 'WE ROOLZ: 78730\r\n' 09:41:17.277667 Received DISC (on stdin) 09:41:17.277823 ====> Client forcibly disconnected 09:41:17.280583 Received QUIT (on stdin) 09:41:17.280728 quits 09:41:17.281074 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1114 === End of file server.cmd === Start of file valgrind1114 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1114 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1118 ../src/curl -q --output log/52/curl1118.out --include --trace-ascii log/52/trace1118 --trace-config all --trace-time http://127.0.0.1:40089?email=name@example.com/1118 > log/52/stdout1118 2> log/52/stderr1118 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/63/server/http2_server.pid" --logfile "log/63/http2_server.log" --logdir "log/63" --portfile log/63/server/http2_server.port --config log/63/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 127586 port 44435 * pid http-proxy => 127586 127586 test 1078...[HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1078 ../src/curl -q --include --trace-ascii log/63/trace1078 --trace-config all --trace-time --proxy1.0 127.0.0.1:44435 -p http://127.0.0.1:38797/we/want/that/page/1078 http://127.0.0.1:38797/we/want/that/page/1078 > log/63/stdout1078 2> log/63/stderr1078 1078: stdout FAILED: --- log/63/check-expected 2025-07-18 09:41:19.714588437 +0000 +++ log/63/check-generated 2025-07-18 09:41:19.713588437 +0000 @@ -1,21 +0,0 @@ -HTTP/1.1 200 Mighty fine indeed[CR][LF] -Server: test tunnel 2000[CR][LF] -[CR][LF] -HTTP/1.0 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 9[CR][LF] -Connection: keep-alive[CR][LF] -[CR][LF] -contents[LF] -HTTP/1.0 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 9[CR][LF] -Connection: keep-alive[CR][LF] -[CR][LF] -contents[LF] == Contents of files in the log/63/ dir after test 1078 === Start of file check-expected HTTP/1.1 200 Mighty fine indeed[CR][LF] Server: test tunnel 2000[CR][LF] [CR][LF] HTTP/1.0 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 9[CR][LF] Connection: keep-alive[CR][LF] [CR][LF] contents[LF] HTTP/1.0 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 9[CR][LF] Connection: keep-alive[CR][LF] [CR][LF] contents[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1078 ../src/curl -q --include --trace-ascii log/63/trace1078 --trace-config all --trace-time --proxy1.0 127.0.0.1:44435 -p http://127.0.0.1:38797/we/want/that/page/1078 http://127.0.0.1:38797/we/want/that/page/1078 > log/63/stdout1078 2> log/63/stderr1078 === End of file commands.log === Start of file http2_server.log 09:41:17.746669 Run as proxy, CONNECT to host 127.0.0.1 09:41:17.747552 Running HTTP IPv4 version on port 44435 09:41:17.748042 Wrote pid 127586 to log/63/server/http2_server.pid 09:41:17.748384 Wrote port 44435 to log/63/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:17.493331 ====> Client connect 09:41:17.493772 accept_connection 3 returned 4 09:41:17.493940 accept_connection 3 returned 0 09:41:17.494080 Read 93 bytes 09:41:17.494174 Process 93 bytes request 09:41:17.494247 Got request: GET /verifiedserver HTTP/1.1 09:41:17.494322 Are-we-friendly question received 09:41:17.494631 Wrote request (93 bytes) input to log/63/server.input 09:41:17.494817 Identifying ourselves as friends 09:41:17.495681 Response sent (56 bytes) and written to log/63/server.response 09:41:17.495802 special request received, no persistency 09:41:17.495871 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 1078 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1078 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1078 test 1118...[URL without slash and @-letter in query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1118 ../src/curl -q --output log/52/curl1118.out --include --trace-ascii log/52/trace1118 --trace-config all --trace-time http://127.0.0.1:40089?email=name@example.com/1118 > log/52/stdout1118 2> log/52/stderr1118 1118: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1118 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1118 ../src/curl -q --output log/52/curl1118.out --include --trace-ascii log/52/trace1118 --trace-config all --trace-time http://127.0.0.1:40089?email=name@example.com/1118 > log/52/stdout1118 2> log/52/stderr1118 === End of file commands.log === Start of file http_server.log 09:41:18.859995 ====> Client connect 09:41:18.860610 accept_connection 3 returned 4 09:41:18.860909 accept_connection 3 returned 0 09:41:18.861108 Read 93 bytes 09:41:18.861260 Process 93 bytes request 09:41:18.861364 Got request: GET /verifiedserver HTTP/1.1 09:41:18.865632 Are-we-friendly question received 09:41:18.866039 Wrote request (93 bytes) input to log/52/server.input 09:41:18.866985 Identifying ourselves as friends 09:41:18.867938 Response sent (56 bytes) and written to log/52/server.response 09:41:18.868070 special request received, no persistency 09:41:18.868147 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1117 ../src/curl -q --include --trace-ascii log/58/trace1117 --trace-config all --trace-time -r 10-22 http://127.0.0.1:46727/want/1117 http://127.0.0.1:46727/wantmore/11170001 > log/58/stdout1117 2> log/58/stderr1117 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 1118 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind1118 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1118 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1132.pl /build/curl/src/curl/tests/../lib > log/41/stdout1132 2> log/41/stderr1132 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1120 ../src/curl -q --output log/61/curl1120.out --include --trace-ascii log/61/trace1120 --trace-config all --trace-time ftp://127.0.0.1:46133/a/path/1120 > log/61/stdout1120 2> log/61/stderr1120 test 1117...[HTTP with invalid range then another URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1117 ../src/curl -q --include --trace-ascii log/58/trace1117 --trace-config all --trace-time -r 10-22 http://127.0.0.1:46727/want/1117 http://127.0.0.1:46727/wantmore/11170001 > log/58/stdout1117 2> log/58/stderr1117 1117: stdout FAILED: --- log/58/check-expected 2025-07-18 09:41:20.018439883 +0000 +++ log/58/check-generated 2025-07-18 09:41:20.017588283 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 416 Requested Range Not Satisfiable[CR][LF] -Date: Tue, 09 Sep 2010 14:49:00 GMT[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 115[CR][LF] -[CR][LF] -This is a long error message that is large enough that the test server is[LF] -guaranteed to split it into two packets.[LF] -HTTP/1.1 206 Partial Content[CR][LF] -Date: Tue, 09 Sep 2010 14:49:01 GMT[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Range: bytes 10-18/155[CR][LF] -Content-Length: 13[CR][LF] -Content-Type: text/plain[CR][LF] -[CR][LF] -partial body[LF] == Contents of files in the log/58/ dir after test 1117 === Start of file check-expected HTTP/1.1 416 Requested Range Not Satisfiable[CR][LF] Date: Tue, 09 Sep 2010 14:49:00 GMT[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 115[CR][LF] [CR][LF] This is a long error message that is large enough that the test server is[LF] guaranteed to split it into two packets.[LF] HTTP/1.1 206 Partial Content[CR][LF] Date: Tue, 09 Sep 2010 14:49:01 GMT[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Range: bytes 10-18/155[CR][LF] Content-Length: 13[CR][LF] Content-Type: text/plain[CR][LF] [CR][LF] partial body[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1117 ../src/curl -q --include --trace-ascii log/58/trace1117 --trace-config all --trace-time -r 10-22 http://127.0.0.1:46727/want/1117 http://127.0.0.1:46727/wantmore/11170001 > log/58/stdout1117 2> log/58/stderr1117 === End of file commands.log === Start of file http_server.log 09:41:18.905865 ====> Client connect 09:41:18.906218 accept_connection 3 returned 4 09:41:18.906397 accept_connection 3 returned 0 09:41:18.906640 Read 93 bytes 09:41:18.906750 Process 93 bytes request 09:41:18.906856 Got request: GET /verifiedserver HTTP/1.1 09:41:18.906947 Are-we-friendly question received 09:41:18.907188 Wrote request (93 bytes) input to log/58/server.input 09:41:18.907374 Identifying ourselves as friends 09:41:18.908611 Response sent (56 bytes) and written to log/58/server.response 09:41:18.908749 special request received, no persistency 09:41:18.908823 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46727... * Connected to 127.0.0.1 (127.0.0.1) port 46727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73755 === End of file http_verify.out === Start of file server.cmd writedelay: 100 Testnum 1117 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73755 === End of file server.response === Start of file valgrind1117 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1117 * starts no server test 1132...[Verify memory #include files in libcurl's C source files] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1132.pl /build/curl/src/curl/tests/../lib > log/41/stdout1132 2> log/41/stderr1132 valgrind SKIPPED -------e--- OK (1048 out of 1707, remaining: 00:33, took 0.304s, duration: 00:53) test 1120...[FTP with 421 timeout response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1120 ../src/curl -q --output log/61/curl1120.out --include --trace-ascii log/61/trace1120 --trace-config all --trace-time ftp://127.0.0.1:46133/a/path/1120 > log/61/stdout1120 2> log/61/stderr1120 1120: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1120 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1120 ../src/curl -q --output log/61/curl1120.out --include --trace-ascii log/61/trace1120 --trace-config all --trace-time ftp://127.0.0.1:46133/a/path/1120 > log/61/stdout1120 2> log/61/stderr1120 === End of file commands.log === Start of file ftp_server.log 09:41:19.366310 ====> Client connect 09:41:19.368725 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:19.371018 < "USER anonymous" 09:41:19.371735 > "331 We are happy you popped in![CR][LF]" 09:41:19.373674 < "PASS ftp@example.com" 09:41:19.374151 > "230 Welcome you silly person[CR][LF]" 09:41:19.376173 < "PWD" 09:41:19.376536 > "257 "/" is current directory[CR][LF]" 09:41:19.378947 < "EPSV" 09:41:19.379239 ====> Passive DATA channel requested by client 09:41:19.379412 DATA sockfilt for passive data channel starting... 09:41:19.394295 DATA sockfilt for passive data channel started (pid 130523) 09:41:19.395387 DATA sockfilt for passive data channel listens on port 39673 09:41:19.395948 > "229 Entering Passive Mode (|||39673|)[LF]" 09:41:19.396234 Client has been notified that DATA conn will be accepted on port 39673 09:41:19.397534 Client connects to port 39673 09:41:19.397945 ====> Client established passive DATA connection on port 39673 09:41:19.398873 < "TYPE I" 09:41:19.399316 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:19.401434 < "SIZE verifiedserver" 09:41:19.402359 > "213 17[CR][LF]" 09:41:19.404438 < "RETR verifiedserver" 09:41:19.404985 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:19.405713 =====> Closing passive DATA connection... 09:41:19.406052 Server disconnects passive DATA connection 09:41:19.407844 Server disconnected passive DATA connection 09:41:19.408137 DATA sockfilt for passive data channel quits (pid 130523) 09:CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1139.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/16/stdout1139 2> log/16/stderr1139 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl /build/curl/src/curl/tests/.. > log/28/stdout1135 2> log/28/stderr1135 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1121 ../src/curl -q --output log/62/curl1121.out --include --trace-ascii log/62/trace1121 --trace-config all --trace-time -H "Host: host1" -H "Host: host2" -H "Host: host3" http://127.0.0.1:38899/1121 > log/62/stdout1121 2> log/62/stderr1121 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1145 ../src/curl -q --output log/55/curl1145.out --include --trace-ascii log/55/trace1145 --trace-config all --trace-time file://bad-host/build/curl/src/build-curl/tests/log/55/test1145.txt > log/55/stdout1145 2> log/55/stderr1145 41:19.410124 DATA sockfilt for passive data channel quit (pid 130523) 09:41:19.410379 =====> Closed passive DATA connection 09:41:19.411406 > "226 File transfer complete[CR][LF]" 09:41:19.449640 < "QUIT" 09:41:19.450171 > "221 bye bye baby[CR][LF]" 09:41:19.455224 MAIN sockfilt said DISC 09:41:19.455566 ====> Client disconnected 09:41:19.456182 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:18.619303 ====> Client connect 09:41:18.621271 Received DATA (on stdin) 09:41:18.621428 > 160 bytes data, server => client 09:41:18.621736 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:18.621877 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:18.621964 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:18.623645 < 16 bytes data, client => server 09:41:18.623773 'USER anonymous\r\n' 09:41:18.625109 Received DATA (on stdin) 09:41:18.625247 > 33 bytes data, server => client 09:41:18.625840 '331 We are happy you popped in!\r\n' 09:41:18.626523 < 22 bytes data, client => server 09:41:18.626663 'PASS ftp@example.com\r\n' 09:41:18.628185 Received DATA (on stdin) 09:41:18.628324 > 30 bytes data, server => client 09:41:18.628419 '230 Welcome you silly person\r\n' 09:41:18.629069 < 5 bytes data, client => server 09:41:18.629212 'PWD\r\n' 09:41:18.630702 Received DATA (on stdin) 09:41:18.630847 > 30 bytes data, server => client 09:41:18.630933 '257 "/" is current directory\r\n' 09:41:18.631890 < 6 bytes data, client => server 09:41:18.632027 'EPSV\r\n' 09:41:18.649646 Received DATA (on stdin) 09:41:18.649831 > 38 bytes data, server => client 09:41:18.649921 '229 Entering Passive Mode (|||39673|)\n' 09:41:18.651255 < 8 bytes data, client => server 09:41:18.651408 'TYPE I\r\n' 09:41:18.653095 Received DATA (on stdin) 09:41:18.653286 > 33 bytes data, server => client 09:41:18.653398 '200 I modify TYPE as you wanted\r\n' 09:41:18.654237 < 21 bytes data, client => server 09:41:18.654393 'SIZE verifiedserver\r\n' 09:41:18.655682 Received DATA (on stdin) 09:41:18.655857 > 8 bytes data, server => client 09:41:18.656524 '213 17\r\n' 09:41:18.657169 < 21 bytes data, client => server 09:41:18.657328 'RETR verifiedserver\r\n' 09:41:18.660100 Received DATA (on stdin) 09:41:18.660252 > 29 bytes data, server => client 09:41:18.660341 '150 Binary junk (17 bytes).\r\n' 09:41:18.664385 Received DATA (on stdin) 09:41:18.664604 > 28 bytes data, server => client 09:41:18.664831 '226 File transfer complete\r\n' 09:41:18.702385 < 6 bytes data, client => server 09:41:18.702663 'QUIT\r\n' 09:41:18.704380 Received DATA (on stdin) 09:41:18.704636 > 18 bytes data, server => client 09:41:18.704734 '221 bye bye baby\r\n' 09:41:18.708594 ====> Client disconnect 09:41:18.710204 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:19.644215 Running IPv4 version 09:41:19.646950 Listening on port 39673 09:41:19.647343 Wrote pid 130523 to log/61/server/ftp_sockdata.pid 09:41:19.647652 Received PING (on stdin) 09:41:19.648421 Received PORT (on stdin) 09:41:19.650971 ====> Client connect 09:41:19.659157 Received DATA (on stdin) 09:41:19.659328 > 17 bytes data, server => client 09:41:19.659421 'WE ROOLZ: 79508\r\n' 09:41:19.660083 Received DISC (on stdin) 09:41:19.660261 ====> Client forcibly disconnected 09:41:19.662183 Received QUIT (on stdin) 09:41:19.662338 quits 09:41:19.662828 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 421 Timeout Testnum 1120 === End of file server.cmd === Start of file valgrind1120 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1120 * starts no server test 1139...[Verify that all libcurl options have man pages] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1139.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/16/stdout1139 2> log/16/stderr1139 valgrind SKIPPED -r-----e--- OK (1055 out of 1707, remaining: 00:33, took 0.534s, duration: 00:54) * starts no server test 1135...[Verify CURL_EXTERN order] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl /build/curl/src/curl/tests/.. > log/28/stdout1135 2> log/28/stderr1135 valgrind SKIPPED s------e--- OK (1051 out of 1707, remaining: 00:33, took 0.589s, duration: 00:54) test 1121...[HTTP multiple provided Host: headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1121 ../src/curl -q --output log/62/curl1121.out --include --trace-ascii log/62/trace1121 --trace-config all --trace-time -H "Host: host1" -H "Host: host2" -H "Host: host3" http://127.0.0.1:38899/1121 > log/62/stdout1121 2> log/62/stderr1121 1121: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1121 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1121 ../src/curl -q --output log/62/curl1121.out --include --trace-ascii log/62/trace1121 --trace-config all --trace-time -H "Host: host1" -H "Host: host2" -H "Host: host3" http://127.0.0.1:38899/1121 > log/62/stdout1121 2> log/62/stderr1121 === End of file commands.log === Start of file http_server.log 09:41:19.901901 ====> Client connect 09:41:19.902237 accept_connection 3 returned 4 09:41:19.902426 accept_connection 3 returned 0 09:41:19.903343 Read 93 bytes 09:41:19.903571 Process 93 bytes request 09:41:19.903719 Got request: GET /verifiedserver HTTP/1.1 09:41:19.903816 Are-we-friendly question received 09:41:19.904064 Wrote request (93 bytes) input to log/62/server.input 09:41:19.904272 Identifying ourselves as friends 09:41:19.906286 Response sent (56 bytes) and written to log/62/server.response 09:41:19.906417 special request received, no persistency 09:41:19.909658 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1121 === End of file server.cmd === Start oCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1140.pl /build/curl/src/build-curl/tests/../docs/ /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 > log/13/stdout1140 2> log/13/stderr1140 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1175.pl /build/curl/src/curl/tests/.. > log/16/stdout1175 2> log/16/stderr1175 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1177.pl /build/curl/src/build-curl/tests/../docs/libcurl/curl_version_info.3 /build/curl/src/curl/tests/../include/curl/curl.h /build/curl/src/curl/tests/../lib/version.c > log/31/stdout1177 2> log/31/stderr1177 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1146 ../src/curl -q --output log/48/curl1146.out --trace-ascii log/48/trace1146 --trace-config all --trace-time --proto-default file /build/curl/src/build-curl/tests/log/48/test1146.txt > log/48/stdout1146 2> log/48/stderr1146 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1122 ../src/curl -q --output log/64/curl1122.out --include --trace-ascii log/64/trace1122 --trace-config all --trace-time http://127.0.0.1:33073/1122 --tr-encoding > log/64/stdout1122 2> log/64/stderr1122 f file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1121 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1121 * starts no server test 1140...[Verify the nroff of manpages] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1140.pl /build/curl/src/build-curl/tests/../docs/ /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 > log/13/stdout1140 2> log/13/stderr1140 valgrind SKIPPED s------e--- OK (1056 out of 1707, remaining: 00:33, took 0.830s, duration: 00:54) test 1145...[file:// bad host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1145 ../src/curl -q --output log/55/curl1145.out --include --trace-ascii log/55/trace1145 --trace-config all --trace-time file://bad-host/build/curl/src/build-curl/tests/log/55/test1145.txt > log/55/stdout1145 2> log/55/stderr1145 curl returned 1, when expecting 3 1145: exit FAILED == Contents of files in the log/55/ dir after test 1145 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1145 ../src/curl -q --output log/55/curl1145.out --include --trace-ascii log/55/trace1145 --trace-config all --trace-time file://bad-host/build/curl/src/build-curl/tests/log/55/test1145.txt > log/55/stdout1145 2> log/55/stderr1145 === End of file commands.log === Start of file server.cmd Testnum 1145 === End of file server.cmd === Start of file test1145.txt foo bar bar foo moo === End of file test1145.txt === Start of file valgrind1145 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1145 * starts no server test 1175...[Verify that symbols-in-versions and libcurl-errors.3 are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1175.pl /build/curl/src/curl/tests/.. > log/16/stdout1175 2> log/16/stderr1175 valgrind SKIPPED -------e--- OK (1091 out of 1707, remaining: 00:30, took 0.332s, duration: 00:54) * starts no server test 1177...[Verify that feature names and CURL_VERSION_* in lib and docs are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1177.pl /build/curl/src/build-curl/tests/../docs/libcurl/curl_version_info.3 /build/curl/src/curl/tests/../include/curl/curl.h /build/curl/src/curl/tests/../lib/version.c > log/31/stdout1177 2> log/31/stderr1177 valgrind SKIPPED -------e--- OK (1093 out of 1707, remaining: 00:30, took 0.339s, duration: 00:54) CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1165.pl /build/curl/src/curl/tests/.. > log/50/stdout1165 2> log/50/stderr1165 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1126 ../src/curl -q --output log/30/curl1126.out --include --trace-ascii log/30/trace1126 --trace-config all --trace-time http://127.0.0.1:43913/1126 -z "dec 12 12:00:00 1999 GMT" > log/30/stdout1126 2> log/30/stderr1126 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1130 ../src/curl -q --include --trace-ascii log/56/trace1130 --trace-config all --trace-time -d @log/56/file1130 http://127.0.0.1:43265/1130 http://127.0.0.1:43265/11300001 -H "Expect: 100-continue" --expect100-timeout 99 > log/56/stdout1130 2> log/56/stderr1130 test 1146...[--proto-default file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1146 ../src/curl -q --output log/48/curl1146.out --trace-ascii log/48/trace1146 --trace-config all --trace-time --proto-default file /build/curl/src/build-curl/tests/log/48/test1146.txt > log/48/stdout1146 2> log/48/stderr1146 1146: data FAILED: --- log/48/check-expected 2025-07-18 09:41:20.911320651 +0000 +++ log/48/check-generated 2025-07-18 09:41:20.909587832 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/48/ dir after test 1146 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1146 ../src/curl -q --output log/48/curl1146.out --trace-ascii log/48/trace1146 --trace-config all --trace-time --proto-default file /build/curl/src/build-curl/tests/log/48/test1146.txt > log/48/stdout1146 2> log/48/stderr1146 === End of file commands.log === Start of file server.cmd Testnum 1146 === End of file server.cmd === Start of file test1146.txt foo bar bar foo moo === End of file test1146.txt === Start of file valgrind1146 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1146 test 1122...[HTTP GET gzip transfer-encoded content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1122 ../src/curl -q --output log/64/curl1122.out --include --trace-ascii log/64/trace1122 --trace-config all --trace-time http://127.0.0.1:33073/1122 --tr-encoding > log/64/stdout1122 2> log/64/stderr1122 1122: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1122 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1122 ../src/curl -q --output log/64/curl1122.out --include --trace-ascii log/64/trace1122 --trace-config all --trace-time http://127.0.0.1:33073/1122 --tr-encoding > log/64/stdout1122 2> log/64/stderr1122 === End of file commands.log === Start of file http_server.log 09:41:20.035945 ====> Client connect 09:41:20.036260 accept_connection 3 returned 4 09:41:20.036434 accept_connection 3 returned 0 09:41:20.036766 Read 93 bytes 09:41:20.036872 Process 93 bytes request 09:41:20.036967 Got request: GET /verifiedserver HTTP/1.1 09:41:20.037053 Are-we-friendly question received 09:41:20.037301 Wrote request (93 bytes) input to log/64/server.input 09:41:20.037581 Identifying ourselves as friends 09:41:20.038433 Response sent (56 bytes) and written to log/64/server.response 09:41:20.038652 special request received, no persistency 09:41:20.038749 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1122 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1122 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1122 * starts no server test 1165...[Verify configure.ac and source code CURL_DISABLE_-sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1165.pl /build/curl/src/curl/tests/.. > log/50/stdout1165 2> log/50/stderr1165 valgrind SKIPPED -------e--- OK (1081 out of 1707, remaining: 00:31, took 0.871s, duration: 00:54) test 1126...[HTTP 200 If-Modified-Since with newer document] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1126 ../src/curl -q --output log/30/curl1126.out --include --trace-ascii log/30/trace1126 --trace-config all --trace-time http://127.0.0.1:43913/1126 -z "dec 12 12:00:00 1999 GMT" > log/30/stdout1126 2> log/30/stderr1126 1126: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 1126 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1126 ../src/curl -q --output log/30/curl1126.out --include --trace-ascii log/30/trace1126 --trace-config all --trace-time http://127.0.0.1:43913/1126 -z "dec 12 12:00:00 1999 GMT" > log/30/stdout1126 2> log/30/stderr1126 === End of file commands.log === Start of file http_server.log 09:41:20.278856 ====> Client connect 09:41:20.279139 accept_connection 3 returned 4 09:41:20.279291 accept_connection 3 returned 0 09:41:20.279930 Read 93 bytes 09:41:20.280057 Process 93 bytes request 09:41:20.280127 Got request: GET /verifiedserver HTTP/1.1 09:41:20.280186 Are-we-friendly question received 09:41:20.280378 Wrote request (93 bytes) input to log/30/server.input 09:41:20.280694 Identifying ourselves as friends 09:41:20.282275 Response sent (56 bytes) and written to log/30/server.response 09:41:20.282384 special request received, no persistency 09:41:20.282444 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 1126 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind1126 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1126 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1142 ../src/curl -q --output log/5/curl1142.out --include --trace-ascii log/5/trace1142 --trace-config all --trace-time 127.0.0.1:33413/want/1142 -L -x http://127.0.0.1:33413 > log/5/stdout1142 2> log/5/stderr1142 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1134 ../src/curl -q --output log/34/curl1134.out --include --trace-ascii log/34/trace1134 --trace-config all --trace-time http://127.0.0.1:33117/1134 -u user1:password1 --next http://127.0.0.1:33117/11340001 -u 2user:password2 > log/34/stdout1134 2> log/34/stderr1134 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1124 ../src/curl -q --output log/54/curl1124.out --include --trace-ascii log/54/trace1124 --trace-config all --trace-time http://127.0.0.1:44921/1124 --tr-encoding > log/54/stdout1124 2> log/54/stderr1124 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1125 ../src/curl -q --output log/63/curl1125.out --include --trace-ascii log/63/trace1125 --trace-config all --trace-time http://127.0.0.1:38797/1125 --tr-encoding -H "Connection: close" > log/63/stdout1125 2> log/63/stderr1125 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1141 ../src/curl -q --output log/6/curl1141.out --include --trace-ascii log/6/trace1141 --trace-config all --trace-time 127.0.0.1:37181/want/1141 -L -x http://127.0.0.1:37181 > log/6/stdout1141 2> log/6/stderr1141 CMD (1280): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/checksrc.pl -bmagicbad -balsobad log/57/code1185.c > log/57/stdout1185 2> log/57/stderr1185 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1123 ../src/curl -q --output log/33/curl1123.out --include --trace-ascii log/33/trace1123 --trace-config all --trace-time http://127.0.0.1:36559/1123 --tr-encoding > log/33/stdout1123 2> log/33/stderr1123 test 1130...[HTTP POST forced expect 100-continue with a 404] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1130 ../src/curl -q --include --trace-ascii log/56/trace1130 --trace-config all --trace-time -d @log/56/file1130 http://127.0.0.1:43265/1130 http://127.0.0.1:43265/11300001 -H "Expect: 100-continue" --expect100-timeout 99 > log/56/stdout1130 2> log/56/stderr1130 1130: stdout FAILED: --- log/56/check-expected 2025-07-18 09:41:21.169587700 +0000 +++ log/56/check-generated 2025-07-18 09:41:21.168587701 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 404 NOOOOOOOOO[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] -HTTP/1.1 404 NEITHER[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] == Contents of files in the log/56/ dir after test 1130 === Start of file check-expected HTTP/1.1 404 NOOOOOOOOO[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] HTTP/1.1 404 NEITHER[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1130 ../src/curl -q --include --trace-ascii log/56/trace1130 --trace-config all --trace-time -d @log/56/file1130 http://127.0.0.1:43265/1130 http://127.0.0.1:43265/11300001 -H "Expect: 100-continue" --expect100-timeout 99 > log/56/stdout1130 2> log/56/stderr1130 === End of file commands.log === Start of file file1130 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX === End of file file1130 === Start of file http_server.log 09:41:20.323697 ====> Client connect 09:41:20.324014 accept_connection 3 returned 4 09:41:20.324170 accept_connection 3 returned 0 09:41:20.324287 Read 93 bytes 09:41:20.324369 Process 93 bytes request 09:41:20.324451 Got request: GET /verifiedserver HTTP/1.1 09:41:20.324624 Are-we-friendly question received 09:41:20.324847 Wrote request (93 bytes) input to log/56/server.input 09:41:20.325014 Identifying ourselves as friends 09:41:20.327922 Response sent (56 bytes) and written to log/56/server.response 09:41:20.328027 special request received, no persistency 09:41:20.328103 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd skip: 100 Testnum 1130 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind1130 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1130 test 1142...[HTTP redirect to http://// (four slashes!)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1142 ../src/curl -q --output log/5/curl1142.out --include --trace-ascii log/5/trace1142 --trace-config all --trace-time 127.0.0.1:33413/want/1142 -L -x http://127.0.0.1:33413 > log/5/stdout1142 2> log/5/stderr1142 1142: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1142 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1142 ../src/curl -q --output log/5/curl1142.out --include --trace-ascii log/5/trace1142 --trace-config all --trace-time 127.0.0.1:33413/want/1142 -L -x http://127.0.0.1:33413 > log/5/stdout1142 2> log/5/stderr1142 === End of file commands.log === Start of file http_server.log 09:41:20.338880 ====> Client connect 09:41:20.339210 accept_connection 3 returned 4 09:41:20.339365 accept_connection 3 returned 0 09:41:20.339817 Read 93 bytes 09:41:20.339951 Process 93 bytes request 09:41:20.340070 Got request: GET /verifiedserver HTTP/1.1 09:41:20.340196 Are-we-friendly question received 09:41:20.340640 Wrote request (93 bytes) input to log/5/server.input 09:41:20.340848 Identifying ourselves as friends 09:41:20.343744 Response sent (56 bytes) and written to log/5/server.response 09:41:20.343871 special request received, no persistency 09:41:20.343956 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1142 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind1142 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1142 test 1141...[HTTP redirect to http:/// (three slashes!)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1141 ../src/curl -q --output log/6/curl1141.out --include --trace-ascii log/6/trace1141 --trace-config all --trace-time 127.0.0.1:37181/want/1141 -L -x http://127.0.0.1:37181 > log/6/stdout1141 2> log/6/stderr1141 1141: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1141 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1141 ../src/curl -q --output log/6/curl1141.out --include --trace-ascii log/6/trace1141 --trace-config all --trace-time 127.0.0.1:37181/want/1141 -L -x http://127.0.0.1:37181 > log/6/stdout1141 2> log/6/stderr1141 === End of file commands.log === Start of file http_server.log 09:41:20.338605 ====> Client connect 09:41:20.339029 accept_connection 3 returned 4 09:41:20.339190 accept_connection 3 returned 0 09:41:20.339333 Read 93 bytes 09:41:20.339433 Process 93 bytes request 09:41:20.339633 Got request: GET /verifiedserver HTTP/1.1 09:41:20.339729 Are-we-friendly question received 09:41:20.339954 Wrote request (93 bytes) input to log/6/server.input 09:41:20.340269 Identifying ourselves as friends 09:41:20.341251 Response sent (56 bytes) and written to log/6/server.response 09:41:20.341377 special request received, no persistency 09:41:20.341444 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 1141 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind1141 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1141 test 1123...[HTTP GET deflate transfer-encoded content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1123 ../src/curl -q --output log/33/curl1123.out --include --trace-ascii log/33/trace1123 --trace-config all --trace-time http://127.0.0.1:36559/1123 --tr-encoding > log/33/stdout1123 2> log/33/stderr1123 1123: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 1123 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1123 ../src/curl -q --output log/33/curl1123.out --include --trace-ascii log/33/trace1123 --trace-config all --trace-time http://127.0.0.1:36559/1123 --tr-encoding > log/33/stdout1123 2> log/33/stderr1123 === End of file commands.log === Start of file http_server.log 09:41:20.066394 ====> Client connect 09:41:20.066795 accept_connection 3 returned 4 09:41:20.066938 accept_connection 3 returned 0 09:41:20.067054 Read 93 bytes 09:41:20.067134 Process 93 bytes request 09:41:20.067216 Got request: GET /verifiedserver HTTP/1.1 09:41:20.067282 Are-we-friendly question received 09:41:20.067574 Wrote request (93 bytes) input to log/33/server.input 09:41:20.067754 Identifying ourselves as friends 09:41:20.072797 Response sent (56 bytes) and written to log/33/server.response 09:41:20.072912 special request received, no persistency 09:41:20.072978 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 1123 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind1123 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1123 test 1134...[HTTP connection reuse with different credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1134 ../src/curl -q --output log/34/curl1134.out --include --trace-ascii log/34/trace1134 --trace-config all --trace-time http://127.0.0.1:33117/1134 -u user1:password1 --next http://127.0.0.1:33117/11340001 -u 2user:password2 > log/34/stdout1134 2> log/34/stderr1134 1134: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 1134 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1134 ../src/curl -q --output log/34/curl1134.out --include --trace-ascii log/34/trace1134 --trace-config all --trace-time http://127.0.0.1:33117/1134 -u user1:password1 --next http://127.0.0.1:33117/11340001 -u 2user:password2 > log/34/stdout1134 2> log/34/stderr1134 === End of file commands.log === Start of file http_server.log 09:41:20.271884 ====> Client connect 09:41:20.272270 accept_connection 3 returned 4 09:41:20.272548 accept_connection 3 returned 0 09:41:20.272728 Read 93 bytes 09:41:20.272833 Process 93 bytes request 09:41:20.272947 Got request: GET /verifiedserver HTTP/1.1 09:41:20.273051 Are-we-friendly question received 09:41:20.273310 Wrote request (93 bytes) input to log/34/server.input 09:41:20.273692 Identifying ourselves as friends 09:41:20.274611 Response sent (56 bytes) and written to log/34/server.response 09:41:20.274760 special request received, no persistency 09:41:20.274837 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1134 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file valgrind1134 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1134 test 1124...[HTTP GET gzip+chunked transfer-encoded content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1124 ../src/curl -q --output log/54/curl1124.out --include --trace-ascii log/54/trace1124 --trace-config all --trace-time http://127.0.0.1:44921/1124 --tr-encoding > log/54/stdout1124 2> log/54/stderr1124 1124: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 1124 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1124 ../src/curl -q --output log/54/curl1124.out --include --trace-ascii log/54/trace1124 --trace-config all --trace-time http://127.0.0.1:44921/1124 --tr-encoding > log/54/stdout1124 2> log/54/stderr1124 === End of file commands.log === Start of file http_server.log 09:41:20.142093 ====> Client connect 09:41:20.142417 accept_connection 3 returned 4 09:41:20.142781 accept_connection 3 returned 0 09:41:20.142929 Read 93 bytes 09:41:20.143029 Process 93 bytes request 09:41:20.143125 Got request: GET /verifiedserver HTTP/1.1 09:41:20.143213 Are-we-friendly question received 09:41:20.143443 Wrote request (93 bytes) input to log/54/server.input 09:41:20.143736 Identifying ourselves as friends 09:41:20.144608 Response sent (56 bytes) and written to log/54/server.response 09:41:20.144731 special request received, no persistency 09:41:20.144800 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 1124 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind1124 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continueCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1143 ../src/curl -q --output log/3/curl1143.out --include --trace-ascii log/3/trace1143 --trace-config all --trace-time http:/127.0.0.1:42107/want/1143 > log/3/stdout1143 2> log/3/stderr1143 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1148 ../src/curl -q --output log/46/curl1148.out --include --trace-ascii log/46/trace1148 --trace-config all --trace-time http://127.0.0.1:46523/1148 -# --stderr log/46/stderrlog1148 > log/46/stdout1148 2> log/46/stderr1148 -- exiting now. Sorry. === End of file valgrind1124 * starts no server test 1185...[checksrc] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/checksrc.pl -bmagicbad -balsobad log/57/code1185.c > log/57/stdout1185 2> log/57/stderr1185 valgrind SKIPPED s------e--- OK (1098 out of 1707, remaining: 00:30, took 0.776s, duration: 00:55) test 1125...[HTTP GET transfer-encoding with custom Connection:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1125 ../src/curl -q --output log/63/curl1125.out --include --trace-ascii log/63/trace1125 --trace-config all --trace-time http://127.0.0.1:38797/1125 --tr-encoding -H "Connection: close" > log/63/stdout1125 2> log/63/stderr1125 1125: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1125 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1125 ../src/curl -q --output log/63/curl1125.out --include --trace-ascii log/63/trace1125 --trace-config all --trace-time http://127.0.0.1:38797/1125 --tr-encoding -H "Connection: close" > log/63/stdout1125 2> log/63/stderr1125 === End of file commands.log === Start of file http_server.log 09:41:20.248918 ====> Client connect 09:41:20.249230 accept_connection 3 returned 4 09:41:20.249401 accept_connection 3 returned 0 09:41:20.249658 Read 93 bytes 09:41:20.249776 Process 93 bytes request 09:41:20.249876 Got request: GET /verifiedserver HTTP/1.1 09:41:20.249963 Are-we-friendly question received 09:41:20.250194 Wrote request (93 bytes) input to log/63/server.input 09:41:20.250389 Identifying ourselves as friends 09:41:20.251340 Response sent (56 bytes) and written to log/63/server.response 09:41:20.251531 special request received, no persistency 09:41:20.251639 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 1125 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1125 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1125 setenv MSYS2_ARG_CONV_EXCL = http:/ test 1143...[HTTP URL with http:/ (one slash!)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1143 ../src/curl -q --output log/3/curl1143.out --include --trace-ascii log/3/trace1143 --trace-config all --trace-time http:/127.0.0.1:42107/want/1143 > log/3/stdout1143 2> log/3/stderr1143 1143: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1143 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1143 ../src/curl -q --output log/3/curl1143.out --include --trace-ascii log/3/trace1143 --trace-config all --trace-time http:/127.0.0.1:42107/want/1143 > log/3/stdout1143 2> log/3/stderr1143 === End of file commands.log === Start of file http_server.log 09:41:20.407434 ====> Client connect 09:41:20.407901 accept_connection 3 returned 4 09:41:20.408041 accept_connection 3 returned 0 09:41:20.408156 Read 93 bytes 09:41:20.408239 Process 93 bytes request 09:41:20.408330 Got request: GET /verifiedserver HTTP/1.1 09:41:20.408397 Are-we-friendly question received 09:41:20.408676 Wrote request (93 bytes) input to log/3/server.input 09:41:20.408840 Identifying ourselves as friends 09:41:20.411173 Response sent (56 bytes) and written to log/3/server.response 09:41:20.411398 special request received, no persistency 09:41:20.415531 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 1143 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind1143 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1138 ../src/curl -q --output log/19/curl1138.out --include --trace-ascii log/19/trace1138 --trace-config all --trace-time http://127.0.0.1:35697/we/are/all/twits/1138 -L > log/19/stdout1138 2> log/19/stderr1138 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1128 ../src/curl -q --include --trace-ascii log/60/trace1128 --trace-config all --trace-time http://127.0.0.1:38843/1128 http://127.0.0.1:38843/11280001 -z "dec 12 12:00:00 1999 GMT" > log/60/stdout1128 2> log/60/stderr1128 CMD (31488): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/runtests.pl -L /build/curl/src/build-curl/tests/log/10/test1169-library.pl > log/10/stdout1169 2> log/10/stderr1169 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1159 ../src/curl -q --include --trace-ascii log/29/trace1159 --trace-config all --trace-time http://127.0.0.1:36877/we/want/our/1159 -w '%{redirect_url}\n' > log/29/stdout1159 2> log/29/stderr1159 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1144 ../src/curl -q --output log/1/curl1144.out --include --trace-ascii log/1/trace1144 --trace-config all --trace-time -I http://127.0.0.1:40633/1144 --http0.9 > log/1/stdout1144 2> log/1/stderr1144 === End of file valgrind1143 setenv LC_ALL = setenv LC_NUMERIC = en_US.UTF-8 test 1148...[progress-bar] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1148 ../src/curl -q --output log/46/curl1148.out --include --trace-ascii log/46/trace1148 --trace-config all --trace-time http://127.0.0.1:46523/1148 -# --stderr log/46/stderrlog1148 > log/46/stdout1148 2> log/46/stderr1148 1148: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 1148 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1148 ../src/curl -q --output log/46/curl1148.out --include --trace-ascii log/46/trace1148 --trace-config all --trace-time http://127.0.0.1:46523/1148 -# --stderr log/46/stderrlog1148 > log/46/stdout1148 2> log/46/stderr1148 === End of file commands.log === Start of file http_server.log 09:41:20.490697 ====> Client connect 09:41:20.491017 accept_connection 3 returned 4 09:41:20.491191 accept_connection 3 returned 0 09:41:20.491336 Read 93 bytes 09:41:20.491441 Process 93 bytes request 09:41:20.491636 Got request: GET /verifiedserver HTTP/1.1 09:41:20.491730 Are-we-friendly question received 09:41:20.491963 Wrote request (93 bytes) input to log/46/server.input 09:41:20.492157 Identifying ourselves as friends 09:41:20.496725 Response sent (56 bytes) and written to log/46/server.response 09:41:20.496847 special request received, no persistency 09:41:20.496911 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 1148 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind1148 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1148 test 1138...[HTTP redirect with UTF-8 characters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1138 ../src/curl -q --output log/19/curl1138.out --include --trace-ascii log/19/trace1138 --trace-config all --trace-time http://127.0.0.1:35697/we/are/all/twits/1138 -L > log/19/stdout1138 2> log/19/stderr1138 1138: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 1138 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1138 ../src/curl -q --output log/19/curl1138.out --include --trace-ascii log/19/trace1138 --trace-config all --trace-time http://127.0.0.1:35697/we/are/all/twits/1138 -L > log/19/stdout1138 2> log/19/stderr1138 === End of file commands.log === Start of file http_server.log 09:41:20.347391 ====> Client connect 09:41:20.347853 accept_connection 3 returned 4 09:41:20.348014 accept_connection 3 returned 0 09:41:20.348941 Read 93 bytes 09:41:20.349076 Process 93 bytes request 09:41:20.349153 Got request: GET /verifiedserver HTTP/1.1 09:41:20.349220 Are-we-friendly question received 09:41:20.349430 Wrote request (93 bytes) input to log/19/server.input 09:41:20.349716 Identifying ourselves as friends 09:41:20.351290 Response sent (56 bytes) and written to log/19/server.response 09:41:20.351394 special request received, no persistency 09:41:20.351540 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 1138 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind1138 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1138 test 1144...[HTTP HEAD, receive no headers only body] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1144 ../src/curl -q --output log/1/curl1144.out --include --traCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1133 ../src/curl -q --output log/39/curl1133.out --include --trace-ascii log/39/trace1133 --trace-config all --trace-time http://127.0.0.1:42899/we/want/1133 -F "file=@\"log/39/test1133,and;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/39/test1133,and;.txt"' -F 'file3=@"log/39/test1133,and;.txt";type=m/f,"log/39/test1133,and;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b' > log/39/stdout1133 2> log/39/stderr1133 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1147 ../src/curl -q --output log/52/curl1147.out --include --trace-ascii log/52/trace1147 --trace-config all --trace-time http://127.0.0.1:40089/1147 -H @log/52/heads1147.txt > log/52/stdout1147 2> log/52/stderr1147 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1156 ./libtest/libtests lib1156 http://127.0.0.1:37551/want/1156 > log/37/stdout1156 2> log/37/stderr1156 ce-ascii log/1/trace1144 --trace-config all --trace-time -I http://127.0.0.1:40633/1144 --http0.9 > log/1/stdout1144 2> log/1/stderr1144 1144: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1144 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1144 ../src/curl -q --output log/1/curl1144.out --include --trace-ascii log/1/trace1144 --trace-config all --trace-time -I http://127.0.0.1:40633/1144 --http0.9 > log/1/stdout1144 2> log/1/stderr1144 === End of file commands.log === Start of file http_server.log 09:41:20.462181 ====> Client connect 09:41:20.463243 accept_connection 3 returned 4 09:41:20.463523 accept_connection 3 returned 0 09:41:20.463690 Read 93 bytes 09:41:20.463794 Process 93 bytes request 09:41:20.463886 Got request: GET /verifiedserver HTTP/1.1 09:41:20.463961 Are-we-friendly question received 09:41:20.464188 Wrote request (93 bytes) input to log/1/server.input 09:41:20.464373 Identifying ourselves as friends 09:41:20.465875 Response sent (56 bytes) and written to log/1/server.response 09:41:20.465993 special request received, no persistency 09:41:20.466055 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 1144 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind1144 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1144 * starts no server test 1169...[Verify that runtests.pl accepts an -L option] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/runtests.pl -L /build/curl/src/build-curl/tests/log/10/test1169-library.pl > log/10/stdout1169 2> log/10/stderr1169 valgrind SKIPPED -------e--- OK (1085 out of 1707, remaining: 00:31, took 1.330s, duration: 00:55) CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1137 ../src/curl -q --output log/21/curl1137.out --include --trace-ascii log/21/trace1137 --trace-config all --trace-time ftp://127.0.0.1:40295/1137 --ignore-content-length > log/21/stdout1137 2> log/21/stderr1137 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1127 ../src/curl -q --output log/27/curl1127.out --include --trace-ascii log/27/trace1127 --trace-config all --trace-time http://127.0.0.1:42323/1127 -z "dec 12 12:00:00 1999 GMT" > log/27/stdout1127 2> log/27/stderr1127 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1151 ../src/curl -q --output log/42/curl1151.out --include --trace-ascii log/42/trace1151 --trace-config all --trace-time http://127.0.0.1:42819/1151 -c log/42/cookies1151.txt > log/42/stdout1151 2> log/42/stderr1151 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1154 ../src/curl -q --output log/41/curl1154.out --include --trace-ascii log/41/trace1154 --trace-config all --trace-time http://127.0.0.1:35093/1154 > log/41/stdout1154 2> log/41/stderr1154 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1164 ../src/curl -q --output log/11/curl1164.out --include --trace-ascii log/11/trace1164 --trace-config all --trace-time http://127.0.0.1:41387/1164 -w '%{size_download}\n' --http0.9 > log/11/stdout1164 2> log/11/stderr1164 test 1159...[HTTP Location: and 'redirect_url' with non-supported scheme] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1159 ../src/curl -q --include --trace-ascii log/29/trace1159 --trace-config all --trace-time http://127.0.0.1:36877/we/want/our/1159 -w '%{redirect_url}\n' > log/29/stdout1159 2> log/29/stderr1159 1159: stdout FAILED: --- log/29/check-expected 2025-07-18 09:41:21.584605010 +0000 +++ log/29/check-generated 2025-07-18 09:41:21.583587490 +0000 @@ -1,7 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: ht3p://localhost/[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -ht3p://localhost/[LF] == Contents of files in the log/29/ dir after test 1159 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: ht3p://localhost/[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] ht3p://localhost/[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1159 ../src/curl -q --include --trace-ascii log/29/trace1159 --trace-config all --trace-time http://127.0.0.1:36877/we/want/our/1159 -w '%{redirect_url}\n' > log/29/stdout1159 2> log/29/stderr1159 === End of file commands.log === Start of file http_server.log 09:41:20.587846 ====> Client connect 09:41:20.588142 accept_connection 3 returned 4 09:41:20.588305 accept_connection 3 returned 0 09:41:20.588582 Read 93 bytes 09:41:20.588780 Process 93 bytes request 09:41:20.588866 Got request: GET /verifiedserver HTTP/1.1 09:41:20.588935 Are-we-friendly question received 09:41:20.589139 Wrote request (93 bytes) input to log/29/server.input 09:41:20.589306 Identifying ourselves as friends 09:41:20.590926 Response sent (56 bytes) and written to log/29/server.response 09:41:20.591038 special request received, no persistency 09:41:20.591129 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 1159 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind1159 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1159 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1129 ../src/curl -q --include --trace-ascii log/59/trace1129 --trace-config all --trace-time -d @log/59/file1129 --expect100-timeout 99 http://127.0.0.1:43695/1129 http://127.0.0.1:43695/11290001 > log/59/stdout1129 2> log/59/stderr1129 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1131 ../src/curl -q --include --trace-ascii log/43/trace1131 --trace-config all --trace-time -H "Expect: 100-continue" -T log/43/file1131 http://127.0.0.1:41267/1131 -T log/43/file1131 http://127.0.0.1:41267/11310001 --expect100-timeout 99 > log/43/stdout1131 2> log/43/stderr1131 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1162 ./libtest/libtests lib576 "ftp://127.0.0.1:41867/fully_simulated/DOS/[*\\s-'tl" > log/22/stdout1162 2> log/22/stderr1162 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1136 ../src/curl -q --output log/25/curl1136.out --include --trace-ascii log/25/trace1136 --trace-config all --trace-time http://www.example.ck/1136 http://www.ck/1136 http://z-1.compute-1.amazonaws.com/1136 -b none -c log/25/jar1136.txt -x 127.0.0.1:41727 > log/25/stdout1136 2> log/25/stderr1136 test 1128...[HTTP 200 If-Modified-Since with old+new documents] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1128 ../src/curl -q --include --trace-ascii log/60/trace1128 --trace-config all --trace-time http://127.0.0.1:38843/1128 http://127.0.0.1:38843/11280001 -z "dec 12 12:00:00 1999 GMT" > log/60/stdout1128 2> log/60/stderr1128 1128: stdout FAILED: --- log/60/check-expected 2025-07-18 09:41:21.683650040 +0000 +++ log/60/check-generated 2025-07-18 09:41:21.681587441 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 1980 12:10:00 GMT[LF] -Content-Length: 11[LF] -Content-Type: text/html[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:01 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 2002 12:10:00 GMT[LF] -Content-Length: 11[LF] -Content-Type: text/html[LF] -[LF] -0123456789[LF] == Contents of files in the log/60/ dir after test 1128 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 1980 12:10:00 GMT[LF] Content-Length: 11[LF] Content-Type: text/html[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:01 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 2002 12:10:00 GMT[LF] Content-Length: 11[LF] Content-Type: text/html[LF] [LF] 0123456789[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1128 ../src/curl -q --include --trace-ascii log/60/trace1128 --trace-config all --trace-time http://127.0.0.1:38843/1128 http://127.0.0.1:38843/11280001 -z "dec 12 12:00:00 1999 GMT" > log/60/stdout1128 2> log/60/stderr1128 === End of file commands.log === Start of file http_server.log 09:41:20.337848 ====> Client connect 09:41:20.338151 accept_connection 3 returned 4 09:41:20.338316 accept_connection 3 returned 0 09:41:20.338647 Read 93 bytes 09:41:20.338801 Process 93 bytes request 09:41:20.338919 Got request: GET /verifiedserver HTTP/1.1 09:41:20.339032 Are-we-friendly question received 09:41:20.339256 Wrote request (93 bytes) input to log/60/server.input 09:41:20.339431 Identifying ourselves as friends 09:41:20.342726 Response sent (56 bytes) and written to log/60/server.response 09:41:20.342844 special request received, no persistency 09:41:20.342915 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1128 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1128 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1128 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1160 ../src/curl -q --output log/24/curl1160.out --include --trace-ascii log/24/trace1160 --trace-config all --trace-time http://127.0.0.1:39259/1160 -c log/24/cookies1160.txt > log/24/stdout1160 2> log/24/stderr1160 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1161 ../src/curl -q --output log/23/curl1161.out --include --trace-ascii log/23/trace1161 --trace-config all --trace-time http://127.0.0.1:42467/1161 -c log/23/cookies1161.txt > log/23/stdout1161 2> log/23/stderr1161 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1149 ../src/curl -q --output log/45/curl1149.out --include --trace-ascii log/45/trace1149 --trace-config all --trace-time ftp://127.0.0.1:41719/list/this/path/1149/ --ftp-method multicwd --next ftp://127.0.0.1:41719/list/this/path/1149/ --ftp-method nocwd > log/45/stdout1149 2> log/45/stderr1149 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1157 ../src/curl -q --output log/35/curl1157.out --include --trace-ascii log/35/trace1157 --trace-config all --trace-time http://127.0.0.1:43179/1157 -H @log/35/heads1157.txt > log/35/stdout1157 2> log/35/stderr1157 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1153 ../src/curl -q --output log/40/curl1153.out --include --trace-ascii log/40/trace1153 --trace-config all --trace-time ftp://127.0.0.1:45501/test-1153/ > log/40/stdout1153 2> log/40/stderr1153 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1150 ../src/curl -q --output log/44/curl1150.out --include --trace-ascii log/44/trace1150 --trace-config all --trace-time --proxy http://127.0.0.1:34655 http://test.remote.example.com.1150:150/path http://test.remote.example.com.1150:1234/path/ > log/44/stdout1150 2> log/44/stderr1150 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1155 ../src/curl -q --output log/38/curl1155.out --include --trace-ascii log/38/trace1155 --trace-config all --trace-time http://127.0.0.1:33511/1155 -c log/38/cookies1155.txt > log/38/stdout1155 2> log/38/stderr1155 test 1164...[HTTP/0.9 GET and all zeroes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1164 ../src/curl -q --output log/11/curl1164.out --include --trace-ascii log/11/trace1164 --trace-config all --trace-time http://127.0.0.1:41387/1164 -w '%{size_download}\n' --http0.9 > log/11/stdout1164 2> log/11/stderr1164 1164: stdout FAILED: --- log/11/check-expected 2025-07-18 09:41:21.756267043 +0000 +++ log/11/check-generated 2025-07-18 09:41:21.754587404 +0000 @@ -1 +0,0 @@ -208[CR][LF] == Contents of files in the log/11/ dir after test 1164 === Start of file check-expected 208[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1164 ../src/curl -q --output log/11/curl1164.out --include --trace-ascii log/11/trace1164 --trace-config all --trace-time http://127.0.0.1:41387/1164 -w '%{size_download}\n' --http0.9 > log/11/stdout1164 2> log/11/stderr1164 === End of file commands.log === Start of file http_server.log 09:41:20.724003 ====> Client connect 09:41:20.724376 accept_connection 3 returned 4 09:41:20.724785 accept_connection 3 returned 0 09:41:20.724927 Read 93 bytes 09:41:20.725020 Process 93 bytes request 09:41:20.725113 Got request: GET /verifiedserver HTTP/1.1 09:41:20.725197 Are-we-friendly question received 09:41:20.725427 Wrote request (93 bytes) input to log/11/server.input 09:41:20.725694 Identifying ourselves as friends 09:41:20.726423 Response sent (56 bytes) and written to log/11/server.response 09:41:20.726627 special request received, no persistency 09:41:20.726699 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41387... * Connected to 127.0.0.1 (127.0.0.1) port 41387 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41387 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73809 === End of file http_verify.out === Start of file server.cmd Testnum 1164 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73809 === End of file server.response === Start of file valgrind1164 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1164 test 1137...[FTP RETR --ignore-content-length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1137 ../src/curl -q --output log/21/curl1137.out --include --trace-ascii log/21/trace1137 --trace-config all --trace-time ftp://127.0.0.1:40295/1137 --ignore-content-length > log/21/stdout1137 2> log/21/stderr1137 1137: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 1137 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1137 ../src/curl -q --output log/21/curl1137.out --include --trace-ascii log/21/trace1137 --trace-config all --trace-time ftp://127.0.0.1:40295/1137 --ignore-content-length > log/21/stdout1137 2> log/21/stderr1137 === End of file commands.log === Start of file ftp_server.log 09:41:20.073902 ====> Client connect 09:41:20.075434 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:20.079120 < "USER anonymous" 09:41:20.079504 > "331 We are happy you popped in![CR][LF]" 09:41:20.081640 < "PASS ftp@example.com" 09:41:20.082098 > "230 Welcome you silly person[CR][LF]" 09:41:20.084167 < "PWD" 09:41:20.085284 > "257 "/" is current directory[CR][LF]" 09:41:20.087021 < "EPSV" 09:41:20.087292 ====> Passive DATA channel requested by client 09:41:20.087473 DATA sockfilt for passive data channel starting... 09:41:20.098211 DATA sockfilt for passive data channel started (pid 131107) 09:41:20.099460 DATA sockfilt for passive data channel listens on port 45365 09:41:20.099972 > "229 Entering Passive Mode (|||45365|)[LF]" 09:41:20.100182 Client has been notified that DATA conn will be accepted on port 45365 09:41:20.102130 Client connects to port 45365 09:41:20.102409 ====> Client established passive DATA connection on port 45365 09:41:20.103166 < "TYPE I" 09:41:20.104450 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:20.105992 < "SIZE verifiedserver" 09:41:20.107078 > "213 17[CR][LF]" 09:41:20.108502 < "RETR verifiedserver" 09:41:20.109259 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:20.111334 =====> Closing passive DATA connection... 09:41:20.111547 Server disconnects passive DATA connection 09:41:20.112402 Server disconnected passive DATA connection 09:41:20.112640 DATA sockfilt for passive data channel quits (pid 131107) 09:41:20.121585 DATA sockfilt for passive data channel quit (pid 131107) 09:41:20.121922 =====> Closed passive DATA connection 09:41:20.122260 > "226 File transfer complete[CR][LF]" 09:41:20.152554 < "QUIT" 09:41:20.153321 > "221 bye bye baby[CR][LF]" 09:41:20.154876 MAIN sockfilt said DISC 09:41:20.155204 ====> Client disconnected 09:41:20.155645 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:20.325633 ====> Client connect 09:41:20.328756 Received DATA (on stdin) 09:41:20.328903 > 160 bytes data, server => client 09:41:20.330562 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:20.330711 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:20.330788 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:20.332025 < 16 bytes data, client => server 09:41:20.332169 'USER anonymous\r\n' 09:41:20.333608 Received DATA (on stdin) 09:41:20.333774 > 33 bytes data, server => client 09:41:20.333857 '331 We are happy you popped in!\r\n' 09:41:20.334632 < 22 bytes data, client => server 09:41:20.334781 'PASS ftp@example.com\r\n' 09:41:20.336218 Received DATA (on stdin) 09:41:20.336320 > 30 bytes data, server => client 09:41:20.336394 '230 Welcome you silly person\r\n' 09:41:20.336988 < 5 bytes data, client => server 09:41:20.337119 'PWD\r\n' 09:41:20.338240 ReceiveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1152 ../src/curl -q --output log/58/curl1152.out --include --trace-ascii log/58/trace1152 --trace-config all --trace-time ftp://127.0.0.1:38901/test-1152/ > log/58/stdout1152 2> log/58/stderr1152 d DATA (on stdin) 09:41:20.338377 > 30 bytes data, server => client 09:41:20.338589 '257 "/" is current directory\r\n' 09:41:20.339973 < 6 bytes data, client => server 09:41:20.340174 'EPSV\r\n' 09:41:20.353662 Received DATA (on stdin) 09:41:20.353824 > 38 bytes data, server => client 09:41:20.353915 '229 Entering Passive Mode (|||45365|)\n' 09:41:20.355201 < 8 bytes data, client => server 09:41:20.355352 'TYPE I\r\n' 09:41:20.357249 Received DATA (on stdin) 09:41:20.357591 > 33 bytes data, server => client 09:41:20.357777 '200 I modify TYPE as you wanted\r\n' 09:41:20.359063 < 21 bytes data, client => server 09:41:20.359197 'SIZE verifiedserver\r\n' 09:41:20.360061 Received DATA (on stdin) 09:41:20.360188 > 8 bytes data, server => client 09:41:20.360340 '213 17\r\n' 09:41:20.361661 < 21 bytes data, client => server 09:41:20.361803 'RETR verifiedserver\r\n' 09:41:20.362656 Received DATA (on stdin) 09:41:20.362789 > 29 bytes data, server => client 09:41:20.363552 '150 Binary junk (17 bytes).\r\n' 09:41:20.376278 Received DATA (on stdin) 09:41:20.376404 > 28 bytes data, server => client 09:41:20.376575 '226 File transfer complete\r\n' 09:41:20.405437 < 6 bytes data, client => server 09:41:20.405673 'QUIT\r\n' 09:41:20.406671 Received DATA (on stdin) 09:41:20.406814 > 18 bytes data, server => client 09:41:20.407345 '221 bye bye baby\r\n' 09:41:20.407932 ====> Client disconnect 09:41:20.411166 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:20.350356 Running IPv4 version 09:41:20.350993 Listening on port 45365 09:41:20.351325 Wrote pid 131107 to log/21/server/ftp_sockdata.pid 09:41:20.351593 Received PING (on stdin) 09:41:20.352699 Received PORT (on stdin) 09:41:20.355578 ====> Client connect 09:41:20.363891 Received DATA (on stdin) 09:41:20.364014 > 17 bytes data, server => client 09:41:20.364107 'WE ROOLZ: 78763\r\n' 09:41:20.365442 Received DISC (on stdin) 09:41:20.365765 ====> Client forcibly disconnected 09:41:20.366844 Received QUIT (on stdin) 09:41:20.366968 quits 09:41:20.367338 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1137 === End of file server.cmd === Start of file valgrind1137 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1137 setenv MSYS2_ARG_CONV_EXCL = ftp:// test 1162...[FTP wildcard with crazy pattern] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1162 ./libtest/libtests lib576 "ftp://127.0.0.1:41867/fully_simulated/DOS/[*\\s-'tl" > log/22/stdout1162 2> log/22/stderr1162 1162: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 1162 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1162 ./libtest/libtests lib576 "ftp://127.0.0.1:41867/fully_simulated/DOS/[*\\s-'tl" > log/22/stdout1162 2> log/22/stderr1162 === End of file commands.log === Start of file ftp_server.log 09:41:20.493507 ====> Client connect 09:41:20.497664 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:20.498833 < "USER anonymous" 09:41:20.500932 > "331 We are happy you popped in![CR][LF]" 09:41:20.505309 < "PASS ftp@example.com" 09:41:20.505660 > "230 Welcome you silly person[CR][LF]" 09:41:20.507975 < "PWD" 09:41:20.511952 > "257 "/" is current directory[CR][LF]" 09:41:20.514320 < "EPSV" 09:41:20.514593 ====> Passive DATA channel requested by client 09:41:20.515075 DATA sockfilt for passive data channel starting... 09:41:20.549816 DATA sockfilt for passive data channel started (pid 131912) 09:41:20.551136 DATA sockfilt for passive data channel listens on port 34053 09:41:20.551599 > "229 Entering Passive Mode (|||34053|)[LF]" 09:41:20.551898 Client has been notified that DATA conn will be accepted on port 34053 09:41:20.554026 Client connects to port 34053 09:41:20.554306 ====> Client established passive DATA connection on port 34053 09:41:20.555620 < "TYPE I" 09:41:20.556463 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:20.558734 < "SIZE verifiedserver" 09:41:20.559247 > "213 17[CR][LF]" 09:41:20.562502 < "RETR verifiedserver" 09:41:20.563584 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:20.564374 =====> Closing passive DATA connection... 09:41:20.564620 Server disconnects passive DATA connection 09:41:20.567428 Fancy that; client wants to DISC, too 09:41:20.569024 Server disconnected passive DATA connection 09:41:20.569346 DATA sockfilt for passive data channel quits (pid 131912) 09:41:20.571733 DATA sockfilt for passive data channel quit (pid 131912) 09:41:20.572386 =====> Closed passive DATA connection 09:41:20.573844 > "226 File transfer complete[CR][LF]" 09:41:20.613265 < "QUIT" 09:41:20.613689 > "221 bye bye baby[CR][LF]" 09:41:20.628306 MAIN sockfilt said DISC 09:41:20.629268 ====> Client disconnected 09:41:20.629969 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:20.746658 ====> Client connect 09:41:20.748588 Received DATA (on stdin) 09:41:20.748760 > 160 bytes data, server => client 09:41:20.750632 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:20.750818 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:20.750897 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:20.751827 < 16 bytes data, client => server 09:41:20.751994 'USER anonymous\r\n' 09:41:20.752929 Received DATA (on stdin) 09:41:20.753063 > 33 bytes data, server => client 09:41:20.755011 '331 We are happy you popped in!\r\n' 09:41:20.755845 < 22 bytes data, client => server 09:41:20.756018 'PASS ftp@example.com\r\n' 09:41:20.759787 Received DATA (on stdin) 09:41:20.759931 > 30 bytes data, server => client 09:41:20.760018 '230 Welcome you silly person\r\n' 09:41:20.760673 < 5 bytes data, client => server 09:41:20.760824 'PWD\r\n' 09:41:20.762049 Received DATA (on stdin) 09:41:20.762182 > 30 bytes data, server => client 09:41:20.766300 '257 "/" is current directory\r\n' 09:41:20.767351 < 6 bytes data, client => server 09:41:20.767589 'EPSV\r\n' 09:41:20.805917 Received DATA (on stdin) 09:41:20.806069 > 38 bytes data, server => client 09:41:20.806159 '229 Entering Passive Mode (|||34053|)\n' 09:41:20.808406 < 8 bytes data, client => server 09:41:20.808627 'TYPE I\r\n' 09:41:20.809832 Received DATA (on stdin) 09:41:20.809968 > 33 bytes data, server => client 09:41:20.810727 '200 I modify TYPE as you wanted\r\n' 09:41:20.811846 < 21 bytes data, client => server 09:41:20.812013 'SIZE verifiedserver\r\n' 09:41:20.813566 Received DATA (on stdin) 09:41:20.813719 > 8 bytes data, server => client 09:41:20.813806 '213 17\r\n' 09:41:20.814730 < 21 bytes data, client => server 09:41:20.814880 'RETR verifiedserver\r\n' 09:41:20.818573 Received DATA (on stdin) 09:41:20.818709 > 29 bytes data, server => client 09:41:20.818792 '150 Binary junk (17 bytes).\r\n' 09:41:20.826848 Received DATA (on stdin) 09:41:20.827012 > 28 bytes data, server => client 09:41:20.827190 '226 File transfer complete\r\n' 09:41:20.863950 < 6 bytes data, client => server 09:41:20.864113 'QUIT\r\n' 09:41:20.868594 Received DATA (on stdin) 09:41:20.868769 > 18 bytes data, server => client 09:41:20.868862 '221 bye bye baby\r\n' 09:41:20.881586 ====> Client disconnect 09:41:20.882367 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:20.799053 Running IPv4 version 09:41:20.799717 Listening on port 34053 09:41:20.800076 Wrote pid 131912 to log/22/server/ftp_sockdata.pid 09:41:20.800238 Received PING (on stdin) 09:41:20.804107 Received PORT (on stdin) 09:41:20.807390 ====> Client connect 09:41:20.819101 Received DATA (on stdin) 09:41:20.819246 > 17 bytes data, server => client 09:41:20.819328 'WE ROOLZ: 77494\r\n' 09:41:20.820405 ====> Client disconnect 09:41:20.821889 Received DISC (on stdin) 09:41:20.822045 Crikey! Client also wants to disconnect 09:41:20.822151 Received ACKD (on stdin) 09:41:20.823387 Received QUIT (on stdin) 09:41:20.823632 quits 09:41:20.824090 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1162 === End of file server.cmd === Start of file valgrind1162 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1162 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1163 ./libtest/libtests lib576 "ftp://127.0.0.1:34743/fully_simulated/DOS/*[][" > log/20/stdout1163 2> log/20/stderr1163 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1178 ../src/curl -q --output log/14/curl1178.out --include --trace-ascii log/14/trace1178 --trace-config all --trace-time http://127.0.0.1:43309/we/want/that/page/1178 -x http://127.0.0.1:43309 -U AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB > log/14/stdout1178 2> log/14/stderr1178 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1172 ../src/curl -q --output log/61/curl1172.out --include --trace-ascii log/61/trace1172 --trace-config all --trace-time http://127.0.0.1:44381/1172 --no-http0.9 > log/61/stdout1172 2> log/61/stderr1172 setenv TZ = GMT test 1136...[Check cookies against PSL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1136 ../src/curl -q --output log/25/curl1136.out --include --trace-ascii log/25/trace1136 --trace-config all --trace-time http://www.example.ck/1136 http://www.ck/1136 http://z-1.compute-1.amazonaws.com/1136 -b none -c log/25/jar1136.txt -x 127.0.0.1:41727 > log/25/stdout1136 2> log/25/stderr1136 1136: data FAILED: --- log/25/check-expected 2025-07-18 09:41:21.855326253 +0000 +++ log/25/check-generated 2025-07-18 09:41:21.853674074 +0000 @@ -1,13 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 4[LF] -Content-Type: text/html[LF] -Funny-head: yesyes[LF] -Set-Cookie: test1=forbidden1; domain=example.ck; path=/;[LF] -Set-Cookie: test2=allowed2; domain=www.example.ck; path=/;[LF] -Set-Cookie: test3=forbidden3; domain=ck; path=/;[LF] -Set-Cookie: test4=allowed4; domain=www.ck; path=/;[LF] -Set-Cookie: test5=forbidden5; domain=z-1.compute-1.amazonaws.com; path=/;[LF] -[LF] -boo[LF] == Contents of files in the log/25/ dir after test 1136 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 4[LF] Content-Type: text/html[LF] Funny-head: yesyes[LF] Set-Cookie: test1=forbidden1; domain=example.ck; path=/;[LF] Set-Cookie: test2=allowed2; domain=www.example.ck; path=/;[LF] Set-Cookie: test3=forbidden3; domain=ck; path=/;[LF] Set-Cookie: test4=allowed4; domain=www.ck; path=/;[LF] Set-Cookie: test5=forbidden5; domain=z-1.compute-1.amazonaws.com; path=/;[LF] [LF] boo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1136 ../src/curl -q --output log/25/curl1136.out --include --trace-ascii log/25/trace1136 --trace-config all --trace-time http://www.example.ck/1136 http://www.ck/1136 http://z-1.compute-1.amazonaws.com/1136 -b none -c log/25/jar1136.txt -x 127.0.0.1:41727 > log/25/stdout1136 2> log/25/stderr1136 === End of file commands.log === Start of file http_server.log 09:41:20.313137 ====> Client connect 09:41:20.313421 accept_connection 3 returned 4 09:41:20.313732 accept_connection 3 returned 0 09:41:20.313857 Read 93 bytes 09:41:20.313942 Process 93 bytes request 09:41:20.314018 Got request: GET /verifiedserver HTTP/1.1 09:41:20.314088 Are-we-friendly question received 09:41:20.314303 Wrote request (93 bytes) input to log/25/server.input 09:41:20.314565 Identifying ourselves as friends 09:41:20.315240 Response sent (56 bytes) and written to log/25/server.response 09:41:20.315348 special request received, no persistency 09:41:20.315412 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd Testnum 1136 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind1136 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1136 test 1127...[HTTP 200 If-Modified-Since with older document] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1127 ../src/curl -q --output log/27/curl1127.out --include --trace-ascii log/27/trace1127 --trace-config all --trace-time http://127.0.0.1:42323/1127 -z "dec 12 12:00:00 1999 GMT" > log/27/stdout1127 2> log/27/stderr1127 1127: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 1127 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1127 ../src/curl -q --output log/27/curl1127.out --include --trace-ascii log/27/trace1127 --trace-config all --trace-time http://127.0.0.1:42323/1127 -z "dec 12 12:00:00 1999 GMT" > log/27/stdout1127 2> log/27/stderr1127 === End of file commands.log === Start of file http_server.log 09:41:20.282249 ====> Client connect 09:41:20.282664 accept_connection 3 returned 4 09:41:20.282829 accept_connection 3 returned 0 09:41:20.282951 Read 93 bytes 09:41:20.283047 Process 93 bytes request 09:41:20.283137 Got request: GET /verifiedserver HTTP/1.1 09:41:20.283216 Are-we-friendly question received 09:41:20.283423 Wrote request (93 bytes) input to log/27/server.input 09:41:20.284744 Identifying ourselves as friends 09:41:20.285423 Response sent (56 bytes) and written to log/27/server.response 09:41:20.285656 special request received, no persistency 09:41:20.285742 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 1127 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind1127 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1127 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1166 ../src/curl -q --output log/47/curl1166.out --include --trace-ascii log/47/trace1166 --trace-config all --trace-time http://127.0.0.1:41103/want/1166 http://127.0.0.1:41103/want/1166 > log/47/stdout1166 2> log/47/stderr1166 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1176 ../src/curl -q --include --trace-ascii log/49/trace1176 --trace-config all --trace-time http://127.0.0.1:42667/1176 -o 'log/49/base-#0' > log/49/stdout1176 2> log/49/stderr1176 test 1156...[HTTP resume/range fail range-error content-range combinations] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1156 ./libtest/libtests lib1156 http://127.0.0.1:37551/want/1156 > log/37/stdout1156 2> log/37/stderr1156 1156: stdout FAILED: --- log/37/check-expected 2025-07-18 09:41:21.929587315 +0000 +++ log/37/check-generated 2025-07-18 09:41:21.928587316 +0000 @@ -1 +0,0 @@ -0[LF] == Contents of files in the log/37/ dir after test 1156 === Start of file check-expected 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1156 ./libtest/libtests lib1156 http://127.0.0.1:37551/want/1156 > log/37/stdout1156 2> log/37/stderr1156 === End of file commands.log === Start of file http_server.log 09:41:20.672120 ====> Client connect 09:41:20.672418 accept_connection 3 returned 4 09:41:20.672663 accept_connection 3 returned 0 09:41:20.675284 Read 93 bytes 09:41:20.675413 Process 93 bytes request 09:41:20.675580 Got request: GET /verifiedserver HTTP/1.1 09:41:20.675676 Are-we-friendly question received 09:41:20.675915 Wrote request (93 bytes) input to log/37/server.input 09:41:20.676118 Identifying ourselves as friends 09:41:20.676952 Response sent (56 bytes) and written to log/37/server.response 09:41:20.677059 special request received, no persistency 09:41:20.677143 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 1156 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind1156 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1156 test 1133...[HTTP RFC1867-type formposting with filename/data contains ',', ';', '"'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1133 ../src/curl -q --output log/39/curl1133.out --include --trace-ascii log/39/trace1133 --trace-config all --trace-time http://127.0.0.1:42899/we/want/1133 -F "file=@\"log/39/test1133,and;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/39/test1133,and;.txt"' -F 'file3=@"log/39/test1133,and;.txt";type=m/f,"log/39/test1133,and;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b' > log/39/stdout1133 2> log/39/stderr1133 1133: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 1133 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1133 ../src/curl -q --output log/39/curl1133.out --include --trace-ascii log/39/trace1133 --trace-config all --trace-time http://127.0.0.1:42899/we/want/1133 -F "file=@\"log/39/test1133,and;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/39/test1133,and;.txt"' -F 'file3=@"log/39/test1133,and;.txt";type=m/f,"log/39/test1133,and;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b' > log/39/stdout1133 2> log/39/stderr1133 === End of file commands.log === Start of file http_server.log 09:41:20.349198 ====> Client connect 09:41:20.349739 accept_connection 3 returned 4 09:41:20.349914 accept_connection 3 returned 0 09:41:20.350031 Read 93 bytes 09:41:20.350114 Process 93 bytes request 09:41:20.350197 Got request: GET /verifiedserver HTTP/1.1 09:41:20.350283 Are-we-friendly question received 09:41:20.350574 Wrote request (93 bytes) input to log/39/server.input 09:41:20.350767 Identifying ourselves as friends 09:41:20.355689 Response sent (56 bytes) and written to log/39/server.response 09:41:20.355800 special request received, no persistency 09:41:20.355861 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 1133 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file test1133,and;.txt foo bar This is a bar foo bar foo === End of file test1133,and;.txt === Start of file valgrind1133 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1158 ../src/curl -q --output log/32/curl1158.out --include --trace-ascii log/32/trace1158 --trace-config all --trace-time http://127.0.0.1:45607/we/want/1158 -F "file=@\"log/32/test1158\\\".txt\";type=mo/foo;filename=\"test1158\\\".txt\"" -F 'file2=@"log/32/test1158\".txt"' -F 'file3=@"log/32/test1158\".txt";type=m/f,"log/32/test1158\".txt"' > log/32/stdout1158 2> log/32/stderr1158 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1171 ../src/curl -q --output log/7/curl1171.out --include --trace-ascii log/7/trace1171 --trace-config all --trace-time http://127.0.0.1:44647/1171 --tr-encoding -H "Connection;" > log/7/stdout1171 2> log/7/stderr1171 uSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1133 test 1154...[HTTP GET with 100K (too long) response header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1154 ../src/curl -q --output log/41/curl1154.out --include --trace-ascii log/41/trace1154 --trace-config all --trace-time http://127.0.0.1:35093/1154 > log/41/stdout1154 2> log/41/stderr1154 1154: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 1154 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1154 ../src/curl -q --output log/41/curl1154.out --include --trace-ascii log/41/trace1154 --trace-config all --trace-time http://127.0.0.1:35093/1154 > log/41/stdout1154 2> log/41/stderr1154 === End of file commands.log === Start of file http_server.log 09:41:20.626776 ====> Client connect 09:41:20.627097 accept_connection 3 returned 4 09:41:20.627271 accept_connection 3 returned 0 09:41:20.627408 Read 93 bytes 09:41:20.627595 Process 93 bytes request 09:41:20.627704 Got request: GET /verifiedserver HTTP/1.1 09:41:20.627790 Are-we-friendly question received 09:41:20.628014 Wrote request (93 bytes) input to log/41/server.input 09:41:20.628205 Identifying ourselves as friends 09:41:20.629040 Response sent (56 bytes) and written to log/41/server.response 09:41:20.629164 special request received, no persistency 09:41:20.629274 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 1154 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind1154 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1154 test 1151...[HTTP with too long cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1151 ../src/curl -q --output log/42/curl1151.out --include --trace-ascii log/42/trace1151 --trace-config all --trace-time http://127.0.0.1:42819/1151 -c log/42/cookies1151.txt > log/42/stdout1151 2> log/42/stderr1151 1151: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 1151 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1151 ../src/curl -q --output log/42/curl1151.out --include --trace-ascii log/42/trace1151 --trace-config all --trace-time http://127.0.0.1:42819/1151 -c log/42/cookies1151.txt > log/42/stdout1151 2> log/42/stderr1151 === End of file commands.log === Start of file http_server.log 09:41:20.562972 ====> Client connect 09:41:20.563241 accept_connection 3 returned 4 09:41:20.563387 accept_connection 3 returned 0 09:41:20.563649 Read 93 bytes 09:41:20.563801 Process 93 bytes request 09:41:20.563896 Got request: GET /verifiedserver HTTP/1.1 09:41:20.563971 Are-we-friendly question received 09:41:20.564193 Wrote request (93 bytes) input to log/42/server.input 09:41:20.564368 Identifying ourselves as friends 09:41:20.565161 Response sent (56 bytes) and written to log/42/server.response 09:41:20.565275 special request received, no persistency 09:41:20.565340 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 1151 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind1151 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1151 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1180 ../src/curl -q --output log/12/curl1180.out --include --trace-ascii log/12/trace1180 --trace-config all --trace-time --proxy http://127.0.0.1:45579 -H "Proxy-Connection: Keep-Alive" http://127.0.0.1:45579/1180 > log/12/stdout1180 2> log/12/stderr1180 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1174 ../src/curl -q --output log/28/curl1174.out --include --trace-ascii log/28/trace1174 --trace-config all --trace-time http://127.0.0.1:37545/1174 > log/28/stdout1174 2> log/28/stderr1174 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1170 ../src/curl -q --output log/9/curl1170.out --include --trace-ascii log/9/trace1170 --trace-config all --trace-time http://127.0.0.1:46607/1170 --tr-encoding -H "Connection:" > log/9/stdout1170 2> log/9/stderr1170 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1181 ../src/curl -q --output log/8/curl1181.out --include --trace-ascii log/8/trace1181 --trace-config all --trace-time --proxy http://127.0.0.1:46129 --proxy-header "Proxy-Connection: Keep-Alive" http://127.0.0.1:46129/1181 > log/8/stdout1181 2> log/8/stderr1181 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1168 ../src/curl -q --output log/15/curl1168.out --include --trace-ascii log/15/trace1168 --trace-config all --trace-time http://127.0.0.1:35435/want/1168 -L -u "catmai#d:#DZaRJYrixKE*gFY" > log/15/stdout1168 2> log/15/stderr1168 test 1131...[HTTP PUT expect 100-continue with a 400] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1131 ../src/curl -q --include --trace-ascii log/43/trace1131 --trace-config all --trace-time -H "Expect: 100-continue" -T log/43/file1131 http://127.0.0.1:41267/1131 -T log/43/file1131 http://127.0.0.1:41267/11310001 --expect100-timeout 99 > log/43/stdout1131 2> log/43/stderr1131 1131: stdout FAILED: --- log/43/check-expected 2025-07-18 09:41:22.024533267 +0000 +++ log/43/check-generated 2025-07-18 09:41:22.023587268 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 400 NOOOOOOOOO[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 9[LF] -Content-Type: text/html[LF] -[LF] -FAILURE1[LF] -HTTP/1.1 400 NEITHER[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 9[LF] -Content-Type: text/html[LF] -[LF] -FAILURE2[LF] == Contents of files in the log/43/ dir after test 1131 === Start of file check-expected HTTP/1.1 400 NOOOOOOOOO[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 9[LF] Content-Type: text/html[LF] [LF] FAILURE1[LF] HTTP/1.1 400 NEITHER[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 9[LF] Content-Type: text/html[LF] [LF] FAILURE2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1131 ../src/curl -q --include --trace-ascii log/43/trace1131 --trace-config all --trace-time -H "Expect: 100-continue" -T log/43/file1131 http://127.0.0.1:41267/1131 -T log/43/file1131 http://127.0.0.1:41267/11310001 --expect100-timeout 99 > log/43/stdout1131 2> log/43/stderr1131 === End of file commands.log === Start of file file1131 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX === End of file file1131 === Start of file http_server.log 09:41:20.310690 ====> Client connect 09:41:20.311007 accept_connection 3 returned 4 09:41:20.311195 accept_connection 3 returned 0 09:41:20.311373 Read 93 bytes 09:41:20.311562 Process 93 bytes request 09:41:20.311665 Got request: GET /verifiedserver HTTP/1.1 09:41:20.311741 Are-we-friendly question received 09:41:20.311955 Wrote request (93 bytes) input to log/43/server.input 09:41:20.312127 Identifying ourselves as friends 09:41:20.312940 Response sent (56 bytes) and written to log/43/server.response 09:41:20.313045 special request received, no persistency 09:41:20.313113 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd skip: 100 Testnum 1131 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind1131 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1131 test 1147...[Get -H headers from a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1147 ../src/curl -q --output log/52/curl1147.out --include --trace-ascii log/52/trace1147 --trace-config all --trace-time http://127.0.0.1:40089/1147 -H @log/52/heads1147.txt > log/52/stdout1147 2> log/52/stderr1147 1147: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1147 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1147 ../src/curl -q --output log/52/curl1147.out --include --trace-ascii log/52/trace1147 --trace-config all --trace-time http://127.0.0.1:40089/1147 -H @log/52/heads1147.txt > log/52/stdout1147 2> log/52/stderr1147 === End of file commands.log === Start of file heads1147.txt One: 1 Two: 2 no-colon And A Funny One : wohoo User-Agent: === End of file heads1147.txt === Start of file http_server.log 09:41:20.458987 ====> Client connect 09:41:20.459280 accept_connection 3 returned 4 09:41:20.459447 accept_connection 3 returned 0 09:41:20.459719 Read 93 bytes 09:41:20.459823 Process 93 bytes request 09:41:20.459920 Got request: GET /verifiedserver HTTP/1.1 09:41:20.460004 Are-we-friendly question received 09:41:20.460233 Wrote request (93 bytes) input to log/52/server.input 09:41:20.460399 Identifying ourselves as friends 09:41:20.464216 Response sent (56 bytes) and written to log/52/server.response 09:41:20.464360 special request received, no persistency 09:41:20.464431 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 1147 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind1147 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1147 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1183 ../src/curl -q --output log/2/curl1183.out --include --trace-ascii log/2/trace1183 --trace-config all --trace-time http://127.0.0.1:39659/1183 > log/2/stdout1183 2> log/2/stderr1183 test 1129...[HTTP POST expect 100-continue with a 404] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1129 ../src/curl -q --include --trace-ascii log/59/trace1129 --trace-config all --trace-time -d @log/59/file1129 --expect100-timeout 99 http://127.0.0.1:43695/1129 http://127.0.0.1:43695/11290001 > log/59/stdout1129 2> log/59/stderr1129 1129: stdout FAILED: --- log/59/check-expected 2025-07-18 09:41:22.094587612 +0000 +++ log/59/check-generated 2025-07-18 09:41:22.093587232 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 404 NOOOOOOOOO[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] -HTTP/1.1 404 NEITHER[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] == Contents of files in the log/59/ dir after test 1129 === Start of file check-expected HTTP/1.1 404 NOOOOOOOOO[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] HTTP/1.1 404 NEITHER[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1129 ../src/curl -q --include --trace-ascii log/59/trace1129 --trace-config all --trace-time -d @log/59/file1129 --expect100-timeout 99 http://127.0.0.1:43695/1129 http://127.0.0.1:43695/11290001 > log/59/stdout1129 2> log/59/stderr1129 === End of file commands.log === Start of file file1129 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1188 ../src/curl -q --output log/16/curl1188.out --include --trace-ascii log/16/trace1188 --trace-config all --trace-time -f -s -w '%{onerror}%{stderr}%{urlnum} says %{exitcode} %{errormsg}\n' http://127.0.0.1:34829/we/want/our/1188 http://127.0.0.1:34829/we/want/our/1188 > log/16/stdout1188 2> log/16/stderr1188 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx === End of file file1129 === Start of file http_server.log 09:41:20.287833 ====> Client connect 09:41:20.288091 accept_connection 3 returned 4 09:41:20.288228 accept_connection 3 returned 0 09:41:20.288340 Read 93 bytes 09:41:20.288426 Process 93 bytes request 09:41:20.288673 Got request: GET /verifiedserver HTTP/1.1 09:41:20.288761 Are-we-friendly question received 09:41:20.288949 Wrote request (93 bytes) input to log/59/server.input 09:41:20.289106 Identifying ourselves as friends 09:41:20.289855 Response sent (56 bytes) and written to log/59/server.response 09:41:20.289956 special request received, no persistency 09:41:20.290017 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === StaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1187 ../src/curl -q --output log/55/curl1187.out --include --trace-ascii log/55/trace1187 --trace-config all --trace-time smtp://127.0.0.1:34681/1187 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=This is the mail text" -F '=File content;filename="strange\file\"name"' log/55/stdout1187 2> log/55/stderr1187 rt of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd skip: 1053700 Testnum 1129 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind1129 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1129 test 1183...[1183 used instead of actual test number] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1183 ../src/curl -q --output log/2/curl1183.out --include --trace-ascii log/2/trace1183 --trace-config all --trace-time http://127.0.0.1:39659/1183 > log/2/stdout1183 2> log/2/stderr1183 1183: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1183 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1183 ../src/curl -q --output log/2/curl1183.out --include --trace-ascii log/2/trace1183 --trace-config all --trace-time http://127.0.0.1:39659/1183 > log/2/stdout1183 2> log/2/stderr1183 === End of file commands.log === Start of file http_server.log 09:41:21.341423 ====> Client connect 09:41:21.341911 accept_connection 3 returned 4 09:41:21.342112 accept_connection 3 returned 0 09:41:21.344443 Read 93 bytes 09:41:21.344671 Process 93 bytes request 09:41:21.344766 Got request: GET /verifiedserver HTTP/1.1 09:41:21.344845 Are-we-friendly question received 09:41:21.345085 Wrote request (93 bytes) input to log/2/server.input 09:41:21.345283 Identifying ourselves as friends 09:41:21.349139 Response sent (56 bytes) and written to log/2/server.response 09:41:21.349263 special request received, no persistency 09:41:21.349343 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 1183 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind1183 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1183 test 1171...[HTTP GET transfer-encoding with blanked Connection:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1171 ../src/curl -q --output log/7/curl1171.out --include --trace-ascii log/7/trace1171 --trace-config all --trace-time http://127.0.0.1:44647/1171 --tr-encoding -H "Connection;" > log/7/stdout1171 2> log/7/stderr1171 1171: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1171 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1171 ../src/curl -q --output log/7/curl1171.out --include --trace-ascii log/7/trace1171 --trace-config all --trace-time http://127.0.0.1:44647/1171 --tr-encoding -H "Connection;" > log/7/stdout1171 2> log/7/stderr1171 === End of file commands.log === Start of file http_server.log 09:41:20.940992 ====> Client connect 09:41:20.941303 accept_connection 3 returned 4 09:41:20.941445 accept_connection 3 returned 0 09:41:20.941743 Read 93 bytes 09:41:20.941838 Process 93 bytes request 09:41:20.941928 Got request: GET /verifiedserver HTTP/1.1 09:41:20.942007 Are-we-friendly question received 09:41:20.942224 Wrote request (93 bytes) input to log/7/server.input 09:41:20.942446 Identifying ourselves as friends 09:41:20.943803 Response sent (56 bytes) and written to log/7/server.response 09:41:20.943911 special request received, no persistency 09:41:20.943974 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 1171 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind1171 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1171 test 1181...[HTTP GET request with proxy and "Proxy-Connection: Keep-Alive"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1181 ../src/curl -q --output log/8/curl1181.out --include --trace-ascii log/8/trace1181 --trace-config all --trace-time --proxy http://127.0.0.1:46129 --proxy-header "Proxy-Connection: Keep-Alive" http://127.0.0.1:46129/1181 > log/8/stdout1181 2> log/8/stderr1181 1181: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1181 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1181 ../src/curl -q --output log/8/curl1181.out --include --trace-ascii log/8/trace1181 --trace-config all --trace-time --proxy http://127.0.0.1:46129 --proxy-header "Proxy-Connection: Keep-Alive" http://127.0.0.1:46129/1181 > log/8/stdout1181 2> log/8/stderr1181 === End of file commands.log === Start of file http_server.log 09:41:21.220201 ====> Client connect 09:41:21.220680 accept_connection 3 returned 4 09:41:21.220890 accept_connection 3 returned 0 09:41:21.221811 Read 93 bytes 09:41:21.222016 Process 93 bytes request 09:41:21.222173 Got request: GET /verifiedserver HTTP/1.1 09:41:21.222306 Are-we-friendly question received 09:41:21.222731 Wrote request (93 bytes) input to log/8/server.input 09:41:21.223030 Identifying ourselves as friends 09:41:21.223774 Response sent (56 bytes) and written to log/8/server.response 09:41:21.223900 special request received, no persistency 09:41:21.223981 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 1181 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind1181 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1181 test 1170...[HTTP GET transfer-encoding with removed Connection:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1170 ../src/curl -q --output log/9/curl1170.out --include --trace-ascii log/9/trace1170 --trace-config all --trace-time http://127.0.0.1:46607/1170 --tr-encoding -H "Connection:" > log/9/stdout1170 2> log/9/stderr1170 1170: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 1170 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1170 ../src/curl -q --output log/9/curl1170.out --include --trace-ascii log/9/trace1170 --trace-config all --trace-time http://127.0.0.1:46607/1170 --tr-encoding -H "Connection:" > log/9/stdout1170 2> log/9/stderr1170 === End of file commands.log === Start of file http_server.log 09:41:20.860246 ====> Client connect 09:41:20.860715 accept_connection 3 returned 4 09:41:20.860913 accept_connection 3 returned 0 09:41:20.861608 Read 93 bytes 09:41:20.861790 Process 93 bytes request 09:41:20.861889 Got request: GET /verifiedserver HTTP/1.1 09:41:20.861996 Are-we-friendly question received 09:41:20.862276 Wrote request (93 bytes) input to log/9/server.input 09:41:20.862587 Identifying ourselves as friends 09:41:20.863158 Response sent (56 bytes) and written to log/9/server.response 09:41:20.867563 special request received, no persistency 09:41:20.867714 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 1170 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind1170 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1170 test 1180...[HTTP GET request with proxy and -H "Proxy-Connection: keep-alive"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1180 ../src/curl -q --output log/12/curl1180.out --include --trace-ascii log/12/trace1180 --trace-config all --trace-time --proxy http://127.0.0.1:45579 -H "Proxy-Connection: Keep-Alive" http://127.0.0.1:45579/1180 > log/12/stdout1180 2> log/12/stderr1180 1180: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 1180 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1180 ../src/curl -q --output log/12/curl1180.out --include --trace-ascii log/12/trace1180 --trace-config all --trace-time --proxy http://127.0.0.1:45579 -H "Proxy-Connection: Keep-Alive" http://127.0.0.1:45579/1180 > log/12/stdout1180 2> log/12/stderr1180 === End of file commands.log === Start of file http_server.log 09:41:21.166352 ====> Client connect 09:41:21.166863 accept_connection 3 returned 4 09:41:21.167151 accept_connection 3 returned 0 09:41:21.167837 Read 93 bytes 09:41:21.167977 Process 93 bytes request 09:41:21.168051 Got request: GET /verifiedserver HTTP/1.1 09:41:21.168124 Are-we-friendly question received 09:41:21.168353 Wrote request (93 bytes) input to log/12/server.input 09:41:21.168622 Identifying ourselves as friends 09:41:21.169149 Response sent (56 bytes) and written to log/12/server.response 09:41:21.169245 special request received, no persistency 09:41:21.169307 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 1180 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind1180 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1180 test 1178...[HTTP proxy auth with credentials longer than 256 bytes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1178 ../src/curl -q --output log/14/curl1178.out --include --trace-ascii log/14/trace1178 --trace-config all --trace-time http://127.0.0.1:43309/we/want/that/page/1178 -x http://127.0.0.1:43309 -U AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB > log/14/stdout1178 2> log/14/stderr1178 1178: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 1178 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1178 ../src/curl -q --output log/14/curl1178.out --include --trace-ascii log/14/trace1178 --trace-config all --trace-time http://127.0.0.1:43309/we/want/that/page/1178 -x http://127.0.0.1:43309 -U AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB > log/14/stdout1178 2> log/14/stderr1178 === End of file commands.log === Start of file http_server.log 09:41:21.024904 ====> Client connect 09:41:21.025231 accept_connection 3 returned 4 09:41:21.025410 accept_connection 3 returned 0 09:41:21.026094 Read 93 bytes 09:41:21.026241 Process 93 bytes request 09:41:21.026324 Got request: GET /verifiedserver HTTP/1.1 09:41:21.026536 Are-we-friendly question received 09:41:21.026959 Wrote request (93 bytes) input to log/14/server.input 09:41:21.027344 Identifying ourselves as friends 09:41:21.028805 Response sent (56 bytes) and written to log/14/server.response 09:41:21.028962 special request received, no persistency 09:41:21.029140 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 1178 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind1178 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1178 test 1168...[HTTP redirect with credentials using # in user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1168 ../src/curl -q --output log/15/curl1168.out --include --trace-ascii log/15/trace1168 --trace-config all --trace-time http://127.0.0.1:35435/want/1168 -L -u "catmai#d:#DZaRJYrixKE*gFY" > log/15/stdout1168 2> log/15/stderr1168 1168: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 1168 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1168 ../src/curl -q --output log/15/curl1168.out --include --trace-ascii log/15/trace1168 --trace-config all --trace-time http://127.0.0.1:35435/want/1168 -L -u "catmai#d:#DZaRJYrixKE*gFY" > log/15/stdout1168 2> log/15/stderr1168 === End of file commands.log === Start of file http_server.log 09:41:20.810999 ====> Client connect 09:41:20.811307 accept_connection 3 returned 4 09:41:20.811437 accept_connection 3 returned 0 09:41:20.811717 Read 93 bytes 09:41:20.811800 Process 93 bytes request 09:41:20.811881 Got request: GET /verifiedserver HTTP/1.1 09:41:20.811950 Are-we-friendly question received 09:41:20.812147 Wrote request (93 bytes) input to log/15/server.input 09:41:20.812311 Identifying ourselves as friends 09:41:20.814784 Response sent (56 bytes) and written to log/15/server.response 09:41:20.814902 special request received, no persistency 09:41:20.814970 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 1168 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file valgrind1168 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1168 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1189 ../src/curl -q --output log/31/curl1189.out --include --trace-ascii log/31/trace1189 --trace-config all --trace-time http://127.0.0.1:45557/we/want/1189 --form-escape -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/31/stdout1189 2> log/31/stderr1189 test 1188...[--write-out with %{onerror} and %{urlnum} to stderr] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1188 ../src/curl -q --output log/16/curl1188.out --include --trace-ascii log/16/trace1188 --trace-config all --trace-time -f -s -w '%{onerror}%{stderr}%{urlnum} says %{exitcode} %{errormsg}\n' http://127.0.0.1:34829/we/want/our/1188 http://127.0.0.1:34829/we/want/our/1188 > log/16/stdout1188 2> log/16/stderr1188 1188: stderr FAILED: --- log/16/check-expected 2025-07-18 09:41:22.364343115 +0000 +++ log/16/check-generated 2025-07-18 09:41:22.363587096 +0000 @@ -1,2 +0,0 @@ -0 says 22 The requested URL returned error: 404[CR][LF] -1 says 22 The requested URL returned error: 404[CR][LF] == Contents of files in the log/16/ dir after test 1188 === Start of file check-expected 0 says 22 The requested URL returned error: 404[CR][LF] 1 says 22 The requested URL returned error: 404[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1188 ../src/curl -q --output log/16/curl1188.out --include --trace-ascii log/16/trace1188 --trace-config all --trace-time -f -s -w '%{onerror}%{stderr}%{urlnum} says %{exitcode} %{errormsg}\n' http://127.0.0.1:34829/we/want/our/1188 http://127.0.0.1:34829/we/want/our/1188 > log/16/stdout1188 2> log/16/stderr1188 === End of file commands.log === Start of file http_server.log 09:41:21.346806 ====> Client connect 09:41:21.347133 accept_connection 3 returned 4 09:41:21.347307 accept_connection 3 returned 0 09:41:21.348032 Read 93 bytes 09:41:21.348198 Process 93 bytes request 09:41:21.348307 Got request: GET /verifiedserver HTTP/1.1 09:41:21.348416 Are-we-friendly question received 09:41:21.348925 Wrote request (93 bytes) input to log/16/server.input 09:41:21.349133 Identifying ourselves as friends 09:41:21.349916 Response sent (56 bytes) and written to log/16/server.response 09:41:21.350175 special request received, no persistency 09:41:21.350243 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 1188 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind1188 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1188 test 1163...[FTP wildcard with pattern ending with an open-bracket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1163 ./libtest/libtests lib576 "ftp://127.0.0.1:34743/fully_simulated/DOS/*[][" > log/20/stdout1163 2> log/20/stderr1163 1163: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 1163 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1163 ./libtest/libtests lib576 "ftp://127.0.0.1:34743/fully_simulated/DOS/*[][" > log/20/stdout1163 2> log/20/stderr1163 === End of file commands.log === Start of file ftp_server.log 09:41:20.552425 ====> Client connect 09:41:20.553561 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:20.557331 < "USER anonymous" 09:41:20.557733 > "331 We are happy you popped in![CR][LF]" 09:41:20.563156 < "PASS ftp@example.com" 09:41:20.563588 > "230 Welcome you silly person[CR][LF]" 09:41:20.565021 < "PWD" 09:41:20.565378 > "257 "/" is current directory[CR][LF]" 09:41:20.567514 < "EPSV" 09:41:20.568280 ====> Passive DATA channel requested by client 09:41:20.568503 DATA sockfilt for passive data channel starting... 09:41:20.584462 DATA sockfilt for passive data channel started (pid 132006) 09:41:20.585518 DATA sockfilt for passive data channel listens on port 38115 09:41:20.586042 > "229 Entering Passive Mode (|||38115|)[LF]" 09:41:20.586333 Client has been notified that DATA conn will be accepted on port 38115 09:41:20.587817 Client connects to port 38115 09:41:20.588101 ====> Client established passive DATA connection on port 38115 09:41:20.588849 < "TYPE I" 09:41:20.589229 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:20.590808 < "SIZE verifiedserver" 09:41:20.591872 > "213 17[CR][LF]" 09:41:20.593369 < "RETR verifiedserver" 09:41:20.594827 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:20.595526 =====> Closing passive DATA connection... 09:41:20.595735 Server disconnects passive DATA connection 09:41:20.597545 Fancy that; client wants to DISC, too 09:41:20.598660 Server disconnected passive DATA connection 09:41:20.598989 DATA sockfilt for passive data channel quits (pid 132006) 09:41:20.600853 DATA sockfilt for passive data channel quit (pid 132006) 09:41:20.601090 =====> Closed passive DATA connection 09:41:20.601708 > "226 File transfer complete[CR][LF]" 09:41:20.639435 < "QUIT" 09:41:20.639879 > "221 bye bye baby[CR][LF]" 09:41:20.651343 MAIN sockfilt said DISC 09:41:20.652233 ====> Client disconnected 09:41:20.652818 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:20.805659 ====> Client connect 09:41:20.807724 Received DATA (on stdin) 09:41:20.807886 > 160 bytes data, server => client 09:41:20.807987 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:20.808090 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:20.808175 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:20.809765 < 16 bytes data, client => server 09:41:20.809943 'USER anonymous\r\n' 09:41:20.813553 Received DATA (on stdin) 09:41:20.813689 > 33 bytes data, server => client 09:41:20.813764 '331 We are happy you popped in!\r\n' 09:41:20.814960 < 22 bytes data, client => server 09:41:20.815190 'PASS ftp@example.com\r\n' 09:41:20.817323 Received DATA (on stdin) 09:41:20.817521 > 30 bytes data, server => client 09:41:20.817622 '230 Welcome you silly person\r\n' 09:41:20.818172 < 5 bytes data, client => server 09:41:20.818310 'PWD\r\n' 09:41:20.819113 Received DATA (on stdin) 09:41:20.819229 > 30 bytes data, server => client 09:41:20.819303 '257 "/" is current directory\r\n' 09:41:20.820170 < 6 bytes data, client => server 09:41:20.820373 'EPSV\r\n' 09:41:20.839896 Received DATA (on stdin) 09:41:20.840049 > 38 bytes data, server => client 09:41:20.840135 '229 Entering Passive Mode (|||38115|)\n' 09:41:20.841430 < 8 bytes data, client => server 09:41:20.841704 'TYPE I\r\n' 09:41:20.842966 Received DATA (on stdin) 09:41:20.843093 > 33 bytes data, server => client 09:41:20.843163 '200 I modify TYPE as you wanted\r\n' 09:41:20.843755 < 21 bytes data, client => server 09:41:20.843888 'SIZE verifiedserver\r\n' 09:41:20.844924 Received DATA (on stdin) 09:41:20.845053 > 8 bytes data, server => client 09:41:20.845199 '213 17\r\n' 09:41:20.846537 < 21 bytes data, client => server 09:41:20.846681 'RETR verifiedserver\r\n' 09:41:20.847557 Received DATA (on stdin) 09:41:20.847697 > 29 bytes data, server => client 09:41:20.847851 '150 Binary junk (17 bytes).\r\n' 09:41:20.855084 Received DATA (on stdin) 09:41:20.855217 > 28 bytes data, server => client 09:41:20.855782 '226 File transfer complete\r\n' 09:41:20.891730 < 6 bytes data, client => server 09:41:20.891891 'QUIT\r\n' 09:41:20.899572 Received DATA (on stdin) 09:41:20.899745 > 18 bytes data, server => client 09:41:20.899829 '221 bye bye baby\r\n' 09:41:20.903573 ====> Client disconnect 09:41:20.905388 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:20.835383 Running IPv4 version 09:41:20.836064 Listening on port 38115 09:41:20.836614 Wrote pid 132006 to log/20/server/ftp_sockdata.pid 09:41:20.837839 Received PING (on stdin) 09:41:20.838681 Received PORT (on stdin) 09:41:20.841194 ====> Client connect 09:41:20.849639 Received DATA (on stdin) 09:41:20.849783 > 17 bytes data, server => client 09:41:20.849858 'WE ROOLZ: 79624\r\n' 09:41:20.850688 ====> Client disconnect 09:41:20.851766 Received DISC (on stdin) 09:41:20.851917 Crikey! Client also wants to disconnect 09:41:20.852008 Received ACKD (on stdin) 09:41:20.852944 Received QUIT (on stdin) 09:41:20.853058 quits 09:41:20.853532 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1163 === End of file server.cmd === Start of file valgrind1163 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1163 test 1161...[HTTP cookie with path set twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1161 ../src/curl -q --output log/23/curl1161.out --include --trace-ascii log/23/trace1161 --trace-config all --trace-time http://127.0.0.1:42467/1161 -c log/23/cookies1161.txt > log/23/stdout1161 2> log/23/stderr1161 1161: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 1161 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1161 ../src/curl -q --output log/23/curl1161.out --include --trace-ascii log/23/trace1161 --trace-config all --trace-time http://127.0.0.1:42467/1161 -c log/23/cookies1161.txt > log/23/stdout1161 2> log/23/stderr1161 === End of file commands.log === Start of file http_server.log 09:41:20.732867 ====> Client connect 09:41:20.733207 accept_connection 3 returned 4 09:41:20.733365 accept_connection 3 returned 0 09:41:20.733606 Read 93 bytes 09:41:20.733743 Process 93 bytes request 09:41:20.733850 Got request: GET /verifiedserver HTTP/1.1 09:41:20.733935 Are-we-friendly question received 09:41:20.734173 Wrote request (93 bytes) input to log/23/server.input 09:41:20.734357 Identifying ourselves as friends 09:41:20.736054 Response sent (56 bytes) and written to log/23/server.response 09:41:20.736171 special request received, no persistency 09:41:20.736237 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 1161 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind1161 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1161 test 1160...[HTTP with long funny format cookie] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind116CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1173.pl /build/curl/src/curl/tests/../docs/libcurl/symbols-in-versions /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 > log/4/stdout1173 2> log/4/stderr1173 0 ../src/curl -q --output log/24/curl1160.out --include --trace-ascii log/24/trace1160 --trace-config all --trace-time http://127.0.0.1:39259/1160 -c log/24/cookies1160.txt > log/24/stdout1160 2> log/24/stderr1160 1160: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 1160 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1160 ../src/curl -q --output log/24/curl1160.out --include --trace-ascii log/24/trace1160 --trace-config all --trace-time http://127.0.0.1:39259/1160 -c log/24/cookies1160.txt > log/24/stdout1160 2> log/24/stderr1160 === End of file commands.log === Start of file http_server.log 09:41:20.746421 ====> Client connect 09:41:20.746862 accept_connection 3 returned 4 09:41:20.747012 accept_connection 3 returned 0 09:41:20.747143 Read 93 bytes 09:41:20.747241 Process 93 bytes request 09:41:20.747332 Got request: GET /verifiedserver HTTP/1.1 09:41:20.747413 Are-we-friendly question received 09:41:20.747750 Wrote request (93 bytes) input to log/24/server.input 09:41:20.747957 Identifying ourselves as friends 09:41:20.748838 Response sent (56 bytes) and written to log/24/server.response 09:41:20.748957 special request received, no persistency 09:41:20.749027 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 1160 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind1160 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1160 test 1174...[HTTP/0.9 GET response denied by default] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1174 ../src/curl -q --output log/28/curl1174.out --include --trace-ascii log/28/trace1174 --trace-config all --trace-time http://127.0.0.1:37545/1174 > log/28/stdout1174 2> log/28/stderr1174 1174: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 1174 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1174 ../src/curl -q --output log/28/curl1174.out --include --trace-ascii log/28/trace1174 --trace-config all --trace-time http://127.0.0.1:37545/1174 > log/28/stdout1174 2> log/28/stderr1174 === End of file commands.log === Start of file http_server.log 09:41:21.120322 ====> Client connect 09:41:21.120738 accept_connection 3 returned 4 09:41:21.120923 accept_connection 3 returned 0 09:41:21.121575 Read 93 bytes 09:41:21.121715 Process 93 bytes request 09:41:21.121799 Got request: GET /verifiedserver HTTP/1.1 09:41:21.121875 Are-we-friendly question received 09:41:21.122112 Wrote request (93 bytes) input to log/28/server.input 09:41:21.122352 Identifying ourselves as friends 09:41:21.123007 Response sent (56 bytes) and written to log/28/server.response 09:41:21.123114 special request received, no persistency 09:41:21.123179 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 1174 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind1174 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1174 test 1158...[HTTP RFC1867-type formposting with filename containing '"'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1158 ../src/curl -q --output log/32/curl1158.out --include --trace-ascii log/32/trace1158 --trace-config all --trace-time http://127.0.0.1:45607/we/want/1158 -F "file=@\"log/32/test1158\\\".txt\";type=mo/foo;filename=\"test1158\\\".txt\"" -F 'file2=@"log/32/test1158\".txt"' -F 'file3=@"log/32/test1158\".txt";type=m/f,"log/32/test1158\".txt"' > log/32/stdout1158 2> log/32/stderr1158 1158: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 1158 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1158 ../src/curl -q --output log/32/curl1158.out --include --trace-ascii log/32/trace1158 --trace-config all --trace-time http://127.0.0.1:45607/we/want/1158 -F "file=@\"log/32/test1158\\\".txt\";type=mo/foo;filename=\"test1158\\\".txt\"" -F 'file2=@"log/32/test1158\".txt"' -F 'file3=@"log/32/test1158\".txt";type=m/f,"log/32/test1158\".txt"' > log/32/stdout1158 2> log/32/stderr1158 === End of file commands.log === Start of file http_server.log 09:41:20.725615 ====> Client connect 09:41:20.725906 accept_connection 3 returned 4 09:41:20.726046 accept_connection 3 returned 0 09:41:20.726158 Read 93 bytes 09:41:20.726249 Process 93 bytes request 09:41:20.726349 Got request: GET /verifiedserver HTTP/1.1 09:41:20.726434 Are-we-friendly question received 09:41:20.726730 Wrote request (93 bytes) input to log/32/server.input 09:41:20.726884 Identifying ourselves as friends 09:41:20.727321 Response sent (56 bytes) and written to log/32/server.response 09:41:20.727405 special request received, no persistency 09:41:20.727533 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 1158 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file test1158".txt foo bar This is a bar foo bar foo === End of file test1158".txt === Start of file valgrind1158 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1158 test 1157...[Get -H headers from empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1157 ../src/curl -q --output log/35/curl1157.out --include --trace-ascii log/35/trace1157 --trace-config all --trace-time http://127.0.0.1:43179/1157 -H @log/35/heads1157.txt > log/35/stdout1157 2> log/35/stderr1157 1157: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 1157 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1157 ../src/curl -q --output log/35/curl1157.out --include --trace-ascii log/35/trace1157 --trace-config all --trace-time http://127.0.0.1:43179/1157 -H @log/35/heads1157.txt > log/35/stdout1157 2> log/35/stderr1157 === End of file commands.log === Start of file http_server.log 09:41:20.696973 ====> Client connect 09:41:20.697312 accept_connection 3 returned 4 09:41:20.697629 accept_connection 3 returned 0 09:41:20.697824 Read 93 bytes 09:41:20.697932 Process 93 bytes request 09:41:20.698036 Got request: GET /verifiedserver HTTP/1.1 09:41:20.698122 Are-we-friendly question received 09:41:20.698373 Wrote request (93 bytes) input to log/35/server.input 09:41:20.698658 Identifying ourselves as friends 09:41:20.699572 Response sent (56 bytes) and written to log/35/server.response 09:41:20.699695 special request received, no persistency 09:41:20.699768 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 1157 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind1157 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1157 test 1155...[HTTP cookie with parameter word as name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1155 ../src/curl -q --output log/38/curl1155.out --include --trace-ascii log/38/trace1155 --trace-config all --trace-time http://127.0.0.1:33511/1155 -c log/38/cookies1155.txt > log/38/stdout1155 2> log/38/stderr1155 1155: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1155 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1155 ../src/curl -q --output log/38/curl1155.out --include --trace-ascii log/38/trace1155 --trace-config all --trace-time http://127.0.0.1:33511/1155 -c log/38/cookies1155.txt > log/38/stdout1155 2> log/38/stderr1155 === End of file commands.log === Start of file http_server.log 09:41:20.744584 ====> Client connect 09:41:20.744888 accept_connection 3 returned 4 09:41:20.745038 accept_connection 3 returned 0 09:41:20.748202 Read 93 bytes 09:41:20.748332 Process 93 bytes request 09:41:20.748410 Got request: GET /verifiedserver HTTP/1.1 09:41:20.748546 Are-we-friendly question received 09:41:20.748777 Wrote request (93 bytes) input to log/38/server.input 09:41:20.748935 Identifying ourselves as friends 09:41:20.754344 Response sent (56 bytes) and written to log/38/server.response 09:41:20.754520 special request received, no persistency 09:41:20.754609 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1155 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1155 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1155 test 1153...[FTP with quoted double quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1153 ../src/curl -q --output log/40/curl1153.out --include --trace-ascii log/40/trace1153 --trace-config all --trace-time ftp://127.0.0.1:45501/test-1153/ > log/40/stdout1153 2> log/40/stderr1153 1153: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 1153 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1153 ../src/curl -q --output log/40/curl1153.out --include --trace-ascii log/40/trace1153 --trace-config all --trace-time ftp://127.0.0.1:45501/test-1153/ > log/40/stdout1153 2> log/40/stderr1153 === End of file commands.log === Start of file ftp_server.log 09:41:20.349915 ====> Client connect 09:41:20.353340 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:20.358007 < "USER anonymous" 09:41:20.358469 > "331 We are happy you popped in![CR][LF]" 09:41:20.360521 < "PASS ftp@example.com" 09:41:20.361291 > "230 Welcome you silly person[CR][LF]" 09:41:20.363154 < "PWD" 09:41:20.364568 > "257 "/" is current directory[CR][LF]" 09:41:20.366084 < "EPSV" 09:41:20.366363 ====> Passive DATA channel requested by client 09:41:20.366539 DATA sockfilt for passive data channel starting... 09:41:20.382051 DATA sockfilt for passive data channel started (pid 131601) 09:41:20.383198 DATA sockfilt for passive data channel listens on port 38499 09:41:20.383699 > "229 Entering Passive Mode (|||38499|)[LF]" 09:41:20.384037 Client has been notified that DATA conn will be accepted on port 38499 09:41:20.385450 Client connects to port 38499 09:41:20.385717 ====> Client established passive DATA connection on port 38499 09:41:20.386912 < "TYPE I" 09:41:20.387372 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:20.389163 < "SIZE verifiedserver" 09:41:20.390669 > "213 17[CR][LF]" 09:41:20.391930 < "RETR verifiedserver" 09:41:20.392372 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:20.393182 =====> Closing passive DATA connection... 09:41:20.393407 Server disconnects passive DATA connection 09:41:20.394975 Server disconnected passive DATA connection 09:41:20.395242 DATA sockfilt for passive data channel quits (pid 131601) 09:41:20.397161 DATA sockfilt for passive data channel quit (pid 131601) 09:41:20.397426 =====> Closed passive DATA connection 09:41:20.398422 > "226 File transfer complete[CR][LF]" 09:41:20.437532 < "QUIT" 09:41:20.438982 > "221 bye bye baby[CR][LF]" 09:41:20.440103 MAIN sockfilt said DISC 09:41:20.440374 ====> Client disconnected 09:41:20.440930 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:20.602657 ====> Client connect 09:41:20.607046 Received DATA (on stdin) 09:41:20.607208 > 160 bytes data, server => client 09:41:20.607311 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:20.607408 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:20.607649 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:20.608688 < 16 bytes data, client => server 09:41:20.608834 'USER anonymous\r\n' 09:41:20.612571 Received DATA (on stdin) 09:41:20.612721 > 33 bytes data, server => client 09:41:20.612808 '331 We are happy you popped in!\r\n' 09:41:20.613385 < 22 bytes data, client => server 09:41:20.613591 'PASS ftp@example.com\r\n' 09:41:20.614667 Received DATA (on stdin) 09:41:20.614810 > 30 bytes data, server => client 09:41:20.615316 '230 Welcome you silly person\r\n' 09:41:20.615982 < 5 bytes data, client => server 09:41:20.616117 'PWD\r\n' 09:41:20.617262 Received DATA (on stdin) 09:41:20.617391 > 30 bytes data, server => client 09:41:20.617643 '257 "/" is current directory\r\n' 09:41:20.618903 < 6 bytes data, client => server 09:41:20.619042 'EPSV\r\n' 09:41:20.637405 Received DATA (on stdin) 09:41:20.637664 > 38 bytes data, server => client 09:41:20.637793 '229 Entering Passive Mode (|||38499|)\n' 09:41:20.639220 < 8 bytes data, client => server 09:41:20.639348 'TYPE I\r\n' 09:41:20.641076 Received DATA (on stdin) 09:41:20.641237 > 33 bytes data, server => client 09:41:20.641324 '200 I modify TYPE as you wanted\r\n' 09:41:20.642042 < 21 bytes data, client => server 09:41:20.642182 'SIZE verifiedserver\r\n' 09:41:20.643303 Received DATA (on stdin) 09:41:20.643447 > 8 bytes data, server => client 09:41:20.643708 '213 17\r\n' 09:41:20.644591 < 21 bytes data, client => server 09:41:20.644729 'RETR verifiedserver\r\n' 09:41:20.647440 Received DATA (on stdin) 09:41:20.647615 > 29 bytes data, server => client 09:41:20.647700 '150 Binary junk (17 bytes).\r\n' 09:41:20.651563 Received DATA (on stdin) 09:41:20.651709 > 28 bytes data, server => client 09:41:20.651885 '226 File transfer complete\r\n' 09:41:20.690315 < 6 bytes data, client => server 09:41:20.690560 'QUIT\r\n' 09:41:20.691709 Received DATA (on stdin) 09:41:20.691859 > 18 bytes data, server => client 09:41:20.692207 '221 bye bye baby\r\n' 09:41:20.693579 ====> Client disconnect 09:41:20.697548 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:20.633444 Running IPv4 version 09:41:20.634046 Listening on port 38499 09:41:20.634449 Wrote pid 131601 to log/40/server/ftp_sockdata.pid 09:41:20.635404 Received PING (on stdin) 09:41:20.636210 Received PORT (on stdin) 09:41:20.638906 ====> Client connect 09:41:20.646561 Received DATA (on stdin) 09:41:20.646707 > 17 bytes data, server => client 09:41:20.646792 'WE ROOLZ: 89681\r\n' 09:41:20.647417 Received DISC (on stdin) 09:41:20.647632 ====> Client forcibly disconnected 09:41:20.649239 Received QUIT (on stdin) 09:41:20.649375 quits 09:41:20.649838 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "/""hello""" Testnum 1153 === End of file server.cmd === Start of file valgrind1153 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1153 test 1150...[HTTP proxy with URLs using different ports] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1150 ../src/curl -q --output log/44/curl1150.out --include --trace-ascii log/44/trace1150 --trace-config all --trace-time --proxy http://127.0.0.1:34655 http://test.remote.example.com.1150:150/path http://test.remote.example.com.1150:1234/path/ > log/44/stdout1150 2> log/44/stderr1150 1150: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 1150 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1150 ../src/curl -q --output log/44/curl1150.out --include --trace-ascii log/44/trace1150 --trace-config all --trace-time --proxy http://127.0.0.1:34655 http://test.remote.example.com.1150:150/path http://test.remote.example.com.1150:1234/path/ > log/44/stdout1150 2> log/44/stderr1150 === End of file commands.log === Start of file http_server.log 09:41:20.507920 ====> Client connect 09:41:20.508255 accept_connection 3 returned 4 09:41:20.508434 accept_connection 3 returned 0 09:41:20.508657 Read 93 bytes 09:41:20.508758 Process 93 bytes request 09:41:20.508846 Got request: GET /verifiedserver HTTP/1.1 09:41:20.508927 Are-we-friendly question received 09:41:20.509140 Wrote request (93 bytes) input to log/44/server.input 09:41:20.509333 Identifying ourselves as friends 09:41:20.513218 Response sent (56 bytes) and written to log/44/server.response 09:41:20.513350 special request received, no persistency 09:41:20.513431 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 1150 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind1150 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1150 test 1149...[FTP dir list multicwd then again nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1149 ../src/curl -q --output log/45/curl1149.out --include --trace-ascii log/45/trace1149 --trace-config all --trace-time ftp://127.0.0.1:41719/list/this/path/1149/ --ftp-method multicwd --next ftp://127.0.0.1:41719/list/this/path/1149/ --ftp-method nocwd > log/45/stdout1149 2> log/45/stderr1149 1149: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 1149 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1149 ../src/curl -q --output log/45/curl1149.out --include --trace-ascii log/45/trace1149 --trace-config all --trace-time ftp://127.0.0.1:41719/list/this/path/1149/ --ftp-method multicwd --next ftp://127.0.0.1:41719/list/this/path/1149/ --ftp-method nocwd > log/45/stdout1149 2> log/45/stderr1149 === End of file commands.log === Start of file ftp_server.log 09:41:20.239292 ====> Client connect 09:41:20.240580 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:20.243307 < "USER anonymous" 09:41:20.244936 > "331 We are happy you popped in![CR][LF]" 09:41:20.245595 < "PASS ftp@example.com" 09:41:20.246176 > "230 Welcome you silly person[CR][LF]" 09:41:20.248055 < "PWD" 09:41:20.249366 > "257 "/" is current directory[CR][LF]" 09:41:20.250518 < "EPSV" 09:41:20.250849 ====> Passive DATA channel requested by client 09:41:20.251049 DATA sockfilt for passive data channel starting... 09:41:20.262890 DATA sockfilt for passive data channel started (pid 131362) 09:41:20.263933 DATA sockfilt for passive data channel listens on port 45675 09:41:20.264404 > "229 Entering Passive Mode (|||45675|)[LF]" 09:41:20.264658 Client has been notified that DATA conn will be accepted on port 45675 09:41:20.266513 Client connects to port 45675 09:41:20.266893 ====> Client established passive DATA connection on port 45675 09:41:20.267686 < "TYPE I" 09:41:20.268170 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:20.269832 < "SIZE verifiedserver" 09:41:20.270976 > "213 17[CR][LF]" 09:41:20.272504 < "RETR verifiedserver" 09:41:20.273346 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:20.274128 =====> Closing passive DATA connection... 09:41:20.274378 Server disconnects passive DATA connection 09:41:20.276329 Server disconnected passive DATA connection 09:41:20.276613 DATA sockfilt for passive data channel quits (pid 131362) 09:41:20.278519 DATA sockfilt for passive data channel quit (pid 131362) 09:41:20.278842 =====> Closed passive DATA connection 09:41:20.279495 > "226 File transfer complete[CR][LF]" 09:41:20.317415 < "QUIT" 09:41:20.318482 > "221 bye bye baby[CR][LF]" 09:41:20.320119 MAIN sockfilt said DISC 09:41:20.323331 ====> Client disconnected 09:41:20.323939 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:20.492348 ====> Client connect 09:41:20.494882 Received DATA (on stdin) 09:41:20.495034 > 160 bytes data, server => client 09:41:20.495124 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:20.495202 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:20.495282 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:20.496024 < 16 bytes data, client => server 09:41:20.496159 'USER anonymous\r\n' 09:41:20.497382 Received DATA (on stdin) 09:41:20.497584 > 33 bytes data, server => client 09:41:20.497762 '331 We are happy you popped in!\r\n' 09:41:20.498280 < 22 bytes data, client => server 09:41:20.498409 'PASS ftp@example.com\r\n' 09:41:20.500193 Received DATA (on stdin) 09:41:20.500308 > 30 bytes data, server => client 09:41:20.500385 '230 Welcome you silly person\r\n' 09:41:20.500992 < 5 bytes data, client => server 09:41:20.501136 'PWD\r\n' 09:41:20.502126 Received DATA (on stdin) 09:41:20.502256 > 30 bytes data, server => client 09:41:20.502413 '257 "/" is current directory\r\n' 09:41:20.503566 < 6 bytes data, client => server 09:41:20.503696 'EPSV\r\n' 09:41:20.518144 Received DATA (on stdin) 09:41:20.518304 > 38 bytes data, server => client 09:41:20.518395 '229 Entering Passive Mode (|||45675|)\n' 09:41:20.520138 < 8 bytes data, client => server 09:41:20.520280 'TYPE I\r\n' 09:41:20.521906 Received DATA (on stdin) 09:41:20.522056 > 33 bytes data, server => client 09:41:20.522129 '200 I modify TYPE as you wanted\r\n' 09:41:20.522777 < 21 bytes data, client => server 09:41:20.522915 'SIZE verifiedserver\r\n' 09:41:20.523951 Received DATA (on stdin) 09:41:20.524085 > 8 bytes data, server => client 09:41:20.524248 '213 17\r\n' 09:41:20.525650 < 21 bytes data, client => server 09:41:20.525799 'RETR verifiedserver\r\n' 09:41:20.526717 Received DATA (on stdin) 09:41:20.526868 > 29 bytes data, server => client 09:41:20.527624 '150 Binary junk (17 bytes).\r\n' 09:41:20.532890 Received DATA (on stdin) 09:41:20.533024 > 28 bytes data, server => client 09:41:20.533556 '226 File transfer complete\r\n' 09:41:20.570298 < 6 bytes data, client => server 09:41:20.570514 'QUIT\r\n' 09:41:20.571531 Received DATA (on stdin) 09:41:20.571681 > 18 bytes data, server => client 09:41:20.571836 '221 bye bye baby\r\n' 09:41:20.573575 ====> Client disconnect 09:41:20.574109 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:20.515015 Running IPv4 version 09:41:20.515612 Listening on port 45675 09:41:20.516047 Wrote pid 131362 to log/45/server/ftp_sockdata.pid 09:41:20.516223 Received PING (on stdin) 09:41:20.517004 Received PORT (on stdin) 09:41:20.519924 ====> Client connect 09:41:20.528378 Received DATA (on stdin) 09:41:20.528594 > 17 bytes data, server => client 09:41:20.528685 'WE ROOLZ: 78026\r\n' 09:41:20.529013 Received DISC (on stdin) 09:41:20.529160 ====> Client forcibly disconnected 09:41:20.530708 Received QUIT (on stdin) 09:41:20.530835 quits 09:41:20.531223 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1149 === End of file server.cmd === Start of file valgrind1149 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1149 test 1166...[HTTP response with cookies but not receiving!] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1166 ../src/curl -q --output log/47/curl1166.out --include --trace-ascii log/47/trace1166 --trace-config all --trace-time http://127.0.0.1:41103/want/1166 http://127.0.0.1:41103/want/1166 > log/47/stdout1166 2> log/47/stderr1166 1166: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1166 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1166 ../src/curl -q --output log/47/curl1166.out --include --trace-ascii log/47/trace1166 --trace-config all --trace-time http://127.0.0.1:41103/want/1166 http://127.0.0.1:41103/want/1166 > log/47/stdout1166 2> log/47/stderr1166 === End of file commands.log === Start of file http_server.log 09:41:20.846692 ====> Client connect 09:41:20.847003 accept_connection 3 returned 4 09:41:20.847151 accept_connection 3 returned 0 09:41:20.847280 Read 93 bytes 09:41:20.847366CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1197 ../src/curl -q --include --trace-ascii log/50/trace1197 --trace-config all --trace-time http://127.0.0.1:45651/1197 -w "%{method}\n" -L -d "twinkle twinkle little star" > log/50/stdout1197 2> log/50/stderr1197 Process 93 bytes request 09:41:20.847442 Got request: GET /verifiedserver HTTP/1.1 09:41:20.847626 Are-we-friendly question received 09:41:20.847867 Wrote request (93 bytes) input to log/47/server.input 09:41:20.848061 Identifying ourselves as friends 09:41:20.848878 Response sent (56 bytes) and written to log/47/server.response 09:41:20.848997 special request received, no persistency 09:41:20.849064 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 1166 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind1166 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1166 test 1176...[--output using #0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1176 ../src/curl -q --include --trace-ascii log/49/trace1176 --trace-config all --trace-time http://127.0.0.1:42667/1176 -o 'log/49/base-#0' > log/49/stdout1176 2> log/49/stderr1176 1176: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 1176 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1176 ../src/curl -q --include --trace-ascii log/49/trace1176 --trace-config all --trace-time http://127.0.0.1:42667/1176 -o 'log/49/base-#0' > log/49/stdout1176 2> log/49/stderr1176 === End of file commands.log === Start of file http_server.log 09:41:21.124942 ====> Client connect 09:41:21.125259 accept_connection 3 returned 4 09:41:21.125428 accept_connection 3 returned 0 09:41:21.126225 Read 93 bytes 09:41:21.126398 Process 93 bytes request 09:41:21.126578 Got request: GET /verifiedserver HTTP/1.1 09:41:21.126718 Are-we-friendly question received 09:41:21.126999 Wrote request (93 bytes) input to log/49/server.input 09:41:21.127260 Identifying ourselves as friends 09:41:21.127993 Response sent (56 bytes) and written to log/49/server.response 09:41:21.128098 special request received, no persistency 09:41:21.128166 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 1176 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind1176 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1176 test 1152...[FTP with uneven quote in PWD response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1152 ../src/curl -q --output log/58/curl1152.out --include --trace-ascii log/58/trace1152 --trace-config all --trace-time ftp://127.0.0.1:38901/test-1152/ > log/58/stdout1152 2> log/58/stderr1152 1152: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 1152 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1152 ../src/curl -q --output log/58/curl1152.out --include --trace-ascii log/58/trace1152 --trace-config all --trace-time ftp://127.0.0.1:38901/test-1152/ > log/58/stdout1152 2> log/58/stderr1152 === End of file commands.log === Start of file ftp_server.log 09:41:20.338445 ====> Client connect 09:41:20.341890 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:20.343191 < "USER anonymous" 09:41:20.344107 > "331 We are happy you popped in![CR][LF]" 09:41:20.346242 < "PASS ftp@example.com" 09:41:20.346608 > "230 Welcome you silly person[CR][LF]" 09:41:20.353174 < "PWD" 09:41:20.353618 > "257 "/" is current directory[CR][LF]" 09:41:20.363326 < "EPSV" 09:41:20.363611 ====> Passive DATA channel requested by client 09:41:20.363916 DATA sockfilt for passive data channel starting... 09:41:20.394432 DATA sockfilt for passive data channel started (pid 131612) 09:41:20.398560 DATA sockfilt for passive data channel listens on port 44875 09:41:20.399174 > "229 Entering Passive Mode (|||44875|)[LF]" 09:41:20.399468 Client has been notified that DATA conn will be accepted on port 44875 09:41:20.404178 Client connects to port 44875 09:41:20.404495 ====> Client established passive DATA connection on port 44875 09:41:20.406571 < "TYPE I" 09:41:20.410950 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:20.417451 < "SIZE verifiedserver" 09:41:20.419193 > "213 17[CR][LF]" 09:41:20.421137 < "RETR verifiedserver" 09:41:20.423946 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:20.424651 =====> Closing passive DATA connection... 09:41:20.429695 Server disconnects passive DATA connection 09:41:20.430502 Fancy that; client wants to DISC, too 09:41:20.431084 Server disconnected passive DATA connection 09:41:20.431329 DATA sockfilt for passive data channel quits (pid 131612) 09:41:20.440986 DATA sockfilt for passive data channel quit (pid 131612) 09:41:20.441234 =====> Closed passive DATA connection 09:41:20.441576 > "226 File transfer complete[CR][LF]" 09:41:20.468454 < "QUIT" 09:41:20.468955 > "221 bye bye baby[CR][LF]" 09:41:20.475889 MAIN sockfilt said DISC 09:41:20.476249 ====> Client disconnected 09:41:20.476846 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:20.591617 ====> Client connect 09:41:20.593587 Received DATA (on stdin) 09:41:20.593751 > 160 bytes data, server => client 09:41:20.593967 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:20.594105 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:20.594187 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:20.595004 < 16 bytes data, client => server 09:41:20.595168 'USER anonymous\r\n' 09:41:20.597320 Received DATA (on stdin) 09:41:20.597568 > 33 bytes data, server => client 09:41:20.598190 '331 We are happy you popped in!\r\n' 09:41:20.598957 < 22 bytes data, client => server 09:41:20.599094 'PASS ftp@example.com\r\n' 09:41:20.600736 Received DATA (on stdin) 09:41:20.600887 > 30 bytes data, server => client 09:41:20.600980 '230 Welcome you silly person\r\n' 09:41:20.604940 < 5 bytes data, client => server 09:41:20.605079 'PWD\r\n' 09:41:20.607766 Received DATA (on stdin) 09:41:20.607904 > 30 bytes data, server => client 09:41:20.607987 '257 "/" is current directory\r\n' 09:41:20.613933 < 6 bytes data, client => server 09:41:20.614091 'EPSV\r\n' 09:41:20.655780 Received DATA (on stdin) 09:41:20.655933 > 38 bytes data, server => client 09:41:20.656023 '229 Entering Passive Mode (|||44875|)\n' 09:41:20.659682 < 8 bytes data, client => server 09:41:20.659836 'TYPE I\r\n' 09:41:20.661947 Received DATA (on stdin) 09:41:20.662101 > 33 bytes data, server => client 09:41:20.665010 '200 I modify TYPE as you wanted\r\n' 09:41:20.670675 < 21 bytes data, client => server 09:41:20.670825 'SIZE verifiedserver\r\n' 09:41:20.671663 Received DATA (on stdin) 09:41:20.671820 > 8 bytes data, server => client 09:41:20.673252 '213 17\r\n' 09:41:20.674015 < 21 bytes data, client => server 09:41:20.674165 'RETR verifiedserver\r\n' 09:41:20.678576 Received DATA (on stdin) 09:41:20.678721 > 29 bytes data, server => client 09:41:20.678805 '150 Binary junk (17 bytes).\r\n' 09:41:20.695302 Received DATA (on stdin) 09:41:20.695585 > 28 bytes data, server => client 09:41:20.695719 '226 File transfer complete\r\n' 09:41:20.720671 < 6 bytes data, client => server 09:41:20.720829 'QUIT\r\n' 09:41:20.723005 Received DATA (on stdin) 09:41:20.723147 > 18 bytes data, server => client 09:41:20.723232 '221 bye bye baby\r\n' 09:41:20.727910 ====> Client disconnect 09:41:20.730879 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:20.645670 Running IPv4 version 09:41:20.646182 Listening on port 44875 09:41:20.647637 Wrote pid 131612 to log/58/server/ftp_sockdata.pid 09:41:20.647830 Received PING (on stdin) 09:41:20.651705 Received PORT (on stdin) 09:41:20.657613 ====> Client connect 09:41:20.682570 Received DATA (on stdin) 09:41:20.682746 > 17 bytes data, server => client 09:41:20.682838 'WE ROOLZ: 77973\r\n' 09:41:20.683659 ====> Client disconnect 09:41:20.683924 Received DISC (on stdin) 09:41:20.684056 Crikey! Client also wants to disconnect 09:41:20.685288 Received ACKD (on stdin) 09:41:20.685737 Received QUIT (on stdin) 09:41:20.685869 quits 09:41:20.686237 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "just one Testnum 1152 === End of file server.cmd === Start of file valgrind1152 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1152 test 1172...[HTTP/0.9 GET response denied] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1172 ../src/curl -q --output log/61/curl1172.out --include --trace-ascii log/61/trace1172 --trace-config all --trace-time http://127.0.0.1:44381/1172 --no-http0.9 > log/61/stdout1172 2> log/61/stderr1172 1172: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1172 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1172 ../src/curl -q --output log/61/curl1172.out --include --trace-ascii log/61/trace1172 --trace-config all --trace-time http://127.0.0.1:44381/1172 --no-http0.9 > log/61/stdout1172 2> log/61/stderr1172 === End of file commands.log === Start of file http_server.log 09:41:20.827973 ====> Client connect 09:41:20.828281 accept_connection 3 returned 4 09:41:20.828439 accept_connection 3 returned 0 09:41:20.830582 Read 93 bytes 09:41:20.830734 Process 93 bytes request 09:41:20.830836 Got request: GET /verifiedserver HTTP/1.1 09:41:20.830942 Are-we-friendly question received 09:41:20.831198 Wrote request (93 bytes) input to log/61/server.input 09:41:20.831407 Identifying ourselves as friends 09:41:20.832192 Response sent (56 bytes) and written to log/61/server.response 09:41:20.832347 special request received, no persistency 09:41:20.832443 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [1CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1119.pl /build/curl/src/curl/tests/.. ../include/curl > log/51/stdout1119 2> log/51/stderr1119 7 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 1172 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind1172 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1172 * starts no server test 1173...[Manpage syntax checks] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1173.pl /build/curl/src/curl/tests/../docs/libcurl/symbols-in-versions /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 > log/4/stdout1173 2> log/4/stderr1173 valgrind SKIPPED -r-----e--- OK (1089 out of 1707, remaining: 00:32, took 2.275s, duration: 00:56) test 1189...[Multipart formposting with backslash-escaping of name= and filename=] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1189 ../src/curl -q --output log/31/curl1189.out --include --trace-ascii log/31/trace1189 --trace-config all --trace-time http://127.0.0.1:45557/we/want/1189 --form-escape -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/31/stdout1189 2> log/31/stderr1189 1189: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1189 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1189 ../src/curl -q --output log/31/curl1189.out --include --trace-ascii log/31/trace1189 --trace-config all --trace-time http://127.0.0.1:45557/we/want/1189 --form-escape -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/31/stdout1189 2> log/31/stderr1189 === End of file commands.log === Start of file http_server.log 09:41:21.615676 ====> Client connect 09:41:21.616066 accept_connection 3 returned 4 09:41:21.616250 accept_connection 3 returned 0 09:41:21.616400 Read 93 bytes 09:41:21.616621 Process 93 bytes request 09:41:21.616740 Got request: GET /verifiedserver HTTP/1.1 09:41:21.616820 Are-we-friendly question received 09:41:21.617054 Wrote request (93 bytes) input to log/31/server.input 09:41:21.617266 Identifying ourselves as friends 09:41:21.618868 Response sent (56 bytes) and written to log/31/server.response 09:41:21.619003 special request received, no persistency 09:41:21.619092 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 1189 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file test1189.txt foo bar This is a bar foo bar foo === End of file test1189.txt === Start of file valgrind1189 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1189 test 1197...[HTTP POST redirected to GET and --write-out method] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1197 ../src/curl -q --include --trace-ascii log/50/trace1197 --trace-config all --trace-time http://127.0.0.1:45651/1197 -w "%{method}\n" -L -d "twinkle twinkle little star" > log/50/stdout1197 2> log/50/stderr1197 1197: stdout FAILED: --- log/50/check-expected 2025-07-18 09:41:22.699263726 +0000 +++ log/50/check-generated 2025-07-18 09:41:22.697586926 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 8[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain[CR][LF] -Location: ./11970001[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 15[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain; charset=us-ascii[CR][LF] -[CR][LF] -bigger monster[LF] -GET[LF] == Contents of files in the log/50/ dir after test 1197 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 8[CR][LF] Connection: close[CR][LF] Content-Type: text/plain[CR][LF] Location: ./11970001[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 15[CR][LF] Connection: close[CR][LF] Content-Type: text/plain; charset=us-ascii[CR][LF] [CR][LF] bigger monster[LF] GET[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1197 ../src/curl -q --include --trace-ascii log/50/trace1197 --trace-config all --trace-time http://127.0.0.1:45651/1197 -w "%{method}\n" -L -d "twinkle twinkle little star" > log/50/stdout1197 2> log/50/stderr1197 === End of file commands.log === Start of file http_server.log 09:41:21.690673 ====> Client connect 09:41:21.691270 accept_connection 3 returned 4 09:41:21.691438 accept_connection 3 returned 0 09:41:21.692195 Read 93 bytes 09:41:21.692341 Process 93 bytes request 09:41:21.692431 Got request: GET /verifiedserver HTTP/1.1 09:41:21.692726 Are-we-friendly question received 09:41:21.692982 Wrote request (93 bytes) input to log/50/server.input 09:41:21.693188 Identifying ourselves as friends 09:41:21.693854 Response sent (56 bytes) and written to log/50/server.response 09:41:21.693992 special request received, no persistency 09:41:21.694081 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 1197 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind1197 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1197 test 1187...[SMTP multipart with file name escaping] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1187 ../src/curl -q --output log/55/curl1187.out --include --trace-ascii log/55/trace1187 --trace-config all --trace-time smtp://127.0.0.1:34681/1187 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=This is the mail text" -F '=File content;filename="strange\file\"name"' log/55/stdout1187 2> log/55/stderr1187 1187: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 1187 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1187 ../src/curl -q --output log/55/curl1187.out --include --trace-ascii log/55/trace1187 --trace-config all --trace-time smtp://127.0.0.1:34681/1187 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=This is the mail text" -F '=File content;filename="strange\file\"name"' log/55/stdout1187 2> log/55/stderr1187 === End of file commands.log === Start of file server.cmd Testnum 1187 === End of file server.cmd === Start of file smtp_server.log 09:41:21.215248 ====> Client connect 09:41:21.216825 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:21.224515 < "EHLO verifiedserver" 09:41:21.231124 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:21.237385 < "HELP" 09:41:21.238160 > "214 WE ROOLZ: 118182[CR][LF]" 09:41:21.238515 return proof we are we 09:41:21.242538 < "QUIT" 09:41:21.242984 > "221 curl ESMTP server signing off[CR][LF]" 09:41:21.250937 MAIN sockfilt said DISC 09:41:21.251326 ====> Client disconnected 09:41:21.251852 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:21.465632 ====> Client connect 09:41:21.470580 Received DATA (on stdin) 09:41:21.470736 > 160 bytes data, server => client 09:41:21.470838 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:21.470928 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:21.471011 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:21.473939 < 21 bytes data, client => server 09:41:21.474098 'EHLO verifiedserver\r\n' 09:41:21.486877 Received DATA (on stdin) 09:41:21.487045 > 53 bytes data, server => client 09:41:21.487140 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:21.490286 < 6 bytes data, client => server 09:41:21.490605 'HELP\r\n' 09:41:21.493781 Received DATA (on stdin) 09:41:21.493954 > 22 bytes data, server => client 09:41:21.494170 '214 WE ROOLZ: 118182\r\n' 09:41:21.495364 < 6 bytes data, client => server 09:41:21.495580 'QUIT\r\n' 09:41:21.499701 Received DATA (on stdin) 09:41:21.499869 > 35 bytes data, server => client 09:41:21.499964 '221 curl ESMTP server signing off\r\n' 09:41:21.50106CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1167.pl /build/curl/src/curl/tests/.. > log/26/stdout1167 2> log/26/stderr1167 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1190 ../src/curl -q --output log/13/curl1190.out --include --trace log/13/trace1190 --trace-config all --trace-time mqtt://127.0.0.1:34625/1190 > log/13/stdout1190 2> log/13/stderr1190 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1208 ../src/curl -q --output log/6/curl1208.out --include --trace-ascii log/6/trace1208 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:34161/1208 -P - > log/6/stdout1208 2> log/6/stderr1208 4 ====> Client disconnect 09:41:21.505890 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1187 From: different To: another body === End of file stdin-for-1187 === Start of file valgrind1187 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1187 * starts no server test 1119...[Verify that symbols-in-versions and headers are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1119.pl /build/curl/src/curl/tests/.. ../include/curl > log/51/stdout1119 2> log/51/stderr1119 valgrind SKIPPED s------e--- OK (1035 out of 1707, remaining: 00:36, took 4.224s, duration: 00:56) * starts no server test 1167...[Verify curl prefix of public symbols in header files] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1167.pl /build/curl/src/curl/tests/.. > log/26/stdout1167 2> log/26/stderr1167 valgrind SKIPPED -------e--- OK (1083 out of 1707, remaining: 00:32, took 2.677s, duration: 00:56) startnew: ./server/servers mqttd --port 0 --pidfile log/13/server/mqtt_server.pid --portfile log/13/server/mqtt_server.port --config log/13/server.cmd --logfile log/13/mqtt_server.log --logdir log/13 RUN: MQTT server is now running PID 132606 on PORT 34625 * pid mqtt => 132606 132606 test 1190...[MQTT SUBSCRIBE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1190 ../src/curl -q --output log/13/curl1190.out --include --trace log/13/trace1190 --trace-config all --trace-time mqtt://127.0.0.1:34625/1190 > log/13/stdout1190 2> log/13/stderr1190 1190: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 1190 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1190 ../src/curl -q --output log/13/curl1190.out --include --trace log/13/trace1190 --trace-config all --trace-time mqtt://127.0.0.1:34625/1190 > log/13/stdout1190 2> log/13/stderr1190 === End of file commands.log === Start of file mqtt_server.log 09:41:20.150764 Running IPv4 version 09:41:20.151533 Listening on port 34625 09:41:20.152061 Wrote pid 132606 to log/13/server/mqtt_server.pid 09:41:20.152446 Wrote port 34625 to log/13/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1190 === End of file server.cmd === Start of file valgrind1190 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1190 test 1208...[FTP PORT download, no data conn and no transient negative reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1208 ../src/curl -q --output log/6/curl1208.out --include --trace-ascii log/6/trace1208 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:34161/1208 -P - > log/6/stdout1208 2> log/6/stderr1208 1208: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1208 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1208 ../src/curl -q --output log/6/curl1208.out --include --trace-ascii log/6/trace1208 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:34161/1208 -P - > log/6/stdout1208 2> log/6/stderr1208 === End of file commands.log === Start of file ftp_server.log 09:41:21.845296 ====> Client connect 09:41:21.848224 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:21.849605 < "USER anonymous" 09:41:21.850506 > "331 We are happy you popped in![CR][LF]" 09:41:21.852943 < "PASS ftp@example.com" 09:41:21.854026 > "230 Welcome you silly person[CR][LF]" 09:41:21.855940 < "PWD" 09:41:21.857106 > "257 "/" is current directory[CR][LF]" 09:41:21.858684 < "EPSV" 09:41:21.859102 ====> Passive DATA channel requested by client 09:41:21.859291 DATA sockfilt for passive data channel starting... 09:41:21.885132 DATA sockfilt for passive data channel started (pid 134273) 09:41:21.886060 DATA sockfilt for passive data channel listens on port 43161 09:41:21.886531 > "229 Entering Passive Mode (|||43161|)[LF]" 09:41:21.887831 Client has been notified that DATA conn will be accepted on port 43161 09:41:21.888452 Client connects to port 43161 09:41:21.888716 ====> Client established passive DATA connection on port 43161 09:41:21.889630 < "TYPE I" 09:41:21.890156 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:21.894708 < "SIZE verifiedserver" 09:41:21.895310 > "213 17[CR][LF]" 09:41:21.896703 < "RETR verifiedserver" 09:41:21.900347 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:21.901375 =====> Closing passive DATA connection... 09:41:21.901561 Server disconnects passive DATA connection 09:41:21.903324 Server disconnected passive DATA connection 09:41:21.904074 DATA sockfilt for paCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1186 ../src/curl -q --output log/62/curl1186.out --include --trace-ascii log/62/trace1186 --trace-config all --trace-time http://127.0.0.1:38899/we/want/1186 --form-escape -F "file=@\"log/62/test1186\\\".txt\";type=mo/foo;filename=\"test1186\\\".txt\"" -F 'file2=@"log/62/test1186\".txt"' -F 'file3=@"log/62/test1186\".txt";type=m/f,"log/62/test1186\".txt"' > log/62/stdout1186 2> log/62/stderr1186 ssive data channel quits (pid 134273) 09:41:21.910164 DATA sockfilt for passive data channel quit (pid 134273) 09:41:21.910618 =====> Closed passive DATA connection 09:41:21.911347 > "226 File transfer complete[CR][LF]" 09:41:21.947355 < "QUIT" 09:41:21.948024 > "221 bye bye baby[CR][LF]" 09:41:21.950937 MAIN sockfilt said DISC 09:41:21.952096 ====> Client disconnected 09:41:21.955597 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:22.098019 ====> Client connect 09:41:22.100535 Received DATA (on stdin) 09:41:22.100686 > 160 bytes data, server => client 09:41:22.100864 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:22.100988 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:22.101071 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:22.102309 < 16 bytes data, client => server 09:41:22.102430 'USER anonymous\r\n' 09:41:22.103773 Received DATA (on stdin) 09:41:22.103938 > 33 bytes data, server => client 09:41:22.104853 '331 We are happy you popped in!\r\n' 09:41:22.105954 < 22 bytes data, client => server 09:41:22.106119 'PASS ftp@example.com\r\n' 09:41:22.107024 Received DATA (on stdin) 09:41:22.107156 > 30 bytes data, server => client 09:41:22.107317 '230 Welcome you silly person\r\n' 09:41:22.108834 < 5 bytes data, client => server 09:41:22.108993 'PWD\r\n' 09:41:22.110044 Received DATA (on stdin) 09:41:22.110180 > 30 bytes data, server => client 09:41:22.110370 '257 "/" is current directory\r\n' 09:41:22.111817 < 6 bytes data, client => server 09:41:22.111971 'EPSV\r\n' 09:41:22.140221 Received DATA (on stdin) 09:41:22.140386 > 38 bytes data, server => client 09:41:22.140546 '229 Entering Passive Mode (|||43161|)\n' 09:41:22.141977 < 8 bytes data, client => server 09:41:22.142088 'TYPE I\r\n' 09:41:22.143859 Received DATA (on stdin) 09:41:22.144011 > 33 bytes data, server => client 09:41:22.144093 '200 I modify TYPE as you wanted\r\n' 09:41:22.144759 < 21 bytes data, client => server 09:41:22.144889 'SIZE verifiedserver\r\n' 09:41:22.149026 Received DATA (on stdin) 09:41:22.149178 > 8 bytes data, server => client 09:41:22.149258 '213 17\r\n' 09:41:22.149968 < 21 bytes data, client => server 09:41:22.150118 'RETR verifiedserver\r\n' 09:41:22.154052 Received DATA (on stdin) 09:41:22.154199 > 29 bytes data, server => client 09:41:22.154281 '150 Binary junk (17 bytes).\r\n' 09:41:22.165058 Received DATA (on stdin) 09:41:22.165230 > 28 bytes data, server => client 09:41:22.165323 '226 File transfer complete\r\n' 09:41:22.197961 < 6 bytes data, client => server 09:41:22.198335 'QUIT\r\n' 09:41:22.202084 Received DATA (on stdin) 09:41:22.202231 > 18 bytes data, server => client 09:41:22.202327 '221 bye bye baby\r\n' 09:41:22.203069 ====> Client disconnect 09:41:22.207602 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:21.133433 Running IPv4 version 09:41:21.138023 Listening on port 43161 09:41:21.138349 Wrote pid 134273 to log/6/server/ftp_sockdata.pid 09:41:21.138581 Received PING (on stdin) 09:41:21.139219 Received PORT (on stdin) 09:41:21.141958 ====> Client connect 09:41:21.155651 Received DATA (on stdin) 09:41:21.155858 > 17 bytes data, server => client 09:41:21.155963 'WE ROOLZ: 79493\r\n' 09:41:21.156340 Received DISC (on stdin) 09:41:21.156693 ====> Client forcibly disconnected 09:41:21.158043 Received QUIT (on stdin) 09:41:21.158153 quits 09:41:21.158610 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN150 Testnum 1208 === End of file server.cmd === Start of file valgrind1208 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1208 test 1186...[Multipart formposting with backslash-escaping filename containing '"'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1186 ../src/curl -q --output log/62/curl1186.out --include --trace-ascii log/62/trace1186 --trace-config all --trace-time http://127.0.0.1:38899/we/want/1186 --form-escape -F "file=@\"log/62/test1186\\\".txt\";type=mo/foo;filename=\"test1186\\\".txt\"" -F 'file2=@"log/62/test1186\".txt"' -F 'file3=@"log/62/test1186\".txt";type=m/f,"log/62/test1186\".txt"' > log/62/stdout1186 2> log/62/stderr1186 1186: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1186 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1186 ../src/curl -q --output log/62/curl1186.out --include --trace-ascii log/62/trace1186 --trace-config all --trace-time http://127.0.0.1:38899/we/want/1186 --form-escape -F "file=@\"log/62/test1186\\\".txt\";type=mo/foo;filename=\"test1186\\\".txt\"" -F 'file2=@"log/62/test1186\".txt"' -F 'file3=@"log/62/test1186\".txt";type=m/f,"log/62/test1186\".txt"' > log/62/stdout1186 2> log/62/stderr1186 === End of file commands.log === Start of file http_server.log 09:41:21.441921 ====> Client connect 09:41:21.442224 accept_connection 3 returned 4 09:41:21.442399 accept_connection 3 returned 0 09:41:21.442718 Read 93 bytes 09:41:21.442839 Process 93 bytes request 09:41:21.442945 Got request: GET /verifiedserver HTTP/1.1 09:41:21.443043 Are-we-friendly question received 09:41:21.443281 Wrote request (93 bytes) input to log/62/server.input 09:41:21.447595 Identifying ourselves as friends 09:41:21.455814 Response sent (56 bytes) and written to log/62/server.response 09:41:21.455956 special request received, no persistency 09:41:21.456038 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1186 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file test1186".txt foo bar This is a bar foo bar foo === End of file test1186".txt === Start of file valgrind1186 valgrind: Fatal error at startup: a function redirection valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1194 ../src/curl -q --output log/17/curl1194.out --include --trace log/17/trace1194 --trace-config all --trace-time mqtt://127.0.0.1:44751/1194 > log/17/stdout1194 2> log/17/stderr1194 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1207 ../src/curl -q --output log/33/curl1207.out --include --trace-ascii log/33/trace1207 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:36895/1207 -P - > log/33/stdout1207 2> log/33/stderr1207 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1206 ../src/curl -q --output log/34/curl1206.out --include --trace-ascii log/34/trace1206 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:33001/1206 -P - > log/34/stdout1206 2> log/34/stderr1206 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1196 ../src/curl -q --output log/18/curl1196.out --include --trace log/18/trace1196 --trace-config all --trace-time mqtt://127.0.0.1:44009/1196 > log/18/stdout1196 2> log/18/stderr1196 : which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1186 startnew: ./server/servers mqttd --port 0 --pidfile log/17/server/mqtt_server.pid --portfile log/17/server/mqtt_server.port --config log/17/server.cmd --logfile log/17/mqtt_server.log --logdir log/17 RUN: MQTT server is now running PID 132935 on PORT 44751 * pid mqtt => 132935 132935 test 1194...[MQTT SUBSCRIBE with PUBLISH before SUBACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1194 ../src/curl -q --output log/17/curl1194.out --include --trace log/17/trace1194 --trace-config all --trace-time mqtt://127.0.0.1:44751/1194 > log/17/stdout1194 2> log/17/stderr1194 1194: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1194 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1194 ../src/curl -q --output log/17/curl1194.out --include --trace log/17/trace1194 --trace-config all --trace-time mqtt://127.0.0.1:44751/1194 > log/17/stdout1194 2> log/17/stderr1194 === End of file commands.log === Start of file mqtt_server.log 09:41:21.400427 Running IPv4 version 09:41:21.400978 Listening on port 44751 09:41:21.401329 Wrote pid 132935 to log/17/server/mqtt_server.pid 09:41:21.401735 Wrote port 44751 to log/17/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd PUBLISH-before-SUBACK TRUE Testnum 1194 === End of file server.cmd === Start of file valgrind1194 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1194 test 1207...[FTP PORT and 421 on download] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1207 ../src/curl -q --output log/33/curl1207.out --include --trace-ascii log/33/trace1207 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:36895/1207 -P - > log/33/stdout1207 2> log/33/stderr1207 1207: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 1207 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1207 ../src/curl -q --output log/33/curl1207.out --include --trace-ascii log/33/trace1207 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:36895/1207 -P - > log/33/stdout1207 2> log/33/stderr1207 === End of file commands.log === Start of file ftp_server.log 09:41:21.829992 ====> Client connect 09:41:21.832560 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:21.842027 < "USER anonymous" 09:41:21.846012 > "331 We are happy you popped in![CR][LF]" 09:41:21.847218 < "PASS ftp@example.com" 09:41:21.847607 > "230 Welcome you silly person[CR][LF]" 09:41:21.849241 < "PWD" 09:41:21.849624 > "257 "/" is current directory[CR][LF]" 09:41:21.852306 < "EPSV" 09:41:21.852692 ====> Passive DATA channel requested by client 09:41:21.853015 DATA sockfilt for passive data channel starting... 09:41:21.885038 DATA sockfilt for passive data channel started (pid 134266) 09:41:21.887556 DATA sockfilt for passive data channel listens on port 46409 09:41:21.888146 > "229 Entering Passive Mode (|||46409|)[LF]" 09:41:21.888401 Client has been notified that DATA conn will be accepted on port 46409 09:41:21.890531 Client connects to port 46409 09:41:21.890930 ====> Client established passive DATA connection on port 46409 09:41:21.891870 < "TYPE I" 09:41:21.892367 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:21.894177 < "SIZE verifiedserver" 09:41:21.896982 > "213 18[CR][LF]" 09:41:21.899521 < "RETR verifiedserver" 09:41:21.900533 > "150 Binary junk (18 bytes).[CR][LF]" 09:41:21.901384 =====> Closing passive DATA connection... 09:41:21.901605 Server disconnects passive DATA connection 09:41:21.904616 Server disconnected passive DATA connection 09:41:21.904990 DATA sockfilt for passive data channel quits (pid 134266) 09:41:21.907851 DATA sockfilt for passive data channel quit (pid 134266) 09:41:21.908113 =====> Closed passive DATA connection 09:41:21.908512 > "226 File transfer complete[CR][LF]" 09:41:21.947652 < "QUIT" 09:41:21.949482 > "221 bye bye baby[CR][LF]" 09:41:21.953905 MAIN sockfilt said DISC 09:41:21.958048 ====> Client disconnected 09:41:21.959039 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:22.080004 ====> Client connect 09:41:22.087753 Received DATA (on stdin) 09:41:22.087930 > 160 bytes data, server => client 09:41:22.088027 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:22.088126 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:22.088208 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:22.091681 < 16 bytes data, client => server 09:41:22.091842 'USER anonymous\r\n' 09:41:22.097771 Received DATA (on stdin) 09:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1191 ../src/curl -q --output log/36/curl1191.out --include --trace log/36/trace1191 --trace-config all --trace-time mqtt://127.0.0.1:39375/1191 -d something > log/36/stdout1191 2> log/36/stderr1191 41:22.098056 > 33 bytes data, server => client 09:41:22.098826 '331 We are happy you popped in!\r\n' 09:41:22.099973 < 22 bytes data, client => server 09:41:22.100276 'PASS ftp@example.com\r\n' 09:41:22.101361 Received DATA (on stdin) 09:41:22.101573 > 30 bytes data, server => client 09:41:22.101682 '230 Welcome you silly person\r\n' 09:41:22.102332 < 5 bytes data, client => server 09:41:22.102442 'PWD\r\n' 09:41:22.103731 Received DATA (on stdin) 09:41:22.103912 > 30 bytes data, server => client 09:41:22.104057 '257 "/" is current directory\r\n' 09:41:22.105212 < 6 bytes data, client => server 09:41:22.105372 'EPSV\r\n' 09:41:22.142412 Received DATA (on stdin) 09:41:22.142681 > 38 bytes data, server => client 09:41:22.142786 '229 Entering Passive Mode (|||46409|)\n' 09:41:22.144219 < 8 bytes data, client => server 09:41:22.144362 'TYPE I\r\n' 09:41:22.146064 Received DATA (on stdin) 09:41:22.146224 > 33 bytes data, server => client 09:41:22.146335 '200 I modify TYPE as you wanted\r\n' 09:41:22.147224 < 21 bytes data, client => server 09:41:22.147367 'SIZE verifiedserver\r\n' 09:41:22.148564 Received DATA (on stdin) 09:41:22.148738 > 8 bytes data, server => client 09:41:22.150659 '213 18\r\n' 09:41:22.151748 < 21 bytes data, client => server 09:41:22.151972 'RETR verifiedserver\r\n' 09:41:22.153830 Received DATA (on stdin) 09:41:22.154013 > 29 bytes data, server => client 09:41:22.155741 '150 Binary junk (18 bytes).\r\n' 09:41:22.162198 Received DATA (on stdin) 09:41:22.162573 > 28 bytes data, server => client 09:41:22.162750 '226 File transfer complete\r\n' 09:41:22.200105 < 6 bytes data, client => server 09:41:22.200753 'QUIT\r\n' 09:41:22.203262 Received DATA (on stdin) 09:41:22.203563 > 18 bytes data, server => client 09:41:22.203681 '221 bye bye baby\r\n' 09:41:22.206604 ====> Client disconnect 09:41:22.208645 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:21.131946 Running IPv4 version 09:41:21.137676 Listening on port 46409 09:41:21.138138 Wrote pid 134266 to log/33/server/ftp_sockdata.pid 09:41:21.138309 Received PING (on stdin) 09:41:21.140593 Received PORT (on stdin) 09:41:21.143944 ====> Client connect 09:41:21.154763 Received DATA (on stdin) 09:41:21.154927 > 18 bytes data, server => client 09:41:21.155016 'WE ROOLZ: 100684\r\n' 09:41:21.157605 Received DISC (on stdin) 09:41:21.157871 ====> Client forcibly disconnected 09:41:21.159060 Received QUIT (on stdin) 09:41:21.159248 quits 09:41:21.159770 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN421 Testnum 1207 === End of file server.cmd === Start of file valgrind1207 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1207 startnew: ./server/servers mqttd --port 0 --pidfile log/18/server/mqtt_server.pid --portfile log/18/server/mqtt_server.port --config log/18/server.cmd --logfile log/18/mqtt_server.log --logdir log/18 RUN: MQTT server is now running PID 133020 on PORT 44009 * pid mqtt => 133020 133020 test 1196...[MQTT with error in CONNACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1196 ../src/curl -q --output log/18/curl1196.out --include --trace log/18/trace1196 --trace-config all --trace-time mqtt://127.0.0.1:44009/1196 > log/18/stdout1196 2> log/18/stderr1196 1196: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 1196 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1196 ../src/curl -q --output log/18/curl1196.out --include --trace log/18/trace1196 --trace-config all --trace-time mqtt://127.0.0.1:44009/1196 > log/18/stdout1196 2> log/18/stderr1196 === End of file commands.log === Start of file mqtt_server.log 09:41:21.438687 Running IPv4 version 09:41:21.439227 Listening on port 44009 09:41:21.439712 Wrote pid 133020 to log/18/server/mqtt_server.pid 09:41:21.440063 Wrote port 44009 to log/18/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd error-CONNACK 1 Testnum 1196 === End of file server.cmd === Start of file valgrind1196 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1196 test 1206...[FTP PORT and 425 on download] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1206 ../src/curl -q --output log/34/curl1206.out --include --trace-ascii log/34/trace1206 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:33001/1206 -P - > log/34/stdout1206 2> log/34/stderr1206 1206: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 1206 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1206 ../src/curl -q --output log/34/curl1206.out --include --trace-ascii log/34/trace1206 --trace-config all --trace-time --max-time 8 ftp://127.0.0.1:33001/1206 -P - > log/34/stdout1206 2> log/34/stderr1206 === End of file commands.log === Start of file ftp_server.log 09:41:21.787701 ====> Client connect 09:41:21.789212 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:21.792233 < "USER anonymous" 09:41:21.793654 > "331 We are happy you popped in![CR][LF]" 09:41:21.795322 < "PASS ftp@example.com" 09:41:21.797323 > "230 Welcome you silly person[CR][LF]" 09:41:21.798111 < "PWD" 09:41:21.798658 > "257 "/" is current directory[CR][LF]" 09:41:21.802030 < "EPSV" 09:41:21.802393 ====> Passive DATA channel requested by client 09:41:21.802652 DATA sockfilt for passive data channel starting... 09:41:21.819567 DATA sockfilt for passive data channel started (pid 134224) 09:41:21.820570 DATA sockfilt for passive data channel listens on port 33291 09:41:21.821100 > "229 Entering Passive Mode (|||33291|)[LF]" 09:41:21.821345 Client has been notified that DATA conn will be accepted on port 33291 09:41:21.823872 Client connects to port 33291 09:41:21.824186 ====> Client established passive DATA connection on port 33291 09:41:21.825131 < "TYPE I" 09:41:21.825949 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:21.828281 < "SIZE verifiedserver" 09:41:21.830716 > "213 17[CR][LF]" 09:41:21.833107 < "RETR verifiedserver" 09:41:21.835196 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:21.837318 =====> Closing passive DATA connection... 09:41:21.837555 Server disconnects passive DATA connection 09:41:21.838282 Fancy that; client wants to DISC, too 09:41:21.839198 Server disconnected passive DATA connection 09:41:21.839518 DATA sockfilt for passive data channel quits (pid 134224) 09:41:21.842017 DATA sockfilt for passive data channel quit (pid 134224) 09:41:21.842257 =====> Closed passive DATA connection 09:41:21.842538 > "226 File transfer complete[CR][LF]" 09:41:21.878162 < "QUIT" 09:41:21.879973 > "221 bye bye baby[CR][LF]" 09:41:21.883169 MAIN sockfilt said DISC 09:41:21.884170 ====> Client disconnected 09:41:21.884860 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:22.040576 ====> Client connect 09:41:22.043255 Received DATA (on stdin) 09:41:22.043397 > 160 bytes data, server => client 09:41:22.043574 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:22.043726 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:22.043821 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:22.044824 < 16 bytes data, client => server 09:41:22.045010 'USER anonymous\r\n' 09:41:22.046317 Received DATA (on stdin) 09:41:22.046445 > 33 bytes data, server => client 09:41:22.046718 '331 We are happy you popped in!\r\n' 09:41:22.047631 < 22 bytes data, client => server 09:41:22.047830 'PASS ftp@example.com\r\n' 09:41:22.049674 Received DATA (on stdin) 09:41:22.049814 > 30 bytes data, server => client 09:41:22.049971 '230 Welcome you silly person\r\n' 09:41:22.050588 < 5 bytes data, client => server 09:41:22.050733 'PWD\r\n' 09:41:22.052864 Received DATA (on stdin) 09:41:22.053161 > 30 bytes data, server => client 09:41:22.053247 '257 "/" is current directory\r\n' 09:41:22.054638 < 6 bytes data, client => server 09:41:22.054866 'EPSV\r\n' 09:41:22.075333 Received DATA (on stdin) 09:41:22.075532 > 38 bytes data, server => client 09:41:22.075642 '229 Entering Passive Mode (|||33291|)\n' 09:41:22.077220 < 8 bytes data, client => server 09:41:22.077357 'TYPE I\r\n' 09:41:22.080179 Received DATA (on stdin) 09:41:22.080323 > 33 bytes data, server => client 09:41:22.080411 '200 I modify TYPE as you wanted\r\n' 09:41:22.081151 < 21 bytes data, client => server 09:41:22.081281 'SIZE verifiedserver\r\n' 09:41:22.082716 Received DATA (on stdin) 09:41:22.082939 > 8 bytes data, server => client 09:41:22.083122 '213 17\r\n' 09:41:22.085575 < 21 bytes data, client => server 09:41:22.085877 'RETR verifiedserver\r\n' 09:41:22.087648 Received DATA (on stdin) 09:41:22.087877 > 29 bytes data, server => client 09:41:22.088063 '150 Binary junk (17 bytes).\r\n' 09:41:22.096687 Received DATA (on stdin) 09:41:22.096815 > 28 bytes data, server => client 09:41:22.096887 '226 File transfer complete\r\n' 09:41:22.130610 < 6 bytes data, client => server 09:41:22.130838 'QUIT\r\n' 09:41:22.132638 Received DATA (on stdin) 09:41:22.132946 > 18 bytes data, server => client 09:41:22.133170 '221 bye bye baby\r\n' 09:41:22.136582 ====> Client disconnect 09:41:22.137264 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:21.071778 Running IPv4 version 09:41:21.072338 Listening on port 33291 09:41:21.072819 Wrote pid 134224 to log/34/server/ftp_sockdata.pid 09:41:21.072985 Received PING (on stdin) 09:41:21.073758 Received PORT (on stdin) 09:41:21.076651 ====> Client connect 09:41:21.089584 Received DATA (on stdin) 09:41:21.089727 > 17 bytes data, server => client 09:41:21.089807 'WE ROOLZ: 80544\r\n' 09:41:21.090624 ====> Client disconnect 09:41:21.091668 Received DISC (on stdin) 09:41:21.091829 Crikey! Client also wants to disconnect 09:41:21.092297 Received ACKD (on stdin) 09:41:21.093545 Received QUIT (on stdin) 09:41:21.093693 quits 09:41:21.094121 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN425 Testnum 1206 === End of file server.cmd === Start of file valgrind1206 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1206 startnew: ./server/servers mqttd --port 0 --pidfile log/36/server/mqtt_server.pid --portfile log/36/server/mqtt_server.port --config log/36/server.cmd --logfile log/36/mqtt_server.log --logdir log/36 RUN: MQTT server is now running PID 132662 on PORT 39375 * pid mqtt => 132662 132662 test 1191...[MQTT PUBLISH] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1191 ../src/curl -q --output log/36/curl1191.out --include --trace log/36/trace1191 --trace-config all --trace-time mqtt://127.0.0.1:39375/1191 -d something > log/36/stdout1191 2> log/36/stderr1191 1191: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1191 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1191 ../src/curl -CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1205 ../src/curl -q --output log/54/curl1205.out --include --trace-ascii log/54/trace1205 --trace-config all --trace-time http://127.0.0.1:44921/1205 > log/54/stdout1205 2> log/54/stderr1205 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1204 ../src/curl -q --output log/57/curl1204.out --include --trace-ascii log/57/trace1204 --trace-config all --trace-time http://127.0.0.1:35945/1204 -u testuser:testpass --anyauth > log/57/stdout1204 2> log/57/stderr1204 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1201 ../src/curl -q --output log/46/curl1201.out --include --trace-ascii log/46/trace1201 --trace-config all --trace-time gopher://127.0.0.1:36697/1/selector/SELECTOR/1201 > log/46/stdout1201 2> log/46/stderr1201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1192 ../src/curl -q --output log/48/curl1192.out --include --trace log/48/trace1192 --trace-config all --trace-time mqtt://127.0.0.1:35797/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1192 > log/48/stdout1192 2> log/48/stderr1192 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1195 ../src/curl -q --output log/53/curl1195.out --include --trace log/53/trace1195 --trace-config all --trace-time mqtt://127.0.0.1:42141/1195 > log/53/stdout1195 2> log/53/stderr1195 q --output log/36/curl1191.out --include --trace log/36/trace1191 --trace-config all --trace-time mqtt://127.0.0.1:39375/1191 -d something > log/36/stdout1191 2> log/36/stderr1191 === End of file commands.log === Start of file mqtt_server.log 09:41:20.199187 Running IPv4 version 09:41:20.199791 Listening on port 39375 09:41:20.200222 Wrote pid 132662 to log/36/server/mqtt_server.pid 09:41:20.200656 Wrote port 39375 to log/36/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1191 === End of file server.cmd === Start of file valgrind1191 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1191 test 1205...[HTTP GET with 18K HTTP header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1205 ../src/curl -q --output log/54/curl1205.out --include --trace-ascii log/54/trace1205 --trace-config all --trace-time http://127.0.0.1:44921/1205 > log/54/stdout1205 2> log/54/stderr1205 1205: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 1205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1205 ../src/curl -q --output log/54/curl1205.out --include --trace-ascii log/54/trace1205 --trace-config all --trace-time http://127.0.0.1:44921/1205 > log/54/stdout1205 2> log/54/stderr1205 === End of file commands.log === Start of file http_server.log 09:41:22.101624 ====> Client connect 09:41:22.101930 accept_connection 3 returned 4 09:41:22.102109 accept_connection 3 returned 0 09:41:22.102252 Read 93 bytes 09:41:22.102349 Process 93 bytes request 09:41:22.102439 Got request: GET /verifiedserver HTTP/1.1 09:41:22.102599 Are-we-friendly question received 09:41:22.102848 Wrote request (93 bytes) input to log/54/server.input 09:41:22.103052 Identifying ourselves as friends 09:41:22.104016 Response sent (56 bytes) and written to log/54/server.response 09:41:22.104220 special request received, no persistency 09:41:22.104308 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 1205 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind1205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1205 test 1204...[HTTP with WWW-Authenticate and multiple auths in a single line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1204 ../src/curl -q --output log/57/curl1204.out --include --trace-ascii log/57/trace1204 --trace-config all --trace-time http://127.0.0.1:35945/1204 -u testuser:testpass --anyauth > log/57/stdout1204 2> log/57/stderr1204 1204: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 1204 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1204 ../src/curl -q --output log/57/curl1204.out --include --trace-ascii log/57/trace1204 --trace-config all --trace-time http://127.0.0.1:35945/1204 -u testuser:testpass --anyauth > log/57/stdout1204 2> log/57/stderr1204 === End of file commands.log === Start of file http_server.log 09:41:22.060920 ====> Client connect 09:41:22.061254 accept_connection 3 returned 4 09:41:22.061417 accept_connection 3 returned 0 09:41:22.061721 Read 93 bytes 09:41:22.061825 Process 93 bytes request 09:41:22.061916 Got request: GET /verifiedserver HTTP/1.1 09:41:22.062037 Are-we-friendly question received 09:41:22.065646 Wrote request (93 bytes) input to log/57/server.input 09:41:22.066020 Identifying ourselves as friends 09:41:22.068306 Response sent (56 bytes) and written to log/57/server.response 09:41:22.068435 special request received, no persistency 09:41:22.068635 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === StartCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1193 ../src/curl -q --output log/64/curl1193.out --include --trace log/64/trace1193 --trace-config all --trace-time mqtt://127.0.0.1:32835/1193 -d @log/64/payload1193 > log/64/stdout1193 2> log/64/stderr1193 of file server.cmd Testnum 1204 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind1204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1204 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/46/server/gopher_server.pid" --logfile "log/46/gopher_server.log" --logdir "log/46" --portfile log/46/server/gopher_server.port --config log/46/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER server is on PID 133751 port 36697 * pid gopher => 133751 133751 test 1201...[Gopher selector] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1201 ../src/curl -q --output log/46/curl1201.out --include --trace-ascii log/46/trace1201 --trace-config all --trace-time gopher://127.0.0.1:36697/1/selector/SELECTOR/1201 > log/46/stdout1201 2> log/46/stderr1201 1201: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 1201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1201 ../src/curl -q --output log/46/curl1201.out --include --trace-ascii log/46/trace1201 --trace-config all --trace-time gopher://127.0.0.1:36697/1/selector/SELECTOR/1201 > log/46/stdout1201 2> log/46/stderr1201 === End of file commands.log === Start of file gopher_server.log 09:41:21.000344 Running GOPHER IPv4 version on port 36697 09:41:21.001189 Wrote pid 133751 to log/46/server/gopher_server.pid 09:41:21.003681 Wrote port 36697 to log/46/server/gopher_server.port === End of file gopher_server.log === Start of file server.cmd Testnum 1201 === End of file server.cmd === Start of file valgrind1201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1201 startnew: ./server/servers mqttd --port 0 --pidfile log/48/server/mqtt_server.pid --portfile log/48/server/mqtt_server.port --config log/48/server.cmd --logfile log/48/mqtt_server.log --logdir log/48 RUN: MQTT server is now running PID 132862 on PORT 35797 * pid mqtt => 132862 132862 test 1192...[MQTT SUBSCRIBE 2k topic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1192 ../src/curl -q --output log/48/curl1192.out --include --trace log/48/trace1192 --trace-config all --trace-time mqtt://127.0.0.1:35797/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1192 > log/48/stdout1192 2> log/48/stderr1192 1192: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 1192 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1192 ../src/curl -q --output log/48/curl1192.out --include --trace log/48/trace1192 --trace-config all --trace-time mqtt://127.0.0.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1203 ../src/curl -q --output log/3/curl1203.out --include --trace-ascii log/3/trace1203 --trace-config all --trace-time -g gopher://[::1]:41529/1/moo/1203 > log/3/stdout1203 2> log/3/stderr1203 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1210 ../src/curl -q --trace-ascii log/60/trace1210 --trace-config all --trace-time http://127.0.0.1:38843/1210?junk -J -O --output-dir log/60 > log/60/stdout1210 2> log/60/stderr1210 1:35797/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1192 > log/48/stdout1192 2> log/48/stderr1192 === End of file commands.log === Start of file mqtt_server.log 09:41:21.338820 Running IPv4 version 09:41:21.339592 Listening on port 35797 09:41:21.340067 Wrote pid 132862 to log/48/server/mqtt_server.pid 09:41:21.340444 Wrote port 35797 to log/48/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1192 === End of file server.cmd === Start of file valgrind1192 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1192 startnew: ./server/servers mqttd --port 0 --pidfile log/53/server/mqtt_server.pid --portfile log/53/server/mqtt_server.port --config log/53/server.cmd --logfile log/53/mqtt_server.log --logdir log/53 RUN: MQTT server is now running PID 133004 on PORT 42141 * pid mqtt => 133004 133004 test 1195...[MQTT SUBSCRIBE with short PUBLISH] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1195 ../src/curl -q --output log/53/curl1195.out --include --trace log/53/trace1195 --trace-config all --trace-time mqtt://127.0.0.1:42141/1195 > log/53/stdout1195 2> log/53/stderr1195 1195: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 1195 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1195 ../src/curl -q --output log/53/curl1195.out --include --trace log/53/trace1195 --trace-config all --trace-time mqtt://127.0.0.1:42141/1195 > log/53/stdout1195 2> log/53/stderr1195 === End of file commands.log === Start of file mqtt_server.log 09:41:21.416437 Running IPv4 version 09:41:21.417075 Listening on port 42141 09:41:21.417546 Wrote pid 133004 to log/53/server/mqtt_server.pid 09:41:21.417923 Wrote port 42141 to log/53/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd PUBLISH-before-SUBACK TRUE short-PUBLISH TRUE Testnum 1195 === End of file server.cmd === Start of file valgrind1195 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1195 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/3/server/gopher_ipv6_server.pid" --logfile "log/3/gopher_ipv6_server.log" --logdir "log/3" --portfile log/3/server/gopher_ipv6_server.port --config log/3/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER-IPv6 server is on PID 133815 port 41529 * pid gopher-ipv6 => 133815 133815 test 1203...[Gopher IPv6 index] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1203 ../src/curl -q --output log/3/curl1203.out --include --trace-ascii log/3/trace1203 --trace-config all --trace-time -g gopher://[::1]:41529/1/moo/1203 > log/3/stdout1203 2> log/3/stderr1203 1203: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1203 === Start of file commands.log ../libtool --mode=execCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1200 ../src/curl -q --output log/63/curl1200.out --include --trace-ascii log/63/trace1200 --trace-config all --trace-time gopher://127.0.0.1:34793/1/1200 > log/63/stdout1200 2> log/63/stderr1200 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1198 ../src/curl -q --output log/30/curl1198.out --include --trace log/30/trace1198 --trace-config all --trace-time mqtt://127.0.0.1:42935/%20 -d "" > log/30/stdout1198 2> log/30/stderr1198 ute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1203 ../src/curl -q --output log/3/curl1203.out --include --trace-ascii log/3/trace1203 --trace-config all --trace-time -g gopher://[::1]:41529/1/moo/1203 > log/3/stdout1203 2> log/3/stderr1203 === End of file commands.log === Start of file gopher_ipv6_server.log 09:41:21.998634 Running GOPHER IPv6 version on port 41529 09:41:21.999441 Wrote pid 133815 to log/3/server/gopher_ipv6_server.pid 09:41:21.999887 Wrote port 41529 to log/3/server/gopher_ipv6_server.port === End of file gopher_ipv6_server.log === Start of file server.cmd Testnum 1203 === End of file server.cmd === Start of file valgrind1203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1203 startnew: ./server/servers mqttd --port 0 --pidfile log/64/server/mqtt_server.pid --portfile log/64/server/mqtt_server.port --config log/64/server.cmd --logfile log/64/mqtt_server.log --logdir log/64 RUN: MQTT server is now running PID 132900 on PORT 32835 * pid mqtt => 132900 132900 test 1193...[MQTT PUBLISH 2k payload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1193 ../src/curl -q --output log/64/curl1193.out --include --trace log/64/trace1193 --trace-config all --trace-time mqtt://127.0.0.1:32835/1193 -d @log/64/payload1193 > log/64/stdout1193 2> log/64/stderr1193 1193: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1193 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1193 ../src/curl -q --output log/64/curl1193.out --include --trace log/64/trace1193 --trace-config all --trace-time mqtt://127.0.0.1:32835/1193 -d @log/64/payload1193 > log/64/stdout1193 2> log/64/stderr1193 === End of file commands.log === Start of file mqtt_server.log 09:41:21.330108 Running IPv4 version 09:41:21.330674 Listening on port 32835 09:41:21.331089 Wrote pid 132900 to log/64/server/mqtt_server.pid 09:41:21.331396 Wrote port 32835 to log/64/server/mqtt_server.port === End of file mqtt_server.log === Start of file payload1193 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 === End of file payload1193 === Start of file server.cmd Testnum 1193 === End of file server.cmd === Start of file valgrind1193 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1193 test 1210...[HTTP GET with -J without Content-Disposition] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1210 ../src/curl -q --trace-ascii log/60/trace1210 --trace-config all --trace-time http://127.0.0.1:38843/1210?junk -J -O --output-dir log/60 > log/60/stdout1210 2> log/60/stderr1210 1210: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1210 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/teCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1202 ../src/curl -q --output log/19/curl1202.out --include --trace-ascii log/19/trace1202 --trace-config all --trace-time "gopher://127.0.0.1:45571/7/the/search/engine%09query%20succeeded/1202" > log/19/stdout1202 2> log/19/stderr1202 sts/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1210 ../src/curl -q --trace-ascii log/60/trace1210 --trace-config all --trace-time http://127.0.0.1:38843/1210?junk -J -O --output-dir log/60 > log/60/stdout1210 2> log/60/stderr1210 === End of file commands.log === Start of file http_server.log 09:41:22.226266 ====> Client connect 09:41:22.226885 accept_connection 3 returned 4 09:41:22.227040 accept_connection 3 returned 0 09:41:22.227835 Read 93 bytes 09:41:22.227987 Process 93 bytes request 09:41:22.228065 Got request: GET /verifiedserver HTTP/1.1 09:41:22.228139 Are-we-friendly question received 09:41:22.228412 Wrote request (93 bytes) input to log/60/server.input 09:41:22.228711 Identifying ourselves as friends 09:41:22.229272 Response sent (56 bytes) and written to log/60/server.response 09:41:22.229372 special request received, no persistency 09:41:22.229430 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1210 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1210 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1210 startnew: ./server/servers mqttd --port 0 --pidfile log/30/server/mqtt_server.pid --portfile log/30/server/mqtt_server.port --config log/30/server.cmd --logfile log/30/mqtt_server.log --logdir log/30 RUN: MQTT server is now running PID 133201 on PORT 42935 * pid mqtt => 133201 133201 test 1198...[MQTT PUBLISH empty payload, single space topic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1198 ../src/curl -q --output log/30/curl1198.out --include --trace log/30/trace1198 --trace-config all --trace-time mqtt://127.0.0.1:42935/%20 -d "" > log/30/stdout1198 2> log/30/stderr1198 1198: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 1198 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1198 ../src/curl -q --output log/30/curl1198.out --include --trace log/30/trace1198 --trace-config all --trace-time mqtt://127.0.0.1:42935/%20 -d "" > log/30/stdout1198 2> log/30/stderr1198 === End of file commands.log === Start of file mqtt_server.log 09:41:21.471394 Running IPv4 version 09:41:21.472036 Listening on port 42935 09:41:21.472758 Wrote pid 133201 to log/30/server/mqtt_server.pid 09:41:21.473174 Wrote port 42935 to log/30/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1198 === End of file server.cmd === Start of file valgrind1198 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1198 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/63/server/gopher_server.pid" --logfile "log/63/gopher_server.log" --logdir "log/63" --portfile log/63/server/gopher_server.port --config log/63/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER server is on PID 133725 port 34793 * pid gopher => 133725 133725 test 1200...[Gopher index] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1200 ../src/curl -q --output log/63/curl1200.out --include --trace-ascii log/63/trace1200 --trace-config all --trace-time gopher://127.0.0.1:34793/1/1200 > log/63/stdout1200 2> log/63/stderr1200 1200: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1200 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1200 ../src/curl -q --output log/63/curl1200.out --include --trace-ascii log/63/trace1200 --trace-config all --trace-time gopher://127.0.0.1:34793/1/1200 > log/63/stdout1200 2> log/63/stderr1200 === End of file commands.log === Start of file gopher_server.log 09:41:21.046621 Running GOPHER IPv4 version on port 34793 09:41:21.047357 Wrote pid 133725 to log/63/server/gopher_server.pid 09:41:21.047864 Wrote port 34793 to log/63/server/gopher_server.port === End of file gopher_server.log === Start of file server.cmd Testnum 1200 === End of file server.cmd === Start of file valgrind1200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. DetailsCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1212 ../src/curl -q --output log/59/curl1212.out --include --trace-ascii log/59/trace1212 --trace-config all --trace-time http://user:secret@127.0.0.1:43695/ulion/1212 --socks5 non-existing-host.haxx.se:1080 --noproxy 127.0.0.1 --max-time 5 > log/59/stdout1212 2> log/59/stderr1212 of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1200 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/19/server/gopher_server.pid" --logfile "log/19/gopher_server.log" --logdir "log/19" --portfile log/19/server/gopher_server.port --config log/19/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER server is on PID 133803 port 45571 * pid gopher => 133803 133803 test 1202...[Gopher query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1202 ../src/curl -q --output log/19/curl1202.out --include --trace-ascii log/19/trace1202 --trace-config all --trace-time "gopher://127.0.0.1:45571/7/the/search/engine%09query%20succeeded/1202" > log/19/stdout1202 2> log/19/stderr1202 1202: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 1202 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1202 ../src/curl -q --output log/19/curl1202.out --include --trace-ascii log/19/trace1202 --trace-config all --trace-time "gopher://127.0.0.1:45571/7/the/search/engine%09query%20succeeded/1202" > log/19/stdout1202 2> log/19/stderr1202 === End of file commands.log === Start of file gopher_server.log 09:41:21.059838 Running GOPHER IPv4 version on port 45571 09:41:21.061035 Wrote pid 133803 to log/19/server/gopher_server.pid 09:41:21.061567 Wrote port 45571 to log/19/server/gopher_server.port === End of file gopher_server.log === Start of file server.cmd Testnum 1202 === End of file server.cmd === Start of file valgrind1202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1202 test 1212...[noproxy setting together with socks proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1212 ../src/curl -q --output log/59/curl1212.out --include --trace-ascii log/59/trace1212 --trace-config all --trace-time http://user:secret@127.0.0.1:43695/ulion/1212 --socks5 non-existing-host.haxx.se:1080 --noproxy 127.0.0.1 --max-time 5 > log/59/stdout1212 2> log/59/stderr1212 1212: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 1212 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1212 ../src/curl -q --output log/59/curl1212.out --include --trace-ascii log/59/trace1212 --trace-config all --trace-time http://user:secret@127.0.0.1:43695/ulion/1212 --socks5 non-existing-host.haxx.se:1080 --noproxy 127.0.0.1 --max-time 5 > log/59/stdout1212 2> log/59/stderr1212 === End of file commands.log === Start of file http_server.log 09:41:22.714754 ====> Client connect 09:41:22.715092 accept_connection 3 returned 4 09:41:22.715260 accept_connection 3 returned 0 09:41:22.715391 Read 93 bytes 09:41:22.715565 Process 93 bytes request 09:41:22.715690 Got request: GET /verifiedserver HTTP/1.1 09:41:22.715787 Are-we-friendly question received 09:41:22.716055 Wrote request (93 bytes) input to log/59/server.input 09:41:22.716238 Identifying ourselves as friends 09:41:22.717918 Response sent (56 bytes) and written to log/59/server.response 09:41:22.718034 special request received, no persistency 09:41:22.718101 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd Testnum 1212 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind1212 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1220 ../src/curl -q --trace-ascii log/49/trace1220 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/49/test1220.txt?a_query=foobar#afragment > log/49/stdout1220 2> log/49/stderr1220 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1199 ../src/curl -q --output log/56/curl1199.out --include --trace log/56/trace1199 --trace-config all --trace-time mqtt://127.0.0.1:46321 -d "" > log/56/stdout1199 2> log/56/stderr1199 ) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1212 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1213 ../src/curl -q --output log/61/curl1213.out --include --trace-ascii log/61/trace1213 --trace-config all --trace-time -x 127.0.0.1:44381 we.want.that.site.com.1213 > log/61/stdout1213 2> log/61/stderr1213 test 1220...[file:// URLs with query string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1220 ../src/curl -q --trace-ascii log/49/trace1220 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/49/test1220.txt?a_query=foobar#afragment > log/49/stdout1220 2> log/49/stderr1220 1220: stdout FAILED: --- log/49/check-expected 2025-07-18 09:41:23.824183536 +0000 +++ log/49/check-generated 2025-07-18 09:41:23.822586357 +0000 @@ -1 +0,0 @@ -contents in a single file[LF] == Contents of files in the log/49/ dir after test 1220 === Start of file check-expected contents in a single file[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1220 ../src/curl -q --trace-ascii log/49/trace1220 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/49/test1220.txt?a_query=foobar#afragment > log/49/stdout1220 2> log/49/stderr1220 === End of file commands.log === Start of file server.cmd Testnum 1220 === End of file server.cmd === Start of file test1220.txt contents in a single file === End of file test1220.txt === Start of file valgrind1220 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1220 startnew: ./server/servers mqttd --port 0 --pidfile log/56/server/mqtt_server.pid --portfile log/56/server/mqtt_server.port --config log/56/server.cmd --logfile log/56/mqtt_server.log --logdir log/56 RUN: MQTT server is now running PID 133491 on PORT 46321 * pid mqtt => 133491 133491 test 1199...[MQTT PUBLISH empty payload, no topic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1199 ../src/curl -q --output log/56/curl1199.out --include --trace log/56/trace1199 --trace-config all --trace-time mqtt://127.0.0.1:46321 -d "" > log/56/stdout1199 2> log/56/stderr1199 1199: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 1199 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1199 ../src/curl -q --output log/56/curl1199.out --include --trace log/56/trace1199 --trace-config all --trace-time mqtt://127.0.0.1:46321 -d "" > log/56/stdout1199 2> log/56/stderr1199 === End of file commands.log === Start of file mqtt_server.log 09:41:21.619569 Running IPv4 version 09:41:21.620146 Listening on port 46321 09:41:21.620681 Wrote pid 133491 to log/56/server/mqtt_server.pid 09:41:21.621019 Wrote port 46321 to log/56/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1199 === End of file server.cmd === Start of file valgrind1199 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1199 test 1213...[HTTP with proxy and host-only URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1213 ../src/curl -q --output log/61/curl1213.out --include --trace-ascii log/61/trace1213 --trace-config all --trace-time -x 127.0.0.1:44381 we.want.that.site.com.1213 > log/61/stdout1213 2> log/61/stderr1213 1213: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1213 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1213 ../src/curl -q --output log/61/curl1213.out --include --trace-ascii log/61/trace1213 --trace-config all --trace-time -x 127.0.0.1:44381 we.want.that.site.com.1213 > log/61/stdout1213 2> log/61/stderr1213 === End of file commands.log === Start of file http_server.log 09:41:23.073708 ====> Client connect 09:41:23.074018 accept_connection 3 returned 4 09:41:23.074174 accept_connection 3 returned 0 09:41:23.074302 Read 93 bytes 09:41:23.074394 Process 93 bytes request 09:41:23.074557 Got request: GET /verifiedserver HTTP/1.1 09:41:23.074658 Are-we-friendly question received 09:41:23.074881 Wrote request (93 bytes) input to log/61/server.input 09:41:23.075061 Identifying ourselves as friends 09:41:23.075869 Response sent (56 bytes) and written to log/61/server.response 09:41:23.075979 special request received, no persistency 09:41:23.076052 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verifyCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1234 ../src/curl -q --output log/24/curl1234.out --include --trace-ascii log/24/trace1234 --trace-config all --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/{}{}{}{" > log/24/stdout1234 2> log/24/stderr1234 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1219 ../src/curl -q --output log/58/curl1219.out --include --trace-ascii log/58/trace1219 --trace-config all --trace-time ftp://127.0.0.1:38901/1219 > log/58/stdout1219 2> log/58/stderr1219 .out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 1213 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind1213 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1213 * starts no server test 1234...[abusing {}-globbing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1234 ../src/curl -q --output log/24/curl1234.out --include --trace-ascii log/24/trace1234 --trace-config all --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/{}{}{}{" > log/24/stdout1234 2> log/24/stderr1234 curl returned 1, when expecting 3 1234: exit FAILED == Contents of files in the log/24/ dir after test 1234 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1234 ../src/curl -q --output log/24/curl1234.out --include --trace-ascii log/24/trace1234 --trace-config all --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/{}{}{}{" > log/24/stdout1234 2> log/24/stderr1234 === End of file commands.log === Start of file server.cmd Testnum 1234 === End of file server.cmd === Start of file valgrind1234 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1234 test 1219...[FTP with no user+password required (230 response)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1219 ../src/curl -q --output log/58/curl1219.out --include --trace-ascii log/58/trace1219 --trace-config all --trace-time ftp://127.0.0.1:38901/1219 > log/58/stdout1219 2> log/58/stderr1219 1219: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 1219 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1219 ../src/curl -q --output log/58/curl1219.out --include --trace-ascii log/58/trace1219 --trace-config all --trace-time ftp://127.0.0.1:38901/1219 > log/58/stdout1219 2> log/58/stderr1219 === End of file commands.log === Start of file ftp_server.log 09:41:23.102430 ====> Client connect 09:41:23.105126 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.107849 < "USER anonymous" 09:41:23.109169 > "331 We are happy you popped in![CR][LF]" 09:41:23.113176 < "PASS ftp@example.com" 09:41:23.114400 > "230 Welcome you silly person[CR][LF]" 09:41:23.118941 < "PWD" 09:41:23.120876 > "257 "/" is current directory[CR][LF]" 09:41:23.123636 < "EPSV" 09:41:23.124044 ====> Passive DATA channel requested by client 09:41:23.124276 DATA sockfilt for passive data channel starting... 09:41:23.145153 DATA sockfilt for passive data channel started (pid 135531) 09:41:23.146343 DATA sockfilt for passive data channel listens on port 35813 09:41:23.146856 > "229 Entering Passive Mode (|||35813|)[LF]" 09:41:23.147127 Client has been notified that DATA conn will be accepted on port 35813 09:41:23.150317 Client connects to port 35813 09:41:23.150621 ====> Client established passive DATA connection on port 35813 09:41:23.153630 < "TYPE I" 09:41:23.154040 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.156344 < "SIZE verifiedserver" 09:41:23.156701 > "213 17[CR][LF]" 09:41:23.159476 < "RETR verifiedserver" 09:41:23.161928 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:23.162634 =====> Closing passive DATA connection... 09:41:23.162934 Server disconnects passive DATA connection 09:41:23.165288 Server disconnected passive DATA connection 09:41:23.165505 DATA sockfilt for passive data channel quits (pid 135531) 09:41:23.167390 DATA sockfilt for passive data channel quit (pid 135531) 09:41:23.167600 =====> Closed passive DATA connection 09:41:23.168228 > "226 File transfer complete[CR][LF]" 09:41:23.204035 < "QUIT" 09:41:23.205072 > "221 bye bye baby[CR][LF]" 09:41:23.208972 MAIN sockfilt said DISC 09:41:23.209729 ====> Client disconnected 09:41:23.210353 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:23.355164 ====> Client connect 09:41:23.357567 Received DATA (on stdin) 09:41:23.357737 > 160 bytes data, server => client 09:41:23.357947 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:23.358090 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:23.358170 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:23.360012 < 16 bytes data, client => server 09:41:23.360255 'USER anonymous\r\n' 09:41:23.362127 Received DATA (on stdin) 09:41:23.362429 > 33 bytes data, server => client 09:41:23.363562 '331 We are happy you popped in!\r\n' 09:41:23.365372 < 22 bytes data, client => server 09:41:23.365722 'PASS ftp@example.com\r\n' 09:41:23.367277 Received DATA (on stdin) 09:41:23.367420 > 30 bytes data, server => client 09:4CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1223 ../src/curl -q --include --trace-ascii log/26/trace1223 --trace-config all --trace-time http://127.0.0.1:46481/1223 -w 'IP %{remote_ip} and PORT %{remote_port}\n' > log/26/stdout1223 2> log/26/stderr1223 1:23.367693 '230 Welcome you silly person\r\n' 09:41:23.371336 < 5 bytes data, client => server 09:41:23.371595 'PWD\r\n' 09:41:23.373321 Received DATA (on stdin) 09:41:23.373681 > 30 bytes data, server => client 09:41:23.373981 '257 "/" is current directory\r\n' 09:41:23.376279 < 6 bytes data, client => server 09:41:23.376637 'EPSV\r\n' 09:41:23.401154 Received DATA (on stdin) 09:41:23.401307 > 38 bytes data, server => client 09:41:23.401394 '229 Entering Passive Mode (|||35813|)\n' 09:41:23.404010 < 8 bytes data, client => server 09:41:23.404161 'TYPE I\r\n' 09:41:23.408592 Received DATA (on stdin) 09:41:23.408749 > 33 bytes data, server => client 09:41:23.408841 '200 I modify TYPE as you wanted\r\n' 09:41:23.409601 < 21 bytes data, client => server 09:41:23.409757 'SIZE verifiedserver\r\n' 09:41:23.410435 Received DATA (on stdin) 09:41:23.410679 > 8 bytes data, server => client 09:41:23.410776 '213 17\r\n' 09:41:23.412668 < 21 bytes data, client => server 09:41:23.412814 'RETR verifiedserver\r\n' 09:41:23.413619 Received DATA (on stdin) 09:41:23.413754 > 29 bytes data, server => client 09:41:23.413893 '150 Binary junk (17 bytes).\r\n' 09:41:23.421653 Received DATA (on stdin) 09:41:23.421775 > 28 bytes data, server => client 09:41:23.422183 '226 File transfer complete\r\n' 09:41:23.456679 < 6 bytes data, client => server 09:41:23.456869 'QUIT\r\n' 09:41:23.458068 Received DATA (on stdin) 09:41:23.458199 > 18 bytes data, server => client 09:41:23.458361 '221 bye bye baby\r\n' 09:41:23.462377 ====> Client disconnect 09:41:23.462955 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.395073 Running IPv4 version 09:41:23.397816 Listening on port 35813 09:41:23.398204 Wrote pid 135531 to log/58/server/ftp_sockdata.pid 09:41:23.398393 Received PING (on stdin) 09:41:23.399342 Received PORT (on stdin) 09:41:23.403139 ====> Client connect 09:41:23.416899 Received DATA (on stdin) 09:41:23.417007 > 17 bytes data, server => client 09:41:23.417071 'WE ROOLZ: 77973\r\n' 09:41:23.417392 Received DISC (on stdin) 09:41:23.418438 ====> Client forcibly disconnected 09:41:23.419524 Received QUIT (on stdin) 09:41:23.419648 quits 09:41:23.420058 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY welcome 230 welcome without password Testnum 1219 === End of file server.cmd === Start of file valgrind1219 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1219 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1275.pl /build/curl/src/curl/tests/.. > log/21/stdout1275 2> log/21/stderr1275 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl --heading=EXPORTS --sort /build/curl/src/curl/tests/.. > log/12/stdout1279 2> log/12/stderr1279 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1214 ../src/curl -q --output log/55/curl1214.out --include --trace-ascii log/55/trace1214 --trace-config all --trace-time -x 127.0.0.1:33071 http://we.want.that.site.com.1214?moo=foo > log/55/stdout1214 2> log/55/stderr1214 test 1223...[HTTP GET -w remote_ip and -w remote_port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1223 ../src/curl -q --include --trace-ascii log/26/trace1223 --trace-config all --trace-time http://127.0.0.1:46481/1223 -w 'IP %{remote_ip} and PORT %{remote_port}\n' > log/26/stdout1223 2> log/26/stderr1223 1223: stdout FAILED: --- log/26/check-expected 2025-07-18 09:41:24.190173631 +0000 +++ log/26/check-generated 2025-07-18 09:41:24.188586172 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 4[LF] -Connection: close[LF] -Content-Type: text/html[LF] -[LF] -hej[LF] -IP 127.0.0.1 and PORT 46481[LF] == Contents of files in the log/26/ dir after test 1223 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 4[LF] Connection: close[LF] Content-Type: text/html[LF] [LF] hej[LF] IP 127.0.0.1 and PORT 46481[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1223 ../src/curl -q --include --trace-ascii log/26/trace1223 --trace-config all --trace-time http://127.0.0.1:46481/1223 -w 'IP %{remote_ip} and PORT %{remote_port}\n' > log/26/stdout1223 2> log/26/stderr1223 === End of file commands.log === Start of file http_server.log 09:41:23.449931 ====> Client connect 09:41:23.450183 accept_connection 3 returned 4 09:41:23.450325 accept_connection 3 returned 0 09:41:23.450962 Read 93 bytes 09:41:23.451209 Process 93 bytes request 09:41:23.451276 Got request: GET /verifiedserver HTTP/1.1 09:41:23.451330 Are-we-friendly question received 09:41:23.451691 Wrote request (93 bytes) input to log/26/server.input 09:41:23.451864 Identifying ourselves as friends 09:41:23.452313 Response sent (56 bytes) and written to log/26/server.response 09:41:23.452409 special request received, no persistency 09:41:23.452539 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 1223 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1223 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1223 * starts no server test 1279...[Verify libcurl.def against CURL_EXTERN declarations] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl --heading=EXPORTS --sort /build/curl/src/curl/tests/.. > log/12/stdout1279 2> log/12/stderr1279 valgrind SKIPPED s------e--- OK (1190 out of 1707, remaining: 00:25, took 0.322s, duration: 00:58) * starts no server test 1275...[Verify capital letters after period in markdown files] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1275.pl /build/curl/src/curl/tests/.. > log/21/stdout1275 2> log/21/stderr1275 valgrind SKIPPED -------e--- OK (1186 out of 1707, remaining: 00:25, took 0.386s, duration: 00:58) test 1214...[HTTP with proxy and URL with ? and no slash separator] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1214 ../src/curl -q --output log/55/curl1214.out --include --trace-ascii log/55/trace1214 --trace-config all --trace-time -x 127.0.0.1:33071 http://we.want.that.site.com.1214?moo=foo > log/55/stdout1214 2> log/55/stderr1214 1214: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 1214 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1214 ../src/curl -q --output log/55/curl1214.out --include --trace-ascii log/55/trace1214 --trace-config all --trace-time -x 127.0.0.1:33071 http://we.want.that.site.com.1214?moo=foo > log/55/stdout1214 2> log/55/stderr1214 === End of file commands.log === Start of file http_server.log 09:41:23.332058 ====> Client connect 09:41:23.332581 accept_connection 3 returned 4 09:41:23.332857 accept_connection 3 returned 0 09:41:23.333971 Read 93 bytes 09:41:23.334107 Process 93 bytes request 09:41:23.334237 Got request: GET /verifiedserver HTTP/1.1 09:41:23.334333 Are-we-friendly question received 09:41:23.334745 Wrote request (93 bytes) input to log/55/server.input 09:41:23.334966 Identifying ourselves as friends 09:41:23.336874 Response sent (56 bytes) and written to log/55/server.response 09:41:23.337011 special request received, no persistency 09:41:23.337082 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 1214 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind1214 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1231 ../src/curl -q --output log/17/curl1231.out --include --trace-ascii log/17/trace1231 --trace-config all --trace-time http://127.0.0.1:44383/../../hej/but/who/../1231?stupid=me/../1231#soo/../1231 http://127.0.0.1:44383/../../hej/but/who/../12310001#/../12310001 > log/17/stdout1231 2> log/17/stderr1231 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1276.pl /build/curl/src/curl/tests/.. > log/10/stdout1276 2> log/10/stderr1276 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1217 ../src/curl -q --output log/31/curl1217.out --include --trace-ascii log/31/trace1217 --trace-config all --trace-time ftp://127.0.0.1:40969/get/file/1217 ftp://127.0.0.1:40969/get/file/again/1217 --ftp-method singlecwd > log/31/stdout1217 2> log/31/stderr1217 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1236 ../src/curl -q --output log/20/curl1236.out --include --trace-ascii log/20/trace1236 --trace-config all --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/[1-4611686018427387904][1-4611686018427387904]" > log/20/stdout1236 2> log/20/stderr1236 machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1214 test 1231...[HTTP URL with dotdot removal from path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1231 ../src/curl -q --output log/17/curl1231.out --include --trace-ascii log/17/trace1231 --trace-config all --trace-time http://127.0.0.1:44383/../../hej/but/who/../1231?stupid=me/../1231#soo/../1231 http://127.0.0.1:44383/../../hej/but/who/../12310001#/../12310001 > log/17/stdout1231 2> log/17/stderr1231 1231: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1231 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1231 ../src/curl -q --output log/17/curl1231.out --include --trace-ascii log/17/trace1231 --trace-config all --trace-time http://127.0.0.1:44383/../../hej/but/who/../1231?stupid=me/../1231#soo/../1231 http://127.0.0.1:44383/../../hej/but/who/../12310001#/../12310001 > log/17/stdout1231 2> log/17/stderr1231 === End of file commands.log === Start of file http_server.log 09:41:23.690444 ====> Client connect 09:41:23.690993 accept_connection 3 returned 4 09:41:23.691160 accept_connection 3 returned 0 09:41:23.691296 Read 93 bytes 09:41:23.691390 Process 93 bytes request 09:41:23.691557 Got request: GET /verifiedserver HTTP/1.1 09:41:23.691657 Are-we-friendly question received 09:41:23.691885 Wrote request (93 bytes) input to log/17/server.input 09:41:23.692059 Identifying ourselves as friends 09:41:23.692786 Response sent (56 bytes) and written to log/17/server.response 09:41:23.692894 special request received, no persistency 09:41:23.692963 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 1231 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind1231 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1231 * starts no server test 1276...[Verify lib/optiontable.pl] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1276.pl /build/curl/src/curl/tests/.. > log/10/stdout1276 2> log/10/stderr1276 valgrind SKIPPED -------e--- OK (1187 out of 1707, remaining: 00:25, took 0.446s, duration: 00:58) test 1217...[FTP with rubbish before name in 257-response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1217 ../src/curl -q --output log/31/curl1217.out --include --trace-ascii log/31/trace1217 --trace-config all --trace-time ftp://127.0.0.1:40969/get/file/1217 ftp://127.0.0.1:40969/get/file/again/1217 --ftp-method singlecwd > log/31/stdout1217 2> log/31/stderr1217 1217: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1217 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1217 ../src/curl -q --output log/31/curl1217.out --include --trace-ascii log/31/trace1217 --trace-config all --trace-time ftp://127.0.0.1:40969/get/file/1217 ftp://127.0.0.1:40969/get/file/again/1217 --ftp-method singlecwd > log/31/stdout1217 2> log/31/stderr1217 === End of file commands.log === Start of file ftp_server.log 09:41:23.145012 ====> Client connect 09:41:23.147969 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.150351 < "USER anonymous" 09:41:23.150737 > "331 We are happy you popped in![CR][LF]" 09:41:23.153073 < "PASS ftp@example.com" 09:41:23.154511 > "230 Welcome you silly person[CR][LF]" 09:41:23.155702 < "PWD" 09:41:23.156910 > "257 "/" is current directory[CR][LF]" 09:41:23.158618 < "EPSV" 09:41:23.159005 ====> Passive DATA channel requested by client 09:41:23.159221 DATA sockfilt for passive data channel starting... 09:41:23.188069 DATA sockfilt for passive data channel started (pid 135600) 09:41:23.189267 DATA sockfilt for passive data channel listens on port 42857 09:41:23.190286 > "229 Entering Passive Mode (|||42857|)[LF]" 09:41:23.190514 Client has been notified that DATA conn will be accepted on port 42857 09:41:23.192873 Client connects to port 42857 09:41:23.193230 ====> Client established passive DATA connection on port 42857 09:41:23.194149 < "TYPE I" 09:41:23.194570 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.196608 < "SIZE verifiedserver" 09:41:23.197229 > "213 18[CR][LF]" 09:41:23.199638 < "RETR verifiedserver" 09:41:23.200384 > "150 Binary junk (18 bytes).[CR][LF]" 09:41:23.202652 =====> Closing passive DATA connection... 09:41:23.202954 Server disconnects passive DATA connection 09:41:23.203942 Server disconnected passive DATA connection 09:41:23.204187 DATA sockfilt for passive data channel quits (pid 135600) 09:41:23.206364 DATA sockfilt for passive data channel quit (pid 135600) 09:41:23.20CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1227 ../src/curl -q --output log/62/curl1227.out --include --trace-ascii log/62/trace1227 --trace-config all --trace-time ftp://127.0.0.1:38963//1227 --ftp-method nocwd > log/62/stdout1227 2> log/62/stderr1227 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1237 ../src/curl -q --output log/16/curl1237.out --include --trace-ascii log/16/trace1237 --trace-config all --trace-time "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB@127.0.0.1:34829/1237" > log/16/stdout1237 2> log/16/stderr1237 6676 =====> Closed passive DATA connection 09:41:23.207100 > "226 File transfer complete[CR][LF]" 09:41:23.246724 < "QUIT" 09:41:23.248600 > "221 bye bye baby[CR][LF]" 09:41:23.249010 MAIN sockfilt said DISC 09:41:23.249292 ====> Client disconnected 09:41:23.253373 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:23.397046 ====> Client connect 09:41:23.400071 Received DATA (on stdin) 09:41:23.400218 > 160 bytes data, server => client 09:41:23.402018 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:23.402144 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:23.402215 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:23.403014 < 16 bytes data, client => server 09:41:23.403158 'USER anonymous\r\n' 09:41:23.404753 Received DATA (on stdin) 09:41:23.404902 > 33 bytes data, server => client 09:41:23.405010 '331 We are happy you popped in!\r\n' 09:41:23.405616 < 22 bytes data, client => server 09:41:23.405786 'PASS ftp@example.com\r\n' 09:41:23.407195 Received DATA (on stdin) 09:41:23.407354 > 30 bytes data, server => client 09:41:23.407607 '230 Welcome you silly person\r\n' 09:41:23.408651 < 5 bytes data, client => server 09:41:23.408783 'PWD\r\n' 09:41:23.409886 Received DATA (on stdin) 09:41:23.410029 > 30 bytes data, server => client 09:41:23.410192 '257 "/" is current directory\r\n' 09:41:23.411352 < 6 bytes data, client => server 09:41:23.411679 'EPSV\r\n' 09:41:23.443620 Received DATA (on stdin) 09:41:23.443771 > 38 bytes data, server => client 09:41:23.444573 '229 Entering Passive Mode (|||42857|)\n' 09:41:23.446210 < 8 bytes data, client => server 09:41:23.446328 'TYPE I\r\n' 09:41:23.448692 Received DATA (on stdin) 09:41:23.448827 > 33 bytes data, server => client 09:41:23.448909 '200 I modify TYPE as you wanted\r\n' 09:41:23.449450 < 21 bytes data, client => server 09:41:23.449686 'SIZE verifiedserver\r\n' 09:41:23.451436 Received DATA (on stdin) 09:41:23.451649 > 8 bytes data, server => client 09:41:23.451752 '213 18\r\n' 09:41:23.452291 < 21 bytes data, client => server 09:41:23.452519 'RETR verifiedserver\r\n' 09:41:23.453803 Received DATA (on stdin) 09:41:23.453934 > 29 bytes data, server => client 09:41:23.454547 '150 Binary junk (18 bytes).\r\n' 09:41:23.461153 Received DATA (on stdin) 09:41:23.461292 > 28 bytes data, server => client 09:41:23.461381 '226 File transfer complete\r\n' 09:41:23.499659 < 6 bytes data, client => server 09:41:23.499822 'QUIT\r\n' 09:41:23.500939 Received DATA (on stdin) 09:41:23.501130 > 18 bytes data, server => client 09:41:23.501371 '221 bye bye baby\r\n' 09:41:23.502043 ====> Client disconnect 09:41:23.506610 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.436360 Running IPv4 version 09:41:23.437012 Listening on port 42857 09:41:23.437379 Wrote pid 135600 to log/31/server/ftp_sockdata.pid 09:41:23.439757 Received PING (on stdin) 09:41:23.442272 Received PORT (on stdin) 09:41:23.445935 ====> Client connect 09:41:23.454892 Received DATA (on stdin) 09:41:23.455023 > 18 bytes data, server => client 09:41:23.455105 'WE ROOLZ: 100730\r\n' 09:41:23.456905 Received DISC (on stdin) 09:41:23.457167 ====> Client forcibly disconnected 09:41:23.458252 Received QUIT (on stdin) 09:41:23.458382 quits 09:41:23.458879 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 there is rubbish all over "/this/is/the/path" Testnum 1217 === End of file server.cmd === Start of file valgrind1217 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1217 * starts no server test 1236...[[] globbing overflowing the range counter] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1236 ../src/curl -q --output log/20/curl1236.out --include --trace-ascii log/20/trace1236 --trace-config all --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/[1-4611686018427387904][1-4611686018427387904]" > log/20/stdout1236 2> log/20/stderr1236 curl returned 1, when expecting 3 1236: exit FAILED == Contents of files in the log/20/ dir after test 1236 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1236 ../src/curl -q --output log/20/curl1236.out --include --trace-ascii log/20/trace1236 --trace-config all --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/[1-4611686018427387904][1-4611686018427387904]" > log/20/stdout1236 2> log/20/stderr1236 === End of file commands.log === Start of file server.cmd Testnum 1236 === End of file server.cmd === Start of file valgrind1236 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1236 test 1237...[URL with 1000+ letter user name + password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1237 ../src/curl -q --output log/16/curl1237.out --include --trace-ascii log/16/trace1237 --trace-config all --trace-time "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1228 ../src/curl -q --output log/40/curl1228.out --include --trace-ascii log/40/trace1228 --trace-config all --trace-time http://example.fake/hoge/1228 http://example.fake/hogege/ -b nonexisting -x 127.0.0.1:42139 > log/40/stdout1228 2> log/40/stderr1228 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB@127.0.0.1:34829/1237" > log/16/stdout1237 2> log/16/stderr1237 1237: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 1237 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1237 ../src/curl -q --output log/16/curl1237.out --include --trace-ascii log/16/trace1237 --trace-config all --trace-time "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB@127.0.0.1:34829/1237" > log/16/stdout1237 2> log/16/stderr1237 === End of file commands.log === Start of file http_server.log 09:41:23.733892 ====> Client connect 09:41:23.734161 accept_connection 3 returned 4 09:41:23.734303 accept_connection 3 returned 0 09:41:23.734422 Read 93 bytes 09:41:23.735052 Process 93 bytes request 09:41:23.735151 Got request: GET /verifiedserver HTTP/1.1 09:41:23.735219 Are-we-friendly question received 09:41:23.735416 Wrote request (93 bytes) input to log/16/server.input 09:41:23.735650 Identifying ourselves as friends 09:41:23.737289 Response sent (56 bytes) and written to log/16/server.response 09:41:23.737398 special request received, no persistency 09:41:23.737533 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 1237 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind1237 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1237 test 1227...[FTP fetch a file from the root directory with nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1227 ../src/curl -q --output log/62/curl1227.out --include --trace-ascii log/62/trace1227 --trace-config all --trace-time ftp://127.0.0.1:38963//1227 --ftp-method nocwd > log/62/stdout1227 2> log/62/stderr1227 1227: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1227 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-calCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1221 ../src/curl -q --output log/47/curl1221.out --include --trace-ascii log/47/trace1221 --trace-config all --trace-time http://127.0.0.1:41103/1221 --url-query "my name is moo[]" --url-query "yes=s i r" --url-query "v_alue@log/47/1221.txt" --url-query @log/47/1221.txt --url-query "+%3d%3d" --data-urlencode "start=once upon the time" > log/47/stdout1221 2> log/47/stderr1221 lers=16 --log-file=log/62/valgrind1227 ../src/curl -q --output log/62/curl1227.out --include --trace-ascii log/62/trace1227 --trace-config all --trace-time ftp://127.0.0.1:38963//1227 --ftp-method nocwd > log/62/stdout1227 2> log/62/stderr1227 === End of file commands.log === Start of file ftp_server.log 09:41:23.370948 ====> Client connect 09:41:23.372555 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.376238 < "USER anonymous" 09:41:23.376611 > "331 We are happy you popped in![CR][LF]" 09:41:23.378659 < "PASS ftp@example.com" 09:41:23.380485 > "230 Welcome you silly person[CR][LF]" 09:41:23.382652 < "PWD" 09:41:23.383920 > "257 "/" is current directory[CR][LF]" 09:41:23.385559 < "EPSV" 09:41:23.385910 ====> Passive DATA channel requested by client 09:41:23.386126 DATA sockfilt for passive data channel starting... 09:41:23.401909 DATA sockfilt for passive data channel started (pid 135905) 09:41:23.403233 DATA sockfilt for passive data channel listens on port 40885 09:41:23.403684 > "229 Entering Passive Mode (|||40885|)[LF]" 09:41:23.404038 Client has been notified that DATA conn will be accepted on port 40885 09:41:23.406722 Client connects to port 40885 09:41:23.407109 ====> Client established passive DATA connection on port 40885 09:41:23.408874 < "TYPE I" 09:41:23.410188 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.412174 < "SIZE verifiedserver" 09:41:23.413060 > "213 17[CR][LF]" 09:41:23.415046 < "RETR verifiedserver" 09:41:23.415545 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:23.417025 =====> Closing passive DATA connection... 09:41:23.417255 Server disconnects passive DATA connection 09:41:23.420170 Server disconnected passive DATA connection 09:41:23.420591 DATA sockfilt for passive data channel quits (pid 135905) 09:41:23.422724 DATA sockfilt for passive data channel quit (pid 135905) 09:41:23.423081 =====> Closed passive DATA connection 09:41:23.423428 > "226 File transfer complete[CR][LF]" 09:41:23.459539 < "QUIT" 09:41:23.460320 > "221 bye bye baby[CR][LF]" 09:41:23.465045 MAIN sockfilt said DISC 09:41:23.465380 ====> Client disconnected 09:41:23.465944 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:23.623194 ====> Client connect 09:41:23.626977 Received DATA (on stdin) 09:41:23.627131 > 160 bytes data, server => client 09:41:23.627242 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:23.627343 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:23.627434 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:23.629061 < 16 bytes data, client => server 09:41:23.629214 'USER anonymous\r\n' 09:41:23.630551 Received DATA (on stdin) 09:41:23.630687 > 33 bytes data, server => client 09:41:23.630773 '331 We are happy you popped in!\r\n' 09:41:23.631599 < 22 bytes data, client => server 09:41:23.631749 'PASS ftp@example.com\r\n' 09:41:23.634566 Received DATA (on stdin) 09:41:23.634704 > 30 bytes data, server => client 09:41:23.634788 '230 Welcome you silly person\r\n' 09:41:23.635359 < 5 bytes data, client => server 09:41:23.635718 'PWD\r\n' 09:41:23.636893 Received DATA (on stdin) 09:41:23.637030 > 30 bytes data, server => client 09:41:23.637195 '257 "/" is current directory\r\n' 09:41:23.638512 < 6 bytes data, client => server 09:41:23.638660 'EPSV\r\n' 09:41:23.658087 Received DATA (on stdin) 09:41:23.658224 > 38 bytes data, server => client 09:41:23.658313 '229 Entering Passive Mode (|||40885|)\n' 09:41:23.660115 < 8 bytes data, client => server 09:41:23.660232 'TYPE I\r\n' 09:41:23.663520 Received DATA (on stdin) 09:41:23.663670 > 33 bytes data, server => client 09:41:23.664246 '200 I modify TYPE as you wanted\r\n' 09:41:23.664982 < 21 bytes data, client => server 09:41:23.665117 'SIZE verifiedserver\r\n' 09:41:23.666310 Received DATA (on stdin) 09:41:23.666450 > 8 bytes data, server => client 09:41:23.667106 '213 17\r\n' 09:41:23.667837 < 21 bytes data, client => server 09:41:23.667972 'RETR verifiedserver\r\n' 09:41:23.669572 Received DATA (on stdin) 09:41:23.669709 > 29 bytes data, server => client 09:41:23.669796 '150 Binary junk (17 bytes).\r\n' 09:41:23.677446 Received DATA (on stdin) 09:41:23.677688 > 28 bytes data, server => client 09:41:23.677783 '226 File transfer complete\r\n' 09:41:23.712382 < 6 bytes data, client => server 09:41:23.712599 'QUIT\r\n' 09:41:23.713705 Received DATA (on stdin) 09:41:23.713839 > 18 bytes data, server => client 09:41:23.714351 '221 bye bye baby\r\n' 09:41:23.714939 ====> Client disconnect 09:41:23.719946 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.652811 Running IPv4 version 09:41:23.653865 Listening on port 40885 09:41:23.654808 Wrote pid 135905 to log/62/server/ftp_sockdata.pid 09:41:23.654987 Received PING (on stdin) 09:41:23.656258 Received PORT (on stdin) 09:41:23.659846 ====> Client connect 09:41:23.671552 Received DATA (on stdin) 09:41:23.671706 > 17 bytes data, server => client 09:41:23.671789 'WE ROOLZ: 78462\r\n' 09:41:23.672302 Received DISC (on stdin) 09:41:23.672448 ====> Client forcibly disconnected 09:41:23.674790 Received QUIT (on stdin) 09:41:23.674927 quits 09:41:23.675342 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1227 === End of file server.cmd === Start of file valgrind1227 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1227 test 1228...[HTTP cookie path match] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1228 ../src/curl -q --output log/40/curl1228.out --include --trace-ascii log/40/trace1228 --trace-config all --trace-time http://example.fake/hoge/1228 http://example.fake/hogege/ -b nonexisting -x 127.0.0.1:42139 > log/40/stdout1228 2> log/40/stderr1228 1228: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 1228 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1228 ../src/curl -q --output log/40/curl1228.out --include --trace-ascii log/40/trace1228 --trace-config all --trace-time http://example.fake/hoge/1228 http://example.fake/hogege/ -b nonexisting -x 127.0.0.1:42139 > log/40/stdout1228 2> log/40/stderr1228 === End of file commands.log === SCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1242 ../src/curl -q --output log/34/curl1242.out --include --trace-ascii log/34/trace1242 --trace-config all --trace-time tftp://127.0.0.1:35651//1242 --tftp-no-options > log/34/stdout1242 2> log/34/stderr1242 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1226 ../src/curl -q --output log/44/curl1226.out --include --trace-ascii log/44/trace1226 --trace-config all --trace-time ftp://127.0.0.1:41125//1226 --ftp-method singlecwd > log/44/stdout1226 2> log/44/stderr1226 tart of file http_server.log 09:41:23.538756 ====> Client connect 09:41:23.539155 accept_connection 3 returned 4 09:41:23.539353 accept_connection 3 returned 0 09:41:23.539615 Read 93 bytes 09:41:23.539743 Process 93 bytes request 09:41:23.539827 Got request: GET /verifiedserver HTTP/1.1 09:41:23.539899 Are-we-friendly question received 09:41:23.540093 Wrote request (93 bytes) input to log/40/server.input 09:41:23.540264 Identifying ourselves as friends 09:41:23.541018 Response sent (56 bytes) and written to log/40/server.response 09:41:23.541110 special request received, no persistency 09:41:23.541181 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd Testnum 1228 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file valgrind1228 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1228 test 1242...[TFTP retrieve without TFTP options requests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1242 ../src/curl -q --output log/34/curl1242.out --include --trace-ascii log/34/trace1242 --trace-config all --trace-time tftp://127.0.0.1:35651//1242 --tftp-no-options > log/34/stdout1242 2> log/34/stderr1242 1242: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 1242 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1242 ../src/curl -q --output log/34/curl1242.out --include --trace-ascii log/34/trace1242 --trace-config all --trace-time tftp://127.0.0.1:35651//1242 --tftp-no-options > log/34/stdout1242 2> log/34/stderr1242 === End of file commands.log === Start of file server.cmd Testnum 1242 === End of file server.cmd === Start of file tftp_server.log 09:41:23.970666 trying to get file: verifiedserver mode 1 09:41:23.970938 Are-we-friendly question received 09:41:23.971022 write 09:41:23.971189 read 09:41:23.974560 read: 4 09:41:23.974885 end of one transfer === End of file tftp_server.log === Start of file valgrind1242 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1242 test 1221...[--url-query with --data-urlencode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1221 ../src/curl -q --output log/47/curl1221.out --include --trace-ascii log/47/trace1221 --trace-config all --trace-time http://127.0.0.1:41103/1221 --url-query "my name is moo[]" --url-query "yes=s i r" --url-query "v_alue@log/47/1221.txt" --url-query @log/47/1221.txt --url-query "+%3d%3d" --data-urlencode "start=once upon the time" > log/47/stdout1221 2> log/47/stderr1221 1221: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1221 === Start of file 1221.txt content to _?!#$'|<> === End of file 1221.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1221 ../src/curl -q --output log/47/curl1221.out --include --trace-ascii log/47/trace1221 --trace-config all --trace-time http://127.0.0.1:41103/1221 --url-query "my name is moo[]" --url-query "yes=s i r" --url-query "v_alue@log/47/1221.txt" --url-query @log/47/1221.txt --url-query "+%3d%3d" --data-urlencode "start=once upon the time" > log/47/stdout1221 2> log/47/stderr1221 === End of file commands.log === Start of file http_server.log 09:41:23.420814 ====> Client connect 09:41:23.421068 accept_connection 3 returned 4 09:41:23.421204 accept_connection 3 returned 0 09:41:23.421898 Read 93 bytes 09:41:23.422006 Process 93 bytes request 09:41:23.422081 Got request: GET /verifiedserver HTTP/1.1 09:41:23.422147 Are-we-friendly question received 09:41:23.422352 Wrote request (93 bytes) input to log/47/server.input 09:41:23.422660 Identifying ourselves as friends 09:41:23.423290 Response sent (56 bytes) and written to log/47/server.response 09:41:23.423385 special request received, no persistency 09:41:23.423442 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-LengthCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1225 ../src/curl -q --output log/6/curl1225.out --include --trace-ascii log/6/trace1225 --trace-config all --trace-time ftp://127.0.0.1:34161//foo/1225 ftp://127.0.0.1:34161//foo/bar/1225 > log/6/stdout1225 2> log/6/stderr1225 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1216 ../src/curl -q --output log/50/curl1216.out --include --trace-ascii log/50/trace1216 --trace-config all --trace-time http://example.fake/c/1216 http://bexample.fake/c/1216 -b log/50/injar1216 -x 127.0.0.1:45651 > log/50/stdout1216 2> log/50/stderr1216 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1224 ../src/curl -q --output log/13/curl1224.out --include --trace-ascii log/13/trace1224 --trace-config all --trace-time ftp://127.0.0.1:34087//1224 > log/13/stdout1224 2> log/13/stderr1224 : 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 1221 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind1221 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1221 test 1226...[FTP fetch a file from the root directory with singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1226 ../src/curl -q --output log/44/curl1226.out --include --trace-ascii log/44/trace1226 --trace-config all --trace-time ftp://127.0.0.1:41125//1226 --ftp-method singlecwd > log/44/stdout1226 2> log/44/stderr1226 1226: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 1226 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1226 ../src/curl -q --output log/44/curl1226.out --include --trace-ascii log/44/trace1226 --trace-config all --trace-time ftp://127.0.0.1:41125//1226 --ftp-method singlecwd > log/44/stdout1226 2> log/44/stderr1226 === End of file commands.log === Start of file ftp_server.log 09:41:23.245960 ====> Client connect 09:41:23.248877 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.249725 < "USER anonymous" 09:41:23.251033 > "331 We are happy you popped in![CR][LF]" 09:41:23.252407 < "PASS ftp@example.com" 09:41:23.253562 > "230 Welcome you silly person[CR][LF]" 09:41:23.254613 < "PWD" 09:41:23.255292 > "257 "/" is current directory[CR][LF]" 09:41:23.257914 < "EPSV" 09:41:23.258183 ====> Passive DATA channel requested by client 09:41:23.258345 DATA sockfilt for passive data channel starting... 09:41:23.272831 DATA sockfilt for passive data channel started (pid 135781) 09:41:23.273811 DATA sockfilt for passive data channel listens on port 43039 09:41:23.275025 > "229 Entering Passive Mode (|||43039|)[LF]" 09:41:23.275302 Client has been notified that DATA conn will be accepted on port 43039 09:41:23.277077 Client connects to port 43039 09:41:23.277343 ====> Client established passive DATA connection on port 43039 09:41:23.278047 < "TYPE I" 09:41:23.278391 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.280310 < "SIZE verifiedserver" 09:41:23.282022 > "213 17[CR][LF]" 09:41:23.282616 < "RETR verifiedserver" 09:41:23.283058 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:23.284611 =====> Closing passive DATA connection... 09:41:23.284908 Server disconnects passive DATA connection 09:41:23.286732 Server disconnected passive DATA connection 09:41:23.287079 DATA sockfilt for passive data channel quits (pid 135781) 09:41:23.288694 DATA sockfilt for passive data channel quit (pid 135781) 09:41:23.288983 =====> Closed passive DATA connection 09:41:23.289858 > "226 File transfer complete[CR][LF]" 09:41:23.336358 < "QUIT" 09:41:23.336833 > "221 bye bye baby[CR][LF]" 09:41:23.339543 MAIN sockfilt said DISC 09:41:23.340693 ====> Client disconnected 09:41:23.341260 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:23.498721 ====> Client connect 09:41:23.501001 Received DATA (on stdin) 09:41:23.501148 > 160 bytes data, server => client 09:41:23.501317 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:23.501423 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:23.501586 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:23.502180 < 16 bytes data, client => server 09:41:23.502300 'USER anonymous\r\n' 09:41:23.503926 Received DATA (on stdin) 09:41:23.504062 > 33 bytes data, server => client 09:41:23.504242 '331 We are happy you popped in!\r\n' 09:41:23.505358 < 22 bytes data, client => server 09:41:23.505568 'PASS ftp@example.com\r\n' 09:41:23.506450 Received DATA (on stdin) 09:41:23.506647 > 30 bytes data, server => client 09:41:23.506799 '230 Welcome you silly person\r\n' 09:41:23.507716 < 5 bytes data, client => server 09:41:23.507830 'PWD\r\n' 09:41:23.508723 Received DATA (on stdin) 09:41:23.508849 > 30 bytes data, server => client 09:41:23.509262 '257 "/" is current directory\r\n' 09:41:23.509931 < 6 bytes data, client => server 09:41:23.514671 'EPSV\r\n' 09:41:23.527943 Received DATA (on stdin) 09:41:23.528091 > 38 bytes data, server => client 09:41:23.528249 '229 Entering Passive Mode (|||43039|)\n' 09:41:23.530091 < 8 bytes data, client => server 09:41:23.530223 'TYPE I\r\n' 09:41:23.532399 Received DATA (on stdin) 09:41:23.532610 > 33 bytes data, server => client 09:41:23.532696 '200 I modify TYPE as you wanted\r\n' 09:41:23.533189 < 21 bytes data, client => server 09:41:23.533313 'SIZE verifiedserver\r\n' 09:41:23.534398 Received DATA (on stdin) 09:41:23.534617 > 8 bytes data, server => client 09:41:23.534786 '213 17\r\n' 09:41:23.535341 < 21 bytes data, client => server 09:41:23.535544 'RETR verifiedserver\r\n' 09:41:23.537072 Received DATA (on stdin) 09:41:23.537189 > 29 bytes data, server => client 09:41:23.537262 '150 Binary junk (17 bytes).\r\n' 09:41:23.542952 Received DATA (on stdin) 09:41:23.543064 > 28 bytes data, server => client 09:41:23.543294 '226 File transfer complete\r\n' 09:41:23.586642 < 6 bytes data, client => server 09:41:23.586797 'QUIT\r\n' 09:41:23.590648 Received DATA (on stdin) 09:41:23.590800 > 18 bytes data, server => client 09:41:23.590894 '221 bye bye baby\r\n' 09:41:23.592812 ====> Client disconnect 09:41:23.593861 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.524656 Running IPv4 version 09:41:23.525090 Listening on port 43039 09:41:23.525409 Wrote pid 135781 to log/44/server/ftp_sockdata.pid 09:41:23.526217 Received PING (on stdin) 09:41:23.526934 Received PORT (on stdin) 09:41:23.530398 ====> Client connect 09:41:23.537755 Received DATA (on stdin) 09:41:23.537887 > 17 bytes data, server => client 09:41:23.538935 'WE ROOLZ: 77468\r\n' 09:41:23.539277 Received DISC (on stdin) 09:41:23.539424 ====> Client forcibly disconnected 09:41:23.541054 Received QUIT (on stdin) 09:41:23.541169 quits 09:41:23.541576 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1218 ../src/curl -q --output log/4/curl1218.out --include --trace-ascii log/4/trace1218 --trace-config all --trace-time http://example.fake/c/1218 http://example.fake/c/1218 http://bexample.fake/c/1218 -b nonexisting -x 127.0.0.1:43013 > log/4/stdout1218 2> log/4/stderr1218 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1215 ../src/curl -q --output log/51/curl1215.out --include --trace-ascii log/51/trace1215 --trace-config all --trace-time http://127.0.0.1:34903/1215 -u testuser:testpass --ntlm --proxy http://127.0.0.1:34903 > log/51/stdout1215 2> log/51/stderr1215 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1232 ../src/curl -q --output log/32/curl1232.out --include --trace-ascii log/32/trace1232 --trace-config all --trace-time --proxy http://127.0.0.1:45607 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../1232?stupid=me/../1232#soo/../1232 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../12320001#/../12320001 > log/32/stdout1232 2> log/32/stderr1232 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1233 ../src/curl -q --output log/28/curl1233.out --include --trace-ascii log/28/trace1233 --trace-config all --trace-time ftp://127.0.0.1:34373/1233 > log/28/stdout1233 2> log/28/stderr1233 server.cmd Testnum 1226 === End of file server.cmd === Start of file valgrind1226 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1226 test 1225...[FTP fetch two files using absolute paths] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1225 ../src/curl -q --output log/6/curl1225.out --include --trace-ascii log/6/trace1225 --trace-config all --trace-time ftp://127.0.0.1:34161//foo/1225 ftp://127.0.0.1:34161//foo/bar/1225 > log/6/stdout1225 2> log/6/stderr1225 1225: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1225 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1225 ../src/curl -q --output log/6/curl1225.out --include --trace-ascii log/6/trace1225 --trace-config all --trace-time ftp://127.0.0.1:34161//foo/1225 ftp://127.0.0.1:34161//foo/bar/1225 > log/6/stdout1225 2> log/6/stderr1225 === End of file commands.log === Start of file ftp_server.log 09:41:23.245883 ====> Client connect 09:41:23.250229 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.252652 < "USER anonymous" 09:41:23.253063 > "331 We are happy you popped in![CR][LF]" 09:41:23.257646 < "PASS ftp@example.com" 09:41:23.259361 > "230 Welcome you silly person[CR][LF]" 09:41:23.260148 < "PWD" 09:41:23.263447 > "257 "/" is current directory[CR][LF]" 09:41:23.267252 < "EPSV" 09:41:23.267498 ====> Passive DATA channel requested by client 09:41:23.267648 DATA sockfilt for passive data channel starting... 09:41:23.280108 DATA sockfilt for passive data channel started (pid 135785) 09:41:23.283486 DATA sockfilt for passive data channel listens on port 38419 09:41:23.284046 > "229 Entering Passive Mode (|||38419|)[LF]" 09:41:23.284332 Client has been notified that DATA conn will be accepted on port 38419 09:41:23.289908 Client connects to port 38419 09:41:23.290298 ====> Client established passive DATA connection on port 38419 09:41:23.292054 < "TYPE I" 09:41:23.293634 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.294701 < "SIZE verifiedserver" 09:41:23.299957 > "213 17[CR][LF]" 09:41:23.302705 < "RETR verifiedserver" 09:41:23.305172 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:23.309388 =====> Closing passive DATA connection... 09:41:23.309726 Server disconnects passive DATA connection 09:41:23.314052 Fancy that; client wants to DISC, too 09:41:23.314493 Server disconnected passive DATA connection 09:41:23.314834 DATA sockfilt for passive data channel quits (pid 135785) 09:41:23.321297 DATA sockfilt for passive data channel quit (pid 135785) 09:41:23.321623 =====> Closed passive DATA connection 09:41:23.322145 > "226 File transfer complete[CR][LF]" 09:41:23.354860 < "QUIT" 09:41:23.357023 > "221 bye bye baby[CR][LF]" 09:41:23.357357 MAIN sockfilt said DISC 09:41:23.358292 ====> Client disconnected 09:41:23.359073 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:23.498733 ====> Client connect 09:41:23.504319 Received DATA (on stdin) 09:41:23.504443 > 160 bytes data, server => client 09:41:23.504730 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:23.504823 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:23.504903 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:23.507046 < 16 bytes data, client => server 09:41:23.507159 'USER anonymous\r\n' 09:41:23.507245 Received DATA (on stdin) 09:41:23.507314 > 33 bytes data, server => client 09:41:23.507384 '331 We are happy you popped in!\r\n' 09:41:23.510619 < 22 bytes data, client => server 09:41:23.510770 'PASS ftp@example.com\r\n' 09:41:23.511793 Received DATA (on stdin) 09:41:23.511921 > 30 bytes data, server => client 09:41:23.512074 '230 Welcome you silly person\r\n' 09:41:23.512744 < 5 bytes data, client => server 09:41:23.512876 'PWD\r\n' 09:41:23.515668 Received DATA (on stdin) 09:41:23.515823 > 30 bytes data, server => client 09:41:23.516026 '257 "/" is current directory\r\n' 09:41:23.516816 < 6 bytes data, client => server 09:41:23.516957 'EPSV\r\n' 09:41:23.538375 Received DATA (on stdin) 09:41:23.538620 > 38 bytes data, server => client 09:41:23.538732 '229 Entering Passive Mode (|||38419|)\n' 09:41:23.544635 < 8 bytes data, client => server 09:41:23.544777 'TYPE I\r\n' 09:41:23.546099 Received DATA (on stdin) 09:41:23.546227 > 33 bytes data, server => client 09:41:23.546377 '200 I modify TYPE as you wanted\r\n' 09:41:23.546946 < 21 bytes data, client => server 09:41:23.547087 'SIZE verifiedserver\r\n' 09:41:23.550568 Received DATA (on stdin) 09:41:23.550775 > 8 bytes data, server => client 09:41:23.554916 '213 17\r\n' 09:41:23.555606 < 21 bytes data, client => server 09:41:23.555745 'RETR verifiedserver\r\n' 09:41:23.556961 Received DATA (on stdin) 09:41:23.557102 > 29 bytes data, server => client 09:41:23.560205 '150 Binary junk (17 bytes).\r\n' 09:41:23.575826 Received DATA (on stdin) 09:41:23.575980 > 28 bytes data, server => client 09:41:23.576054 '226 File transfer complete\r\n' 09:41:23.607794 < 6 bytes data, client => server 09:41:23.608104 'QUIT\r\n' 09:41:23.609206 Received DATA (on stdin) 09:41:23.609658 > 18 bytes data, server => client 09:41:23.610027 '221 bye bye baby\r\n' 09:41:23.610878 ====> Client disconnect 09:41:23.611376 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.532086 Running IPv4 version 09:41:23.532801 Listening on port 38419 09:41:23.533160 Wrote pid 135785 to log/6/server/ftp_sockdata.pid 09:41:23.533326 Received PING (on stdin) 09:41:23.536577 Received PORT (on stdin) 09:41:23.539763 ====> Client connect 09:41:23.559776 Received DATA (on stdin) 09:41:23.559939 > 17 bytes data, server => client 09:41:23.561510 'WE ROOLZ: 79493\r\n' 09:41:23.566067 ====> Client disconnect 09:41:23.566810 Received DISC (on stdin) 09:41:23.566987 Crikey! Client also wants to disconnect 09:41:23.568188 Received ACKD (on stdin) 09:41:23.569402 Received QUIT (on stdin) 09:41:23.569613 quits 09:41:23.570013 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1225 === End of file server.cmd === Start of file valgrind1225 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1225 test 1224...[FTP fetch a file from the root directory] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1224 ../src/curl -q --output log/13/curl1224.out --include --trace-ascii log/13/trace1224 --trace-config all --trace-time ftp://127.0.0.1:34087//1224 > log/13/stdout1224 2> log/13/stderr1224 1224: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 1224 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1224 ../src/curl -q --output log/13/curl1224.out --include --trace-ascii log/13/trace1224 --trace-config all --trace-time ftp://127.0.0.1:34087//1224 > log/13/stdout1224 2> log/13/stderr1224 === End of file commands.log === Start of file ftp_server.log 09:41:23.237493 ====> Client connect 09:41:23.243102 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.246498 < "USER anonymous" 09:41:23.246972 > "331 We are happy you popped in![CR][LF]" 09:41:23.252143 < "PASS ftp@example.com" 09:41:23.252539 > "230 Welcome you silly person[CR][LF]" 09:41:23.255551 < "PWD" 09:41:23.256034 > "257 "/" is current directory[CR][LF]" 09:41:23.259715 < "EPSV" 09:41:23.260116 ====> Passive DATA channel requested by client 09:41:23.260328 DATA sockfilt for passive data channel starting... 09:41:23.287544 DATA sockfilt for passive data channel started (pid 135782) 09:41:23.288529 DATA sockfilt for passive data channel listens on port 44505 09:41:23.289071 > "229 Entering Passive Mode (|||44505|)[LF]" 09:41:23.289314 Client has been notified that DATA conn will be accepted on port 44505 09:41:23.292257 Client connects to port 44505 09:41:23.292581 ====> Client established passive DATA connection on port 44505 09:41:23.293510 < "TYPE I" 09:41:23.294013 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.297632 < "SIZE verifiedserver" 09:41:23.298662 > "213 17[CR][LF]" 09:41:23.302055 < "RETR verifiedserver" 09:41:23.303458 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:23.304468 =====> Closing passive DATA connection... 09:41:23.306904 Server disconnects passive DATA connection 09:41:23.308072 Fancy that; client wants to DISC, too 09:41:23.308626 Server disconnected passive DATA connection 09:41:23.309043 DATA sockfilt for passive data channel quits (pid 135782) 09:41:23.312051 DATA sockfilt for passive data channel quit (pid 135782) 09:41:23.312324 =====> Closed passive DATA connection 09:41:23.313368 > "226 File transfer complete[CR][LF]" 09:41:23.351589 < "QUIT" 09:41:23.352084 > "221 bye bye baby[CR][LF]" 09:41:23.367043 MAIN sockfilt said DISC 09:41:23.371865 ====> Client disconnected 09:41:23.372614 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:22.490628 ====> Client connect 09:41:22.497260 Received DATA (on stdin) 09:41:22.497806 > 160 bytes data, server => client 09:41:22.498010 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:22.498107 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:22.498197 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:22.499063 < 16 bytes data, client => server 09:41:22.499224 'USER anonymous\r\n' 09:41:22.501158 Received DATA (on stdin) 09:41:22.501303 > 33 bytes data, server => client 09:41:22.501386 '331 We are happy you popped in!\r\n' 09:41:22.504973 < 22 bytes data, client => server 09:41:22.505128 'PASS ftp@example.com\r\n' 09:41:22.507576 Received DATA (on stdin) 09:41:22.507742 > 30 bytes data, server => client 09:41:22.507833 '230 Welcome you silly person\r\n' 09:41:22.508518 < 5 bytes data, client => server 09:41:22.508659 'PWD\r\n' 09:41:22.511572 Received DATA (on stdin) 09:41:22.511727 > 30 bytes data, server => client 09:41:22.511834 '257 "/" is current directory\r\n' 09:41:22.512653 < 6 bytes data, client => server 09:41:22.512800 'EPSV\r\n' 09:41:22.542750 Received DATA (on stdin) 09:41:22.542932 > 38 bytes data, server => client 09:41:22.543044 '229 Entering Passive Mode (|||44505|)\n' 09:41:22.545324 < 8 bytes data, client => server 09:41:22.545739 'TYPE I\r\n' 09:41:22.548308 Received DATA (on stdin) 09:41:22.548573 > 33 bytes data, server => client 09:41:22.548766 '200 I modify TYPE as you wanted\r\n' 09:41:22.549849 < 21 bytes data, client => server 09:41:22.550010 'SIZE verifiedserver\r\n' 09:41:22.553248 Received DATA (on stdin) 09:41:22.553617 > 8 bytes data, server => client 09:41:22.553714 '213 17\r\n' 09:41:22.554796 < 21 bytes data, client => server 09:41:22.554999 'RETR verifiedserver\r\n' 09:41:22.556170 Received DATA (on stdin) 09:41:22.556315 > 29 bytes data, server => client 09:41:22.556561 '150 Binary junk (17 bytes).\r\n' 09:41:22.566370 Received DATA (on stdin) 09:41:22.566608 > 28 bytes data, server => client 09:41:22.566802 '226 File transfer complete\r\n' 09:41:22.603764 < 6 bytes data, client => server 09:41:22.604112 'QUIT\r\n' 09:41:22.613600 Received DATA (on stdin) 09:41:22.613890 > 18 bytes data, server => client 09:41:22.614032 '221 bye bye baby\r\n' 09:41:22.620225 ====> Client disconnect 09:41:22.621253 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.539606 Running IPv4 version 09:41:23.540120 Listening on port 44505 09:41:23.540431 Wrote pid 135782 to log/13/server/ftp_sockdata.pid 09:41:23.540973 Received PING (on stdin) 09:41:23.541734 Received PORT (on stdin) 09:41:23.544675 ====> Client connect 09:41:23.558710 Received DATA (on stdin) 09:41:23.558888 > 17 bytes data, server => client 09:41:23.558977 'WE ROOLZ: 79551\r\n' 09:41:23.559995 ====> Client disconnect 09:41:23.561347 Received DISC (on stdin) 09:41:23.561568 Crikey! Client also wants to disconnect 09:41:23.563212 Received ACKD (on stdin) 09:41:23.563775 Received QUIT (on stdin) 09:41:23.563985 quits 09:41:23.564543 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1224 === End of file server.cmd === Start of file valgrind1224 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matchiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1264 ../src/curl -q --output log/46/curl1264.out --include --trace-ascii log/46/trace1264 --trace-config all --trace-time -g "http://127.0.0.1 www.example.com/we/want/1264" > log/46/stdout1264 2> log/46/stderr1264 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1229 ../src/curl -q --output log/38/curl1229.out --include --trace-ascii log/38/trace1229 --trace-config all --trace-time http://%5cuser%22:password@127.0.0.1:33511/1229 --digest > log/38/stdout1229 2> log/38/stderr1229 ng: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1224 test 1216...[HTTP cookie domains tailmatching the host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1216 ../src/curl -q --output log/50/curl1216.out --include --trace-ascii log/50/trace1216 --trace-config all --trace-time http://example.fake/c/1216 http://bexample.fake/c/1216 -b log/50/injar1216 -x 127.0.0.1:45651 > log/50/stdout1216 2> log/50/stderr1216 1216: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 1216 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1216 ../src/curl -q --output log/50/curl1216.out --include --trace-ascii log/50/trace1216 --trace-config all --trace-time http://example.fake/c/1216 http://bexample.fake/c/1216 -b log/50/injar1216 -x 127.0.0.1:45651 > log/50/stdout1216 2> log/50/stderr1216 === End of file commands.log === Start of file http_server.log 09:41:23.432287 ====> Client connect 09:41:23.432695 accept_connection 3 returned 4 09:41:23.432843 accept_connection 3 returned 0 09:41:23.432949 Read 93 bytes 09:41:23.433025 Process 93 bytes request 09:41:23.433100 Got request: GET /verifiedserver HTTP/1.1 09:41:23.433161 Are-we-friendly question received 09:41:23.433347 Wrote request (93 bytes) input to log/50/server.input 09:41:23.433587 Identifying ourselves as friends 09:41:23.434211 Response sent (56 bytes) and written to log/50/server.response 09:41:23.434319 special request received, no persistency 09:41:23.434379 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file injar1216 example.fake FALSE /a FALSE 22139150993 mooo indeed example.fake FALSE /b FALSE 0 moo1 indeed example.fake FALSE /c FALSE 22139150993 moo2 indeed example.fake TRUE /c FALSE 22139150993 moo3 indeed === End of file injar1216 === Start of file server.cmd Testnum 1216 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind1216 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1216 test 1218...[HTTP cookies and domains with same prefix] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1218 ../src/curl -q --output log/4/curl1218.out --include --trace-ascii log/4/trace1218 --trace-config all --trace-time http://example.fake/c/1218 http://example.fake/c/1218 http://bexample.fake/c/1218 -b nonexisting -x 127.0.0.1:43013 > log/4/stdout1218 2> log/4/stderr1218 1218: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1218 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1218 ../src/curl -q --output log/4/curl1218.out --include --trace-ascii log/4/trace1218 --trace-config all --trace-time http://example.fake/c/1218 http://example.fake/c/1218 http://bexample.fake/c/1218 -b nonexisting -x 127.0.0.1:43013 > log/4/stdout1218 2> log/4/stderr1218 === End of file commands.log === Start of file http_server.log 09:41:23.462240 ====> Client connect 09:41:23.462679 accept_connection 3 returned 4 09:41:23.462888 accept_connection 3 returned 0 09:41:23.463054 Read 93 bytes 09:41:23.463186 Process 93 bytes request 09:41:23.463302 Got request: GET /verifiedserver HTTP/1.1 09:41:23.463413 Are-we-friendly question received 09:41:23.463739 Wrote request (93 bytes) input to log/4/server.input 09:41:23.463921 Identifying ourselves as friends 09:41:23.464751 Response sent (56 bytes) and written to log/4/server.response 09:41:23.464861 special request received, no persistency 09:41:23.464935 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 1218 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind1218 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1218 test 1233...[FTP failing to connect to EPSV port, switching to PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1233 ../src/curl -q --output log/28/curl1233.out --include --trace-ascii log/28/trace1233 --trace-config all --trace-time ftp://127.0.0.1:34373/1233 > log/28/stdout1233 2> log/28/stderr1233 1233: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 1233 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1233 ../src/curl -q --output log/28/curl1233.out --include --trace-ascii log/28/trace1233 --trace-config all --trace-time ftp://127.0.0.1:34373/1233 > log/28/stdout1233 2> log/28/stderr1233 === End of file commands.log === Start of file ftp_server.log 09:41:23.392997 ====> Client connect 09:41:23.395473 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.402081 < "USER anonymous" 09:41:23.403947 > "331 We are happy you popped in![CR][LF]" 09:41:23.409380 < "PASS ftp@example.com" 09:41:23.409904 > "230 Welcome you silly person[CR][LF]" 09:41:23.414501 < "PWD" 09:41:23.415067 > "257 "/" is current directory[CR][LF]" 09:41:23.418967 < "EPSV" 09:41:23.419363 ====> Passive DATA channel requested by client 09:41:23.419598 DATA sockfilt for passive data channel starting... 09:41:23.453405 DATA sockfilt for passive data channel started (pid 135968) 09:41:23.454367 DATA sockfilt for passive data channel listens on port 37783 09:41:23.456613 > "229 Entering Passive Mode (|||37783|)[LF]" 09:41:23.457017 Client has been notified that DATA conn will be accepted on port 37783 09:41:23.458024 Client connects to port 37783 09:41:23.458307 ====> Client established passive DATA connection on port 37783 09:41:23.460212 < "TYPE I" 09:41:23.460587 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.464311 < "SIZE verifiedserver" 09:41:23.465073 > "213 17[CR][LF]" 09:41:23.467703 < "RETR verifiedserver" 09:41:23.469321 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:23.475002 =====> Closing passive DATA connection... 09:41:23.475316 Server disconnects passive DATA connection 09:41:23.481638 Server disconnected passive DATA connection 09:41:23.482046 DATA sockfilt for passive data channel quits (pid 135968) 09:41:23.487127 DATA sockfilt for passive data channel quit (pid 135968) 09:41:23.487374 =====> Closed passive DATA connection 09:41:23.487671 > "226 File transfer complete[CR][LF]" 09:41:23.512936 < "QUIT" 09:41:23.513402 > "221 bye bye baby[CR][LF]" 09:41:23.515031 MAIN sockfilt said DISC 09:41:23.515369 ====> Client disconnected 09:41:23.515984 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:22.643095 ====> Client connect 09:41:22.648870 Received DATA (on stdin) 09:41:22.649261 > 160 bytes data, server => client 09:41:22.649364 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:22.649571 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:22.649673 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:22.650779 < 16 bytes data, client => server 09:41:22.650948 'USER anonymous\r\n' 09:41:22.658025 Received DATA (on stdin) 09:41:22.658196 > 33 bytes data, server => client 09:41:22.658297 '331 We are happy you popped in!\r\n' 09:41:22.662324 < 22 bytes data, client => server 09:41:22.662577 'PASS ftp@example.com\r\n' 09:41:22.666577 Received DATA (on stdin) 09:41:22.666756 > 30 bytes data, server => client 09:41:22.666866 '230 Welcome you silly person\r\n' 09:41:22.667677 < 5 bytes data, client => server 09:41:22.667840 'PWD\r\n' 09:41:22.668803 Received DATA (on stdin) 09:41:22.668973 > 30 bytes data, server => client 09:41:22.669074 '257 "/" is current directory\r\n' 09:41:22.671655 < 6 bytes data, client => server 09:41:22.671815 'EPSV\r\n' 09:41:22.708565 Received DATA (on stdin) 09:41:22.708724 > 38 bytes data, server => client 09:41:22.708902 '229 Entering Passive Mode (|||37783|)\n' 09:41:22.711067 < 8 bytes data, client => server 09:41:22.711198 'TYPE I\r\n' 09:41:22.715065 Received DATA (on stdin) 09:41:22.715214 > 33 bytes data, server => client 09:41:22.715304 '200 I modify TYPE as you wanted\r\n' 09:41:22.716970 < 21 bytes data, client => server 09:41:22.717123 'SIZE verifiedserver\r\n' 09:41:22.719648 Received DATA (on stdin) 09:41:22.719785 > 8 bytes data, server => client 09:41:22.719861 '213 17\r\n' 09:41:22.720519 < 21 bytes data, client => server 09:41:22.720664 'RETR verifiedserver\r\n' 09:41:22.722629 Received DATA (on stdin) 09:41:22.722842 > 29 bytes data, server => client 09:41:22.723578 '150 Binary junk (17 bytes).\r\n' 09:41:22.746047 Received DATA (on stdin) 09:41:22.746188 > 28 bytes data, server => client 09:41:22.746275 '226 File transfer complete\r\n' 09:41:22.765622 < 6 bytes data, client => server 09:41:22.765813 'QUIT\r\n' 09:41:22.767601 Received DATA (on stdin) 09:41:22.767755 > 18 bytes data, server => client 09:41:22.767854 '221 bye bye baby\r\n' 09:41:22.768383 ====> Client disconnect 09:41:22.771555 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.705642 Running IPv4 version 09:41:23.706234 Listening on port 37783 09:41:23.706696 Wrote pid 135968 to log/28/server/ftp_sockdata.pid 09:41:23.706852 Received PING (on stdin) 09:41:23.707574 Received PORT (on stdin) 09:41:23.711412 ====> Client connect 09:41:23.730284 Received DATA (on stdin) 09:41:23.730688 > 17 bytes data, server => client 09:41:23.731112 'WE ROOLZ: 77437\r\n' 09:41:23.731674 Received DISC (on stdin) 09:41:23.731932 ====> Client forcibly disconnected 09:41:23.738569 Received QUIT (on stdin) 09:41:23.738727 quits 09:41:23.739106 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd # Assuming there's nothing listening on port 1 REPLY EPSV 229 Entering Passiv Mode (|||1|) Testnum 1233 === End of file server.cmd === Start of file valgrind1233 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short terCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1240 ../src/curl -q --output log/33/curl1240.out --include --trace-ascii log/33/trace1240 --trace-config all --trace-time "127.0.0.1:36559/0[0-1]/1240" > log/33/stdout1240 2> log/33/stderr1240 m): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1233 test 1232...[HTTP URL with dotdot removal from path using an HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1232 ../src/curl -q --output log/32/curl1232.out --include --trace-ascii log/32/trace1232 --trace-config all --trace-time --proxy http://127.0.0.1:45607 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../1232?stupid=me/../1232#soo/../1232 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../12320001#/../12320001 > log/32/stdout1232 2> log/32/stderr1232 1232: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 1232 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1232 ../src/curl -q --output log/32/curl1232.out --include --trace-ascii log/32/trace1232 --trace-config all --trace-time --proxy http://127.0.0.1:45607 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../1232?stupid=me/../1232#soo/../1232 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../12320001#/../12320001 > log/32/stdout1232 2> log/32/stderr1232 === End of file commands.log === Start of file http_server.log 09:41:23.695100 ====> Client connect 09:41:23.695351 accept_connection 3 returned 4 09:41:23.695602 accept_connection 3 returned 0 09:41:23.696134 Read 93 bytes 09:41:23.696271 Process 93 bytes request 09:41:23.696345 Got request: GET /verifiedserver HTTP/1.1 09:41:23.696411 Are-we-friendly question received 09:41:23.696681 Wrote request (93 bytes) input to log/32/server.input 09:41:23.696836 Identifying ourselves as friends 09:41:23.697284 Response sent (56 bytes) and written to log/32/server.response 09:41:23.697373 special request received, no persistency 09:41:23.697426 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 1232 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind1232 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1232 * starts no server test 1264...[HTTP URL with space in host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1264 ../src/curl -q --output log/46/curl1264.out --include --trace-ascii log/46/trace1264 --trace-config all --trace-time -g "http://127.0.0.1 www.example.com/we/want/1264" > log/46/stdout1264 2> log/46/stderr1264 curl returned 1, when expecting 3 1264: exit FAILED == Contents of files in the log/46/ dir after test 1264 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1264 ../src/curl -q --output log/46/curl1264.out --include --trace-ascii log/46/trace1264 --trace-config all --trace-time -g "http://127.0.0.1 www.example.com/we/want/1264" > log/46/stdout1264 2> log/46/stderr1264 === End of file commands.log === Start of file server.cmd Testnum 1264 === End of file server.cmd === Start of file valgrind1264 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1264 test 1215...[HTTP with server NTLM authorization using a proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1215 ../src/curl -q --output log/51/curl1215.out --include --trace-ascii log/51/trace1215 --trace-config all --trace-time http://127.0.0.1:34903/1215 -u testuser:testpass --ntlm --proxy http://127.0.0.1:34903 > log/51/stdout1215 2> log/51/stderr1215 1215: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 1215 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1215 ../src/curl -q --output log/51/curl1215.out --include --trace-ascii log/51/trace1215 --trace-config all --trace-time http://127.0.0.1:34903/1215 -u testuser:testpass --ntlm --proxy http://127.0.0.1:34903 > log/51/stdout1215 2> log/51/stderr1215 === End of file commands.log === Start of file http_server.log 09:41:23.311189 ====> Client connect 09:41:23.311837 accept_connection 3 returned 4 09:41:23.312152 accept_connection 3 returned 0 09:41:23.313364 Read 93 bytes 09:41:23.313594 Process 93 bytes request 09:41:23.313706 Got request: GET /verifiedserver HTTP/1.1 09:41:23.313800 Are-we-friendly question received 09:41:23.314047 Wrote request (93 bytes) input to log/51/server.input 09:41:23.314279 Identifying ourselves as friends 09:41:23.318738 Response sent (56 bytes) and written to log/51/server.response 09:41:23.318875 special request received, no persistency 09:41:23.318960 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 1215 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind1215 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1215 test 1240...[glob [0-1] with stuff after range (7.33.0 regression)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1240 ../src/curl -q --output log/33/curl1240.out --include --trace-ascii log/33/trace1240 --trace-config all --trace-time "127.0.0.1:36559/0[0-1]/1240" > log/33/stdout1240 2> log/33/stderr1240 1240: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 1240 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1240 ../src/curl -q --output log/33/curl1240.out --include --trace-ascii log/33/trace1240 --trace-config all --trace-time "127.0.0.1:36559/0[0-1]/1240" > log/33/stdout1240 2> log/33/stderr1240 === End of file commands.log === Start of file http_server.log 09:41:23.780910 ====> Client connect 09:41:23.781264 accept_connection 3 returned 4 09:41:23.781451 accept_connection 3 returned 0 09:41:23.782772 Read 93 bytes 09:41:23.782858 Process 93 bytes request 09:41:23.782940 Got request: GET /verifiedserver HTTP/1.1 09:41:23.783024 Are-we-friendly question received 09:41:23.783245 Wrote request (93 bytes) input to log/33/server.input 09:41:23.783433 Identifying ourselves as friends 09:41:23.784229 Response sent (56 bytes) and written to log/33/server.response 09:41:23.784349 special request received, no persistency 09:41:23.784429 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 1240 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind1240 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1240 test 1229...[HTTP with Digest authorization with user name needing escape] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1229 ../src/curl -q --output log/38/curl1229.out --include --trace-ascii log/38/trace1229 --trace-config all --trace-time http://%5cuser%22:password@127.0.0.1:33511/1229 --digest > log/38/stdout1229 2> log/38/stderr1229 1229: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1229 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1247 ../src/curl -q --output log/7/curl1247.out --include --trace-ascii log/7/trace1247 --trace-config all --trace-time --fail-early h1234://127.0.0.1:44647/1247 http://127.0.0.1:44647/1247 > log/7/stdout1247 2> log/7/stderr1247 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1249 ../src/curl -q --output log/52/curl1249.out --include --trace-ascii log/52/trace1249 --trace-config all --trace-time http://user:secret@127.0.0.1:40089/1249 --proxy http://dummy:47/ --max-time 5 > log/52/stdout1249 2> log/52/stderr1249 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1256 ../src/curl -q --output log/53/curl1256.out --include --trace-ascii log/53/trace1256 --trace-config all --trace-time http://somewhere.example.com/1256 --noproxy 127.0.0.1 > log/53/stdout1256 2> log/53/stderr1256 38/valgrind1229 ../src/curl -q --output log/38/curl1229.out --include --trace-ascii log/38/trace1229 --trace-config all --trace-time http://%5cuser%22:password@127.0.0.1:33511/1229 --digest > log/38/stdout1229 2> log/38/stderr1229 === End of file commands.log === Start of file http_server.log 09:41:23.571691 ====> Client connect 09:41:23.571999 accept_connection 3 returned 4 09:41:23.572153 accept_connection 3 returned 0 09:41:23.572291 Read 93 bytes 09:41:23.572410 Process 93 bytes request 09:41:23.572583 Got request: GET /verifiedserver HTTP/1.1 09:41:23.572691 Are-we-friendly question received 09:41:23.572938 Wrote request (93 bytes) input to log/38/server.input 09:41:23.573145 Identifying ourselves as friends 09:41:23.574017 Response sent (56 bytes) and written to log/38/server.response 09:41:23.574156 special request received, no persistency 09:41:23.574238 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1229 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1229 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1229 test 1247...[--fail-early] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1247 ../src/curl -q --output log/7/curl1247.out --include --trace-ascii log/7/trace1247 --trace-config all --trace-time --fail-early h1234://127.0.0.1:44647/1247 http://127.0.0.1:44647/1247 > log/7/stdout1247 2> log/7/stderr1247 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/7/ dir after test 1247 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1247 ../src/curl -q --output log/7/curl1247.out --include --trace-ascii log/7/trace1247 --trace-config all --trace-time --fail-early h1234://127.0.0.1:44647/1247 http://127.0.0.1:44647/1247 > log/7/stdout1247 2> log/7/stderr1247 === End of file commands.log === Start of file http_server.log 09:41:23.904657 ====> Client connect 09:41:23.904971 accept_connection 3 returned 4 09:41:23.905133 accept_connection 3 returned 0 09:41:23.906059 Read 93 bytes 09:41:23.906192 Process 93 bytes request 09:41:23.906275 Got request: GET /verifiedserver HTTP/1.1 09:41:23.906349 Are-we-friendly question received 09:41:23.906657 Wrote request (93 bytes) input to log/7/server.input 09:41:23.906843 Identifying ourselves as friends 09:41:23.909060 Response sent (56 bytes) and written to log/7/server.response 09:41:23.909304 special request received, no persistency 09:41:23.909440 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 1247 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind1247 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1262 ../src/curl -q --output log/3/curl1262.out --include --trace-ascii log/3/trace1262 --trace-config all --trace-time ftp://127.0.0.1:42255/blalbla/1262 -z "-1 jan 2001" > log/3/stdout1262 2> log/3/stderr1262 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1239 ../src/curl -q --include --trace-ascii log/14/trace1239 --trace-config all --trace-time http://127.0.0.1:43309/1239 -z "-dec 12 12:00:00 1999 GMT" -w '%{response_code}' > log/14/stdout1239 2> log/14/stderr1239 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1250 ../src/curl -q --output log/43/curl1250.out --include --trace-ascii log/43/trace1250 --trace-config all --trace-time http://user:secret@127.0.0.1:41267/1250 --noproxy 127.0.0.1 --max-time 5 > log/43/stdout1250 2> log/43/stderr1250 Sorry. === End of file valgrind1247 setenv NO_PROXY = 127.0.0.1 test 1249...[Non-proxied plus --proxy option and NO_PROXY env var] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1249 ../src/curl -q --output log/52/curl1249.out --include --trace-ascii log/52/trace1249 --trace-config all --trace-time http://user:secret@127.0.0.1:40089/1249 --proxy http://dummy:47/ --max-time 5 > log/52/stdout1249 2> log/52/stderr1249 1249: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1249 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1249 ../src/curl -q --output log/52/curl1249.out --include --trace-ascii log/52/trace1249 --trace-config all --trace-time http://user:secret@127.0.0.1:40089/1249 --proxy http://dummy:47/ --max-time 5 > log/52/stdout1249 2> log/52/stderr1249 === End of file commands.log === Start of file http_server.log 09:41:24.142799 ====> Client connect 09:41:24.143137 accept_connection 3 returned 4 09:41:24.143562 accept_connection 3 returned 0 09:41:24.143759 Read 93 bytes 09:41:24.143851 Process 93 bytes request 09:41:24.143942 Got request: GET /verifiedserver HTTP/1.1 09:41:24.144032 Are-we-friendly question received 09:41:24.144276 Wrote request (93 bytes) input to log/52/server.input 09:41:24.144586 Identifying ourselves as friends 09:41:24.145394 Response sent (56 bytes) and written to log/52/server.response 09:41:24.145591 special request received, no persistency 09:41:24.145691 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 1249 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind1249 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1249 setenv http_proxy = http://127.0.0.1:34639 setenv NO_PROXY = example.com test 1256...[http_proxy, override NO_PROXY by --noproxy and target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1256 ../src/curl -q --output log/53/curl1256.out --include --trace-ascii log/53/trace1256 --trace-config all --trace-time http://somewhere.example.com/1256 --noproxy 127.0.0.1 > log/53/stdout1256 2> log/53/stderr1256 1256: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 1256 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1256 ../src/curl -q --output log/53/curl1256.out --include --trace-ascii log/53/trace1256 --trace-config all --trace-time http://somewhere.example.com/1256 --noproxy 127.0.0.1 > log/53/stdout1256 2> log/53/stderr1256 === End of file commands.log === Start of file http_server.log 09:41:24.048719 ====> Client connect 09:41:24.049153 accept_connection 3 returned 4 09:41:24.049309 accept_connection 3 returned 0 09:41:24.051327 Read 93 bytes 09:41:24.051667 Process 93 bytes request 09:41:24.051786 Got request: GET /verifiedserver HTTP/1.1 09:41:24.051867 Are-we-friendly question received 09:41:24.052111 Wrote request (93 bytes) input to log/53/server.input 09:41:24.052305 Identifying ourselves as friends 09:41:24.052941 Response sent (56 bytes) and written to log/53/server.response 09:41:24.053043 special request received, no persistency 09:41:24.053102 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 1256 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind1256 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1256 test 1262...[FTP request and denied to download an older file with -z] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1262 ../src/curl -q --output log/3/curl1262.out --include --trace-ascii log/3/trace1262 --trace-config all --trace-time ftp://127.0.0.1:42255/blalbla/1262 -z "-1 jan 2001" > log/3/stdout1262 2> log/3/stderr1262 1262: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1262 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1262 ../src/curl -q --output log/3/curl1262.out --include --trace-ascii log/3/trace1262 --trace-config all --trace-time ftp://127.0.0.1:42255/blalbla/1262 -z "-1 jan 2001" > log/3/stdout1262 2> log/3/stderr1262 === End of file commands.log === Start of file ftp_server.log 09:41:23.898693 ====> Client connect 09:41:23.900029 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:23.902656 < "USER anonymous" 09:41:23.903191 > "331 We are happy you popped in![CR][LF]" 09:41:23.905293 < "PASS ftp@example.com" 09:41:23.906657 > "230 Welcome you silly person[CR][LF]" 09:41:23.908284 < "PWD" 09:41:23.909656 > "257 "/" is current directory[CR][LF]" 09:41:23.911170 < "EPSV" 09:41:23.911425 ====> Passive DATA channel requested by client 09:41:23.911696 DATA sockfilt for passive data channel starting... 09:41:23.957957 DATA sockfilt for passive data channel started (pid 136926) 09:41:23.959078 DATA sockfilt for passive data channel listens on port 37713 09:41:23.959484 > "229 Entering Passive Mode (|||37713|)[LF]" 09:41:23.959810 Client has been notified that DATA conn will be accepted on port 37713 09:41:23.963598 Client connects to port 37713 09:41:23.963974 ====> Client established passive DATA connection on port 37713 09:41:23.964857 < "TYPE I" 09:41:23.965425 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:23.972368 < "SIZE verifiedserver" 09:41:23.972884 > "213 17[CR][LF]" 09:41:23.977874 < "RETR verifiedserver" 09:41:23.978309 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:23.979034 =====> Closing passive DATA connection... 09:41:23.979245 Server disconnects passive DATA connection 09:41:23.981876 Server disconnected passive DATA connection 09:41:23.982140 DATA sockfilt for passive data channel quits (pid 136926) 09:41:23.984071 DATA sockfilt for passive data channel quit (pid 136926) 09:41:23.984317 =====> Closed passive DATA connection 09:41:23.984646 > "226 File transfer complete[CR][LF]" 09:41:24.023548 < "QUIT" 09:41:24.024075 > "221 bye bye baby[CR][LF]" 09:41:24.026099 MAIN sockfilt said DISC 09:41:24.029529 ====> Client disconnected 09:41:24.030122 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:24.151901 ====> Client connect 09:41:24.154074 Received DATA (on stdin) 09:41:24.154204 > 160 bytes data, server => client 09:41:24.154287 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:24.154359 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:24.154430 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:24.155239 < 16 bytes data, client => server 09:41:24.155385 'USER anonymous\r\n' 09:41:24.157271 Received DATA (on stdin) 09:41:24.157425 > 33 bytes data, server => client 09:41:24.157606 '331 We are happy you popped in!\r\n' 09:41:24.158147 < 22 bytes data, client => server 09:41:24.158292 'PASS ftp@example.com\r\n' 09:41:24.159393 Received DATA (on stdin) 09:41:24.159727 > 30 bytes data, server => client 09:41:24.159972 '230 Welcome you silly person\r\n' 09:41:24.161323 < 5 bytes data, client => server 09:41:24.161550 'PWD\r\n' 09:41:24.162354 Received DATA (on stdin) 09:41:24.162603 > 30 bytes data, server => client 09:41:24.162868 '257 "/" is current directory\r\n' 09:41:24.164130 < 6 bytes data, client => server 09:41:24.164258 'EPSV\r\n' 09:41:24.213847 Received DATA (on stdin) 09:41:24.213977 > 38 bytes data, server => client 09:41:24.214066 '229 Entering Passive Mode (|||37713|)\n' 09:41:24.217004 < 8 bytes data, client => server 09:41:24.217119 'TYPE I\r\n' 09:41:24.222632 Received DATA (on stdin) 09:41:24.222843 > 33 bytes data, server => client 09:41:24.222924 '200 I modify TYPE as you wanted\r\n' 09:41:24.224565 < 21 bytes data, client => server 09:41:24.224885 'SIZE verifiedserver\r\n' 09:41:24.227110 Received DATA (on stdin) 09:41:24.227240 > 8 bytes data, server => client 09:41:24.227389 '213 17\r\n' 09:41:24.230778 < 21 bytes data, client => server 09:41:24.230923 'RETR verifiedserver\r\n' 09:41:24.233210 Received DATA (on stdin) 09:41:24.233350 > 29 bytes data, server => client 09:41:24.233439 '150 Binary junk (17 bytes).\r\n' 09:41:24.240576 Received DATA (on stdin) 09:41:24.240722 > 28 bytes data, server => client 09:41:24.240795 '226 File transfer complete\r\n' 09:41:24.276308 < 6 bytes data, client => server 09:41:24.276595 'QUIT\r\n' 09:41:24.278232 Received DATA (on stdin) 09:41:24.278364 > 18 bytes data, server => client 09:41:24.278443 '221 bye bye baby\r\n' 09:41:24.279570 ====> Client disconnect 09:41:24.280255 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:23.208069 Running IPv4 version 09:41:23.208681 Listening on port 37713 09:41:23.209011 Wrote pid 136926 to log/3/server/ftp_sockdata.pid 09:41:23.209152 Received PING (on stdin) 09:41:23.212113 Received PORT (on stdin) 09:41:23.216738 ====> Client connect 09:41:23.234044 Received DATA (on stdin) 09:41:23.234180 > 17 bytes data, server => client 09:41:23.234255 'WE ROOLZ: 77381\r\n' 09:41:23.234609 Received DISC (on stdin) 09:41:23.234760 ====> Client forcibly disconnected 09:41:23.236111 Received QUIT (on stdin) 09:41:23.236233 quits 09:41:23.236661 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1262 === End of file server.cmd === Start of file valgrind1262 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1262 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1241 ../src/curl -q --output log/36/curl1241.out --include --trace-ascii log/36/trace1241 --trace-config all --trace-time --path-as-is --proxy http://127.0.0.1:44255 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../1241?stupid=me/../1241#soo/../1241 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../12410001#/../12410001 > log/36/stdout1241 2> log/36/stderr1241 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1248 ../src/curl -q --output log/2/curl1248.out --include --trace-ascii log/2/trace1248 --trace-config all --trace-time http://user:secret@127.0.0.1:39659/1248 --proxy http://dummy:47/ --noproxy 127.0.0.1 --max-time 5 > log/2/stdout1248 2> log/2/stderr1248 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1255 ../src/curl -q --output log/57/curl1255.out --include --trace-ascii log/57/trace1255 --trace-config all --trace-time http://127.0.0.1:35945/1255 --noproxy 127.0.0.1 > log/57/stdout1255 2> log/57/stderr1255 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1246 ../src/curl -q --output log/8/curl1246.out --include --trace-ascii log/8/trace1246 --trace-config all --trace-time --proxy http://127.0.0.1:46129 http://test.remote.haxx.se.1246:46129#@127.0.0.1/tricked.html no-scheme-url.com.1246:46129#@127.127.127.127/again.html > log/8/stdout1246 2> log/8/stderr1246 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1263 ../src/curl -q --output log/48/curl1263.out --include --trace-ascii log/48/trace1263 --trace-config all --trace-time -g "http://[127.0.0.1]test:47/we/want/1263" "http://[127.0.0.1][127.0.0.1]:47/we/want/1263" "http://user@[::1]@localhost" > log/48/stdout1263 2> log/48/stderr1263 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1260 ../src/curl -q --output log/19/curl1260.out --include --trace-ascii log/19/trace1260 --trace-config all --trace-time -g "http://[127.0.0.1]:47:80/we/want/1260" "http://127.0.0.1:47:80/we/want/1260" "http://user@example.com:80@localhost" > log/19/stdout1260 2> log/19/stderr1260 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1222.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/45/stdout1222 2> log/45/stderr1222 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1235 ../src/curl -q --include --trace-ascii log/23/trace1235 --trace-config all --trace-time "127.0.0.1:42467/{1235,1235}{0001,0002}" > log/23/stdout1235 2> log/23/stderr1235 test 1239...[HTTP with -z + -w response_code and simulated 304] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1239 ../src/curl -q --include --trace-ascii log/14/trace1239 --trace-config all --trace-time http://127.0.0.1:43309/1239 -z "-dec 12 12:00:00 1999 GMT" -w '%{response_code}' > log/14/stdout1239 2> log/14/stderr1239 1239: stdout FAILED: --- log/14/check-expected 2025-07-18 09:41:25.281434118 +0000 +++ log/14/check-generated 2025-07-18 09:41:25.280585619 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 2010 12:10:00 GMT[LF] -ETag: "21025-dc7-39462498"[LF] -Accept-Ranges: bytes[LF] -Content-Length: 6[LF] -Connection: close[LF] -Content-Type: text/html[LF] -[LF] -304 == Contents of files in the log/14/ dir after test 1239 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 2010 12:10:00 GMT[LF] ETag: "21025-dc7-39462498"[LF] Accept-Ranges: bytes[LF] Content-Length: 6[LF] Connection: close[LF] Content-Type: text/html[LF] [LF] 304 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1239 ../src/curl -q --include --trace-ascii log/14/trace1239 --trace-config all --trace-time http://127.0.0.1:43309/1239 -z "-dec 12 12:00:00 1999 GMT" -w '%{response_code}' > log/14/stdout1239 2> log/14/stderr1239 === End of file commands.log === Start of file http_server.log 09:41:23.786846 ====> Client connect 09:41:23.787144 accept_connection 3 returned 4 09:41:23.787308 accept_connection 3 returned 0 09:41:23.787448 Read 93 bytes 09:41:23.787740 Process 93 bytes request 09:41:23.787876 Got request: GET /verifiedserver HTTP/1.1 09:41:23.787996 Are-we-friendly question received 09:41:23.788231 Wrote request (93 bytes) input to log/14/server.input 09:41:23.788430 Identifying ourselves as friends 09:41:23.789262 Response sent (56 bytes) and written to log/14/server.response 09:41:23.789382 special request received, no persistency 09:41:23.789524 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 1239 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind1239 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1239 test 1248...[Non-proxied host plus --proxy option and --noproxy option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1248 ../src/curl -q --output log/2/curl1248.out --include --trace-ascii log/2/trace1248 --trace-config all --trace-time http://user:secret@127.0.0.1:39659/1248 --proxy http://dummy:47/ --noproxy 127.0.0.1 --max-time 5 > log/2/stdout1248 2> log/2/stderr1248 1248: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1248 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1248 ../src/curl -q --output log/2/curl1248.out --include --trace-ascii log/2/trace1248 --trace-config all --trace-time http://user:secret@127.0.0.1:39659/1248 --proxy http://dummy:47/ --noproxy 127.0.0.1 --max-time 5 > log/2/stdout1248 2> log/2/stderr1248 === End of file commands.log === Start of file http_server.log 09:41:23.960068 ====> Client connect 09:41:23.960345 accept_connection 3 returned 4 09:41:23.963624 accept_connection 3 returned 0 09:41:23.963836 Read 93 bytes 09:41:23.963917 Process 93 bytes request 09:41:23.964002 Got request: GET /verifiedserver HTTP/1.1 09:41:23.964082 Are-we-friendly question received 09:41:23.964308 Wrote request (93 bytes) input to log/2/server.input 09:41:23.964584 Identifying ourselves as friends 09:41:23.965741 Response sent (56 bytes) and written to log/2/server.response 09:41:23.966011 special request received, no persistency 09:41:23.966087 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 1248 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind1248 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1268 ../src/curl -q --output log/25/curl1268.out --include --trace-ascii log/25/trace1268 --trace-config all --trace-time --stderr log/25/moo1268 --unix-socket -q hej://moo > log/25/stdout1268 2> log/25/stderr1268 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1259 ../src/curl -q --output log/63/curl1259.out --include --trace-ascii log/63/trace1259 --trace-config all --trace-time "http://user:pass;word@127.0.0.1:38797/we/want/1259" > log/63/stdout1259 2> log/63/stderr1259 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1269 ../src/curl -q --output log/22/curl1269.out --include --trace-ascii log/22/trace1269 --trace-config all --trace-time --retry 3 --retry-delay 9223372036854776 http://127.0.0.1:47/1269 > log/22/stdout1269 2> log/22/stderr1269 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1254 ../src/curl -q --output log/39/curl1254.out --include --trace-ascii log/39/trace1254 --trace-config all --trace-time http://somewhere.example.com/1254 --proxy http://127.0.0.1:42899 --noproxy "" > log/39/stdout1254 2> log/39/stderr1254 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1252 ../src/curl -q --output log/41/curl1252.out --include --trace-ascii log/41/trace1252 --trace-config all --trace-time http://127.0.0.1:35093/1252 --proxy http://127.0.0.1:35093 --noproxy 127.0.0.1 > log/41/stdout1252 2> log/41/stderr1252 valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1248 test 1246...[URL with '#' at end of host name instead of '/'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1246 ../src/curl -q --output log/8/curl1246.out --include --trace-ascii log/8/trace1246 --trace-config all --trace-time --proxy http://127.0.0.1:46129 http://test.remote.haxx.se.1246:46129#@127.0.0.1/tricked.html no-scheme-url.com.1246:46129#@127.127.127.127/again.html > log/8/stdout1246 2> log/8/stderr1246 1246: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1246 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1246 ../src/curl -q --output log/8/curl1246.out --include --trace-ascii log/8/trace1246 --trace-config all --trace-time --proxy http://127.0.0.1:46129 http://test.remote.haxx.se.1246:46129#@127.0.0.1/tricked.html no-scheme-url.com.1246:46129#@127.127.127.127/again.html > log/8/stdout1246 2> log/8/stderr1246 === End of file commands.log === Start of file http_server.log 09:41:24.009074 ====> Client connect 09:41:24.009383 accept_connection 3 returned 4 09:41:24.009680 accept_connection 3 returned 0 09:41:24.009839 Read 93 bytes 09:41:24.009938 Process 93 bytes request 09:41:24.010039 Got request: GET /verifiedserver HTTP/1.1 09:41:24.010111 Are-we-friendly question received 09:41:24.010325 Wrote request (93 bytes) input to log/8/server.input 09:41:24.013628 Identifying ourselves as friends 09:41:24.014582 Response sent (56 bytes) and written to log/8/server.response 09:41:24.014709 special request received, no persistency 09:41:24.014776 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 1246 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind1246 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1246 * starts no server test 1260...[HTTP URL with rubbish after port number] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1260 ../src/curl -q --output log/19/curl1260.out --include --trace-ascii log/19/trace1260 --trace-config all --trace-time -g "http://[127.0.0.1]:47:80/we/want/1260" "http://127.0.0.1:47:80/we/want/1260" "http://user@example.com:80@localhost" > log/19/stdout1260 2> log/19/stderr1260 curl returned 1, when expecting 3 1260: exit FAILED == Contents of files in the log/19/ dir after test 1260 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1260 ../src/curl -q --output log/19/curl1260.out --include --trace-ascii log/19/trace1260 --trace-config all --trace-time -g "http://[127.0.0.1]:47:80/we/want/1260" "http://127.0.0.1:47:80/we/want/1260" "http://user@example.com:80@localhost" > log/19/stdout1260 2> log/19/stderr1260 === End of file commands.log === Start of file server.cmd Testnum 1260 === End of file server.cmd === Start of file valgrind1260 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1260 test 1241...[HTTP _without_ dotdot removal] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1241 ../src/curl -q --output log/36/curl1241.out --include --trace-ascii log/36/trace1241 --trace-config all --trace-time --path-as-is --proxy http://127.0.0.1:44255 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../1241?stupid=me/../1241#soo/../1241 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../12410001#/../12410001 > log/36/stdout1241 2> log/36/stderr1241 1241: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1241 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1257 ../src/curl -q --output log/64/curl1257.out --include --trace-ascii log/64/trace1257 --trace-config all --trace-time http://somewhere.example.com/1257 --noproxy "" > log/64/stdout1257 2> log/64/stderr1257 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1251 ../src/curl -q --output log/42/curl1251.out --include --trace-ascii log/42/trace1251 --trace-config all --trace-time http://user:secret@127.0.0.1:42819/1251 --max-time 5 > log/42/stdout1251 2> log/42/stderr1251 num-callers=16 --log-file=log/36/valgrind1241 ../src/curl -q --output log/36/curl1241.out --include --trace-ascii log/36/trace1241 --trace-config all --trace-time --path-as-is --proxy http://127.0.0.1:44255 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../1241?stupid=me/../1241#soo/../1241 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../12410001#/../12410001 > log/36/stdout1241 2> log/36/stderr1241 === End of file commands.log === Start of file http_server.log 09:41:23.863104 ====> Client connect 09:41:23.863441 accept_connection 3 returned 4 09:41:23.863771 accept_connection 3 returned 0 09:41:23.863889 Read 93 bytes 09:41:23.863971 Process 93 bytes request 09:41:23.864051 Got request: GET /verifiedserver HTTP/1.1 09:41:23.864138 Are-we-friendly question received 09:41:23.864373 Wrote request (93 bytes) input to log/36/server.input 09:41:23.864619 Identifying ourselves as friends 09:41:23.865400 Response sent (56 bytes) and written to log/36/server.response 09:41:23.865748 special request received, no persistency 09:41:23.865929 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 1241 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind1241 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1241 setenv http_proxy = http://dummy:44417/ test 1250...[Non-proxied host plus http_proxy env var and --noproxy option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1250 ../src/curl -q --output log/43/curl1250.out --include --trace-ascii log/43/trace1250 --trace-config all --trace-time http://user:secret@127.0.0.1:41267/1250 --noproxy 127.0.0.1 --max-time 5 > log/43/stdout1250 2> log/43/stderr1250 1250: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 1250 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1250 ../src/curl -q --output log/43/curl1250.out --include --trace-ascii log/43/trace1250 --trace-config all --trace-time http://user:secret@127.0.0.1:41267/1250 --noproxy 127.0.0.1 --max-time 5 > log/43/stdout1250 2> log/43/stderr1250 === End of file commands.log === Start of file http_server.log 09:41:23.937887 ====> Client connect 09:41:23.938172 accept_connection 3 returned 4 09:41:23.938319 accept_connection 3 returned 0 09:41:23.938449 Read 93 bytes 09:41:23.938686 Process 93 bytes request 09:41:23.938831 Got request: GET /verifiedserver HTTP/1.1 09:41:23.938927 Are-we-friendly question received 09:41:23.939136 Wrote request (93 bytes) input to log/43/server.input 09:41:23.939312 Identifying ourselves as friends 09:41:23.940127 Response sent (56 bytes) and written to log/43/server.response 09:41:23.940288 special request received, no persistency 09:41:23.940369 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 1250 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind1250 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1250 * starts no server test 1222...[Verify deprecation statuses and versions] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1222.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/45/stdout1222 2> log/45/stderr1222 valgrind SKIPPED -------e--- OK (1133 out of 1707, remaining: 00:30, took 2.672s, duration: 00:59) * starts no server test 1263...[HTTP URL with rubbish after IPv6 bracket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1263 ../src/curl -q --output log/48/curl1263.out --include --trace-ascii log/48/trace1263 --trace-config all --trace-time -g "http://[127.0.0.1]test:47/we/want/1263" "http://[127.0.0.1][127.0.0.1]:47/we/want/1263" "http://user@[::1]@localhost" > log/48/stdout1263 2> log/48/stderr1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1278 ../src/curl -q --include --trace-ascii log/5/trace1278 --trace-config all --trace-time http://127.0.0.1:33413/1278 --no-progress-meter -o log/5/out1278 --no-remote-name -w '%{stderr}yes\n' > log/5/stdout1278 2> log/5/stderr1278 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1281 ../src/curl -q --output log/24/curl1281.out --include --trace-ascii log/24/trace1281 --trace-config all --trace-time http://127.0.0.1:alpha/beta/1281 > log/24/stdout1281 2> log/24/stderr1281 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1253 ../src/curl -q --output log/54/curl1253.out --include --trace-ascii log/54/trace1253 --trace-config all --trace-time http://somewhere.example.com/1253 --proxy http://127.0.0.1:44921 --noproxy 127.0.0.1 > log/54/stdout1253 2> log/54/stderr1253 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1266 ../src/curl -q --output log/59/curl1266.out --include --trace-ascii log/59/trace1266 --trace-config all --trace-time http://127.0.0.1:43695/1266 --http0.9 > log/59/stdout1266 2> log/59/stderr1266 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1273 ../src/curl -q --output log/11/curl1273.out --include --trace-ascii log/11/trace1273 --trace-config all --trace-time http://127.0.0.1:41387/1273 -C - -f > log/11/stdout1273 2> log/11/stderr1273 RUN: Process with pid 73809 signalled to die 263 curl returned 1, when expecting 3 1263: exit FAILED == Contents of files in the log/48/ dir after test 1263 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1263 ../src/curl -q --output log/48/curl1263.out --include --trace-ascii log/48/trace1263 --trace-config all --trace-time -g "http://[127.0.0.1]test:47/we/want/1263" "http://[127.0.0.1][127.0.0.1]:47/we/want/1263" "http://user@[::1]@localhost" > log/48/stdout1263 2> log/48/stderr1263 === End of file commands.log === Start of file server.cmd Testnum 1263 === End of file server.cmd === Start of file valgrind1263 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1263 setenv http_proxy = http://127.0.0.1:35945 setenv NO_PROXY = example.com test 1255...[http_proxy, override NO_PROXY by --noproxy and access target URL directly] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1255 ../src/curl -q --output log/57/curl1255.out --include --trace-ascii log/57/trace1255 --trace-config all --trace-time http://127.0.0.1:35945/1255 --noproxy 127.0.0.1 > log/57/stdout1255 2> log/57/stderr1255 1255: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 1255 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1255 ../src/curl -q --output log/57/curl1255.out --include --trace-ascii log/57/trace1255 --trace-config all --trace-time http://127.0.0.1:35945/1255 --noproxy 127.0.0.1 > log/57/stdout1255 2> log/57/stderr1255 === End of file commands.log === Start of file http_server.log 09:41:24.029820 ====> Client connect 09:41:24.030130 accept_connection 3 returned 4 09:41:24.030280 accept_connection 3 returned 0 09:41:24.031558 Read 93 bytes 09:41:24.031702 Process 93 bytes request 09:41:24.031795 Got request: GET /verifiedserver HTTP/1.1 09:41:24.031873 Are-we-friendly question received 09:41:24.032132 Wrote request (93 bytes) input to log/57/server.input 09:41:24.032351 Identifying ourselves as friends 09:41:24.033071 Response sent (56 bytes) and written to log/57/server.response 09:41:24.033179 special request received, no persistency 09:41:24.033241 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 1255 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind1255 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1255 * starts no server test 1269...[too large --retry-delay value] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1269 ../src/curl -q --output log/22/curl1269.out --include --trace-ascii log/22/trace1269 --trace-config all --trace-time --retry 3 --retry-delay 9223372036854776 http://127.0.0.1:47/1269 > log/22/stdout1269 2> log/22/stderr1269 curl returned 1, when expecting 2 1269: exit FAILED == Contents of files in the log/22/ dir after test 1269 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1269 ../src/curl -q --output log/22/curl1269.out --include --trace-ascii log/22/trace1269 --trace-config all --trace-time --retry 3 --retry-delay 9223372036854776 http://127.0.0.1:47/1269 > log/22/stdout1269 2> log/22/stderr1269 === End of file commands.log === Start of file server.cmd Testnum 1269 === End of file server.cmd === Start of file valgrind1269 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1269 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1258 ../src/curl -q --output log/60/curl1258.out --include --trace-ascii log/60/trace1258 --trace-config all --trace-time http://127.0.0.1:38843/we/want/1258 http://127.0.0.1:38843/we/want?hoge=fuga -b non-existing -H "Host: localhost" > log/60/stdout1258 2> log/60/stderr1258 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1243 ../src/curl -q --output log/18/curl1243.out --include --trace-ascii log/18/trace1243 --trace-config all --trace-time -T log/18/test1243.txt tftp://127.0.0.1:54884// --tftp-no-options > log/18/stdout1243 2> log/18/stderr1243 test 1235...[multiple requests using {}{} in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1235 ../src/curl -q --include --trace-ascii log/23/trace1235 --trace-config all --trace-time "127.0.0.1:42467/{1235,1235}{0001,0002}" > log/23/stdout1235 2> log/23/stderr1235 1235: stdout FAILED: --- log/23/check-expected 2025-07-18 09:41:25.658484087 +0000 +++ log/23/check-generated 2025-07-18 09:41:25.656585428 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 15[CR][LF] -[CR][LF] -the number one[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 16[CR][LF] -[CR][LF] -two is nice too[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 15[CR][LF] -[CR][LF] -the number one[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 16[CR][LF] -[CR][LF] -two is nice too[LF] == Contents of files in the log/23/ dir after test 1235 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 15[CR][LF] [CR][LF] the number one[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 16[CR][LF] [CR][LF] two is nice too[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 15[CR][LF] [CR][LF] the number one[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 16[CR][LF] [CR][LF] two is nice too[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1235 ../src/curl -q --include --trace-ascii log/23/trace1235 --trace-config all --trace-time "127.0.0.1:42467/{1235,1235}{0001,0002}" > log/23/stdout1235 2> log/23/stderr1235 === End of file commands.log === Start of file http_server.log 09:41:24.054036 ====> Client connect 09:41:24.054682 accept_connection 3 returned 4 09:41:24.054940 accept_connection 3 returned 0 09:41:24.055085 Read 93 bytes 09:41:24.055200 Process 93 bytes request 09:41:24.055299 Got request: GET /verifiedserver HTTP/1.1 09:41:24.055391 Are-we-friendly question received 09:41:24.055772 Wrote request (93 bytes) input to log/23/server.input 09:41:24.055973 Identifying ourselves as friends 09:41:24.056814 Response sent (56 bytes) and written to log/23/server.response 09:41:24.056933 special request received, no persistency 09:41:24.057014 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 1235 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind1235 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1235 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1245 ../src/curl -q --output log/9/curl1245.out --include --trace-ascii log/9/trace1245 --trace-config all --trace-time --location --proto +all,-ftp --proto-redir -all,+ftp http://127.0.0.1:46607/1245 > log/9/stdout1245 2> log/9/stderr1245 RUN: Process with pid 73809 gracefully died CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1238 ../src/curl -q --output log/15/curl1238.out --include --trace-ascii log/15/trace1238 --trace-config all --trace-time tftp://127.0.0.1:41838//1238 -Y1000 -y2 > log/15/stdout1238 2> log/15/stderr1238 RUN: Process with pid 135707 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1261 ../src/curl -q --include --trace-ascii log/30/trace1261 --trace-config all --trace-time http://127.0.0.1:43913/we/want/our/1261 -w '%{redirect_url}\n' --location --max-redirs 0 > log/30/stdout1261 2> log/30/stderr1261 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1270 ../src/curl -q --include --trace-ascii log/49/trace1270 --trace-config all --trace-time http://127.0.0.1:42667/we/want/our/1270 -w '%{redirect_url}\n' -s > log/49/stdout1270 2> log/49/stderr1270 * starts no server test 1268...[filename argument looks like a flag] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1268 ../src/curl -q --output log/25/curl1268.out --include --trace-ascii log/25/trace1268 --trace-config all --trace-time --stderr log/25/moo1268 --unix-socket -q hej://moo > log/25/stdout1268 2> log/25/stderr1268 1268: output (log/25/moo1268) FAILED: --- log/25/check-expected 2025-07-18 09:41:25.725650833 +0000 +++ log/25/check-generated 2025-07-18 09:41:25.724585394 +0000 @@ -1,2 +0,0 @@ -Warning: The filename argument '-q' looks like a flag.[CR][LF] -curl: (1) Protocol "hej" not supported[CR][LF] == Contents of files in the log/25/ dir after test 1268 === Start of file check-expected Warning: The filename argument '-q' looks like a flag.[CR][LF] curl: (1) Protocol "hej" not supported[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1268 ../src/curl -q --output log/25/curl1268.out --include --trace-ascii log/25/trace1268 --trace-config all --trace-time --stderr log/25/moo1268 --unix-socket -q hej://moo > log/25/stdout1268 2> log/25/stderr1268 === End of file commands.log === Start of file server.cmd Testnum 1268 === End of file server.cmd === Start of file valgrind1268 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1268 setenv NO_PROXY = example.com test 1254...[override NO_PROXY by --noproxy and access target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1254 ../src/curl -q --output log/39/curl1254.out --include --trace-ascii log/39/trace1254 --trace-config all --trace-time http://somewhere.example.com/1254 --proxy http://127.0.0.1:42899 --noproxy "" > log/39/stdout1254 2> log/39/stderr1254 1254: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 1254 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1254 ../src/curl -q --output log/39/curl1254.out --include --trace-ascii log/39/trace1254 --trace-config all --trace-time http://somewhere.example.com/1254 --proxy http://127.0.0.1:42899 --noproxy "" > log/39/stdout1254 2> log/39/stderr1254 === End of file commands.log === Start of file http_server.log 09:41:23.951366 ====> Client connect 09:41:23.951869 accept_connection 3 returned 4 09:41:23.952087 accept_connection 3 returned 0 09:41:23.952211 Read 93 bytes 09:41:23.952304 Process 93 bytes request 09:41:23.952389 Got request: GET /verifiedserver HTTP/1.1 09:41:23.952546 Are-we-friendly question received 09:41:23.952794 Wrote request (93 bytes) input to log/39/server.input 09:41:23.952964 Identifying ourselves as friends 09:41:23.953754 Response sent (56 bytes) and written to log/39/server.response 09:41:23.953867 special request received, no persistency 09:41:23.953932 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 1254 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind1254 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1254 setenv NO_PROXY = example.com test 1252...[--proxy, override NO_PROXY by --noproxy and access target URL directly] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1252 ../src/curl -q --output log/41/curl1252.out --include --trace-ascii log/41/trace1252 --trace-config all --trace-time http://127.0.0.1:35093/1252 --proxy http://127.0.0.1:35093 --noproxy 127.0.0.1 > log/41/stdout1252 2> log/41/stderr1252 1252: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 1252 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1252 ../src/curl -q --output log/41/curl1252.out --include --trace-ascii log/41/trace1252 --trace-config all --trace-time http://127.0.0.1:35093/1252 --proxy http://127.0.0.1:35093 --noproxy 127.0.0.1 > log/41/stdout1252 2> log/41/stderr1252 === End of file commands.log === Start of file http_server.log 09:41:23.920876 ====> Client connect 09:41:23.921237 accept_connection 3 returned 4 09:41:23.921644 accept_connection 3 returned 0 09:41:23.923227 Read 93 bytes 09:41:23.923366 Process 93 bytes request 09:41:23.923439 Got request: GET /verifiedserver HTTP/1.1 09:41:23.923600 Are-we-friendly question received 09:41:23.923830 Wrote request (93 bytes) input to log/41/server.input 09:41:23.924010 Identifying ourselves as friends 09:41:23.928851 Response sent (56 bytes) and written to log/41/server.response 09:41:23.928978 special request received, no persistency 09:41:23.929051 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 1252 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind1252 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1252 setenv http_proxy = http://dummy:[not running]/ setenv NO_PROXY = 127.0.0.1 test 1251...[Non-proxied host plus http_proxy env var and NO_PROXY env var] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1251 ../src/curl -q --output log/42/curl1251.out --include --trace-ascii log/42/trace1251 --trace-config all --trace-time http://user:secret@127.0.0.1:42819/1251 --max-time 5 > log/42/stdout1251 2> log/42/stderr1251 1251: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 1251 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1251 ../src/curl -q --output log/42/curl1251.out --include --trace-ascii log/42/trace1251 --trace-config all --trace-time http://user:secret@127.0.0.1:42819/1251 --max-time 5 > log/42/stdout1251 2> log/42/stderr1251 === End of file commands.log === Start of file http_server.log 09:41:24.015097 ====> Client connect 09:41:24.015381 accept_connection 3 returned 4 09:41:24.015671 accept_connection 3 returned 0 09:41:24.022937 Read 93 bytes 09:41:24.023103 Process 93 bytes request 09:41:24.023208 Got request: GET /verifiedserver HTTP/1.1 09:41:24.023306 Are-we-friendly question received 09:41:24.023634 Wrote request (93 bytes) input to log/42/server.input 09:41:24.023871 Identifying ourselves as friends 09:41:24.025672 Response sent (56 bytes) and written to log/42/server.response 09:41:24.025781 special request received, no persistency 09:41:24.025847 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 1251 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind1251 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1251 test 1259...[HTTP URL with semicolon in password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1259 ../src/curl -q --output log/63/curl1259.out --include --trace-ascii log/63/trace1259 --trace-config all --trace-time "http://user:pass;word@127.0.0.1:38797/we/want/1259" > log/63/stdout1259 2> log/63/stderr1259 1259: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1259 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1259 ../src/curl -q --output log/63/curl1259.out --include --trace-ascii log/63/trace1259 --trace-config all --trace-time "http://user:pass;word@127.0.0.1:38797/we/want/1259" > log/63/stdout1259 2> log/63/stderr1259 === End of file commands.log === Start of file http_server.log 09:41:24.166154 ====> Client connect 09:41:24.166788 accept_connection 3 returned 4 09:41:24.166974 accept_connection 3 returned 0 09:41:24.167148 Read 93 bytes 09:41:24.167276 Process 93 bytes reqCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1283 ../src/curl -q --include --trace-ascii log/26/trace1283 --trace-config all --trace-time http://127.0.0.1:46481/[a-a][1-1][b-b:1][2-2:1]/1283 -o "log/26/outfile1283_#1#2#3#4.dump" > log/26/stdout1283 2> log/26/stderr1283 uest 09:41:24.167381 Got request: GET /verifiedserver HTTP/1.1 09:41:24.167602 Are-we-friendly question received 09:41:24.168140 Wrote request (93 bytes) input to log/63/server.input 09:41:24.174021 Identifying ourselves as friends 09:41:24.174988 Response sent (56 bytes) and written to log/63/server.response 09:41:24.175120 special request received, no persistency 09:41:24.175220 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 1259 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1259 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1259 setenv http_proxy = http://127.0.0.1:33073 setenv NO_PROXY = example.com test 1257...[http_proxy, override NO_PROXY by --noproxy and target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1257 ../src/curl -q --output log/64/curl1257.out --include --trace-ascii log/64/trace1257 --trace-config all --trace-time http://somewhere.example.com/1257 --noproxy "" > log/64/stdout1257 2> log/64/stderr1257 1257: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1257 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1257 ../src/curl -q --output log/64/curl1257.out --include --trace-ascii log/64/trace1257 --trace-config all --trace-time http://somewhere.example.com/1257 --noproxy "" > log/64/stdout1257 2> log/64/stderr1257 === End of file commands.log === Start of file http_server.log 09:41:24.126066 ====> Client connect 09:41:24.126656 accept_connection 3 returned 4 09:41:24.126895 accept_connection 3 returned 0 09:41:24.127094 Read 93 bytes 09:41:24.127215 Process 93 bytes request 09:41:24.127318 Got request: GET /verifiedserver HTTP/1.1 09:41:24.127424 Are-we-friendly question received 09:41:24.127770 Wrote request (93 bytes) input to log/64/server.input 09:41:24.128024 Identifying ourselves as friends 09:41:24.138667 Response sent (56 bytes) and written to log/64/server.response 09:41:24.138792 special request received, no persistency 09:41:24.138866 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK * Request completely sent off < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1257 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1257 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1257 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1274 ../src/curl -q --output log/29/curl1274.out --include --trace-ascii log/29/trace1274 --trace-config all --trace-time http://127.0.0.1:36877/1274 -D log/29/out1274 > log/29/stdout1274 2> log/29/stderr1274 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1302 ./unit/units unit1302 - > log/28/stdout1302 2> log/28/stderr1302 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1267 ../src/curl -q --output log/27/curl1267.out --include --trace-ascii log/27/trace1267 --trace-config all --trace-time http://127.0.0.1:42323/1267 --http0.9 > log/27/stdout1267 2> log/27/stderr1267 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1265 ../src/curl -q --output log/37/curl1265.out --include --trace-ascii log/37/trace1265 --trace-config all --trace-time http://[::1]:38437/1265 > log/37/stdout1265 2> log/37/stderr1265 test 1278...[verify extra --no-remote-name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1278 ../src/curl -q --include --trace-ascii log/5/trace1278 --trace-config all --trace-time http://127.0.0.1:33413/1278 --no-progress-meter -o log/5/out1278 --no-remote-name -w '%{stderr}yes\n' > log/5/stdout1278 2> log/5/stderr1278 1278: stderr FAILED: --- log/5/check-expected 2025-07-18 09:41:25.890722690 +0000 +++ log/5/check-generated 2025-07-18 09:41:25.889585310 +0000 @@ -1 +0,0 @@ -yes[CR][LF] == Contents of files in the log/5/ dir after test 1278 === Start of file check-expected yes[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1278 ../src/curl -q --include --trace-ascii log/5/trace1278 --trace-config all --trace-time http://127.0.0.1:33413/1278 --no-progress-meter -o log/5/out1278 --no-remote-name -w '%{stderr}yes\n' > log/5/stdout1278 2> log/5/stderr1278 === End of file commands.log === Start of file http_server.log 09:41:24.712120 ====> Client connect 09:41:24.712643 accept_connection 3 returned 4 09:41:24.712890 accept_connection 3 returned 0 09:41:24.713574 Read 93 bytes 09:41:24.713723 Process 93 bytes request 09:41:24.713814 Got request: GET /verifiedserver HTTP/1.1 09:41:24.713898 Are-we-friendly question received 09:41:24.714149 Wrote request (93 bytes) input to log/5/server.input 09:41:24.714414 Identifying ourselves as friends 09:41:24.717887 Response sent (56 bytes) and written to log/5/server.response 09:41:24.718021 special request received, no persistency 09:41:24.718103 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1278 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind1278 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1278 test 1245...[--proto deny must override --proto-redir allow] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1245 ../src/curl -q --output log/9/curl1245.out --include --trace-ascii log/9/trace1245 --trace-config all --trace-time --location --proto +all,-ftp --proto-redir -all,+ftp http://127.0.0.1:46607/1245 > log/9/stdout1245 2> log/9/stderr1245 1245: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 1245 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1245 ../src/curl -q --output log/9/curl1245.out --include --trace-ascii log/9/trace1245 --trace-config all --trace-time --location --proto +all,-ftp --proto-redir -all,+ftp http://127.0.0.1:46607/1245 > log/9/stdout1245 2> log/9/stderr1245 === End of file commands.log === Start of file ftp_server.log 09:41:24.085705 ====> Client connect 09:41:24.091123 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:24.098496 < "USER anonymous" 09:41:24.099118 > "331 We are happy you popped in![CR][LF]" 09:41:24.105933 < "PASS ftp@example.com" 09:41:24.106367 > "230 Welcome you silly person[CR][LF]" 09:41:24.109989 < "PWD" 09:41:24.114077 > "257 "/" is current directory[CR][LF]" 09:41:24.120339 < "EPSV" 09:41:24.120619 ====> Passive DATA channel requested by client 09:41:24.120894 DATA sockfilt for passive data channel starting... 09:41:24.158211 DATA sockfilt for passive data channel started (pid 137422) 09:41:24.159538 DATA sockfilt for passive data channel listens on port 46381 09:41:24.160118 > "229 Entering Passive Mode (|||46381|)[LF]" 09:41:24.160390 Client has been notified that DATA conn will be accepted on port 46381 09:41:24.171982 Client connects to port 46381 09:41:24.172342 ====> Client established passive DATA connection on port 46381 09:41:24.173483 < "TYPE I" 09:41:24.173979 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:24.180419 < "SIZE verifiedserver" 09:41:24.180915 > "213 17[CR][LF]" 09:41:24.189376 < "RETR verifiedserver" 09:41:24.192051 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:24.192945 =====> Closing passive DATA connection... 09:41:24.193200 Server disconnects passive DATA connection 09:41:24.197022 Server disconnected passive DATA connection 09:41:24.197336 DATA sockfilt for passive data channel quits (pid 137422) 09:41:24.208955 DATA sockfilt for passive data channel quit (pid 137422) 09:41:24.209260 =====> Closed passive DATA connection 09:41:24.209631 > "226 File transfer complete[CR][LF]" 09:41:24.246081 < "QUIT" 09:41:24.248143 > "221 bye bye baby[CR][LF]" 09:41:24.260158 MAIN sockfilt said DISC 09:41:24.260803 ====> Client disconnected 09:41:24.261671 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:23.338387 ====> Client connect 09:41:23.344269 Received DATA (on stdin) 09:41:23.344447 > 160 bytes data, server => client 09:41:23.345388 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:23.345576 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:23.345715 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:23.348103 < 16 bytes data, client => server 09:41:23.348281 'USER anonymous\r\n' 09:41:23.355584 Received DATA (on stdin) 09:41:23.355783 > 33 bytes data, server => client 09:41:23.355910 '331 We are happy you popped in!\r\n' 09:41:23.358736 < 22 bytes data, client => server 09:41:23.358895 'PASS ftp@example.com\r\n' 09:41:23.361686 Received DATA (on stdin) 09:41:23.361897 > 30 bytes data, server => client 09:41:23.362019 '230 Welcome you silly person\r\n' 09:41:23.362724 < 5 bytes dataCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1300 ./unit/units unit1300 - > log/46/stdout1300 2> log/46/stderr1300 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1286 ../src/curl -q --output log/12/curl1286.out --include --trace-ascii log/12/trace1286 --trace-config all --trace-time -u auser:apasswd --location --digest http://127.0.0.1:45579/1286 > log/12/stdout1286 2> log/12/stderr1286 , client => server 09:41:23.362875 'PWD\r\n' 09:41:23.364145 Received DATA (on stdin) 09:41:23.364301 > 30 bytes data, server => client 09:41:23.370561 '257 "/" is current directory\r\n' 09:41:23.371348 < 6 bytes data, client => server 09:41:23.371688 'EPSV\r\n' 09:41:23.416739 Received DATA (on stdin) 09:41:23.416951 > 38 bytes data, server => client 09:41:23.417064 '229 Entering Passive Mode (|||46381|)\n' 09:41:23.422690 < 8 bytes data, client => server 09:41:23.422857 'TYPE I\r\n' 09:41:23.429634 Received DATA (on stdin) 09:41:23.429809 > 33 bytes data, server => client 09:41:23.429908 '200 I modify TYPE as you wanted\r\n' 09:41:23.430648 < 21 bytes data, client => server 09:41:23.430800 'SIZE verifiedserver\r\n' 09:41:23.437572 Received DATA (on stdin) 09:41:23.437768 > 8 bytes data, server => client 09:41:23.437872 '213 17\r\n' 09:41:23.438789 < 21 bytes data, client => server 09:41:23.438950 'RETR verifiedserver\r\n' 09:41:23.447172 Received DATA (on stdin) 09:41:23.447316 > 29 bytes data, server => client 09:41:23.447406 '150 Binary junk (17 bytes).\r\n' 09:41:23.467591 Received DATA (on stdin) 09:41:23.467761 > 28 bytes data, server => client 09:41:23.467882 '226 File transfer complete\r\n' 09:41:23.498760 < 6 bytes data, client => server 09:41:23.498901 'QUIT\r\n' 09:41:23.502289 Received DATA (on stdin) 09:41:23.502439 > 18 bytes data, server => client 09:41:23.502783 '221 bye bye baby\r\n' 09:41:23.506676 ====> Client disconnect 09:41:23.518607 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:24.407172 Running IPv4 version 09:41:24.407807 Listening on port 46381 09:41:24.408209 Wrote pid 137422 to log/9/server/ftp_sockdata.pid 09:41:24.411309 Received PING (on stdin) 09:41:24.412647 Received PORT (on stdin) 09:41:24.423092 ====> Client connect 09:41:24.448188 Received DATA (on stdin) 09:41:24.448343 > 17 bytes data, server => client 09:41:24.448420 'WE ROOLZ: 77386\r\n' 09:41:24.448816 Received DISC (on stdin) 09:41:24.448993 ====> Client forcibly disconnected 09:41:24.451317 Received QUIT (on stdin) 09:41:24.451572 quits 09:41:24.452079 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:23.908009 ====> Client connect 09:41:23.908359 accept_connection 3 returned 4 09:41:23.908673 accept_connection 3 returned 0 09:41:23.918608 Read 93 bytes 09:41:23.918800 Process 93 bytes request 09:41:23.918922 Got request: GET /verifiedserver HTTP/1.1 09:41:23.919032 Are-we-friendly question received 09:41:23.919316 Wrote request (93 bytes) input to log/9/server.input 09:41:23.919699 Identifying ourselves as friends 09:41:23.921032 Response sent (56 bytes) and written to log/9/server.response 09:41:23.921242 special request received, no persistency 09:41:23.921342 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 1245 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind1245 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1245 test 1273...[-f and resume transfer of an entirely-downloaded file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1273 ../src/curl -q --output log/11/curl1273.out --include --trace-ascii log/11/trace1273 --trace-config all --trace-time http://127.0.0.1:41387/1273 -C - -f > log/11/stdout1273 2> log/11/stderr1273 1273: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 1273 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1273 ../src/curl -q --output log/11/curl1273.out --include --trace-ascii log/11/trace1273 --trace-config all --trace-time http://127.0.0.1:41387/1273 -C - -f > log/11/stdout1273 2> log/11/stderr1273 === End of file commands.log === Start of file curl1273.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1273.out === Start of file http_server.log 09:41:24.650933 ====> Client connect 09:41:24.651228 accept_connection 3 returned 4 09:41:24.651403 accept_connection 3 returned 0 09:41:24.651701 Read 93 bytes 09:41:24.651814 Process 93 bytes request 09:41:24.651907 Got request: GET /verifiedserver HTTP/1.1 09:41:24.651991 Are-we-friendly question received 09:41:24.652245 Wrote request (93 bytes) input to log/11/server.input 09:41:24.652561 Identifying ourselves as friends 09:41:24.653675 Response sent (56 bytes) and written to log/11/server.response 09:41:24.653790 special request received, no persistency 09:41:24.653863 ====> Client disconnect 0 exit_signal_handler: called 09:41:25.890414 signalled to die 09:41:25.891358 ========> IPv4 sws (port 41387 pid: 73809) exits with signal (15) 09:41:25.891617 ========> sws quits === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41387... * Connected to 127.0.0.1 (127.0.0.1) port 41387 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41387 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73809 === End of file http_verify.out === Start of file server.cmd Testnum 1273 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73809 === End of file server.response === Start of file valgrind1273 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmpCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1290 ../src/curl -q --output log/62/curl1290.out --include --trace-ascii log/62/trace1290 --trace-config all --trace-time "http://127.0.0.1:38899/we/want/[]/page/1290" > log/62/stdout1290 2> log/62/stderr1290 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1304 ./unit/units unit1304 log/13/netrc1304 > log/13/stdout1304 2> log/13/stderr1304 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1303 ./unit/units unit1303 - > log/4/stdout1303 2> log/4/stderr1303 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1277 ../src/curl -q --output log/1/curl1277.out --include --trace-ascii log/1/trace1277 --trace-config all --trace-time http://127.0.0.1:40633/1277 --tr-encoding --compressed > log/1/stdout1277 2> log/1/stderr1277 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1282 ../src/curl -q --output log/58/curl1282.out --include --trace-ascii log/58/trace1282 --trace-config all --trace-time ftp://127.0.0.1:38901/1282 > log/58/stdout1282 2> log/58/stderr1282 valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1273 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/18/server/tftp_server.pid" --portfile "log/18/server/tftp_server.port" --logfile "log/18/tftp_server.log" --logdir "log/18" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 135855 port 54884 * pid tftp => 135855 135855 test 1243...[TFTP send without TFTP options requests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1243 ../src/curl -q --output log/18/curl1243.out --include --trace-ascii log/18/trace1243 --trace-config all --trace-time -T log/18/test1243.txt tftp://127.0.0.1:54884// --tftp-no-options > log/18/stdout1243 2> log/18/stderr1243 1243: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 1243 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1243 ../src/curl -q --output log/18/curl1243.out --include --trace-ascii log/18/trace1243 --trace-config all --trace-time -T log/18/test1243.txt tftp://127.0.0.1:54884// --tftp-no-options > log/18/stdout1243 2> log/18/stderr1243 === End of file commands.log === Start of file server.cmd Testnum 1243 === End of file server.cmd === Start of file test1243.txt a chunk of data sent to server === End of file test1243.txt === Start of file tftp_server.log 09:41:23.861214 Wrote pid 135855 to log/18/server/tftp_server.pid 09:41:23.861928 Wrote port 54884 to log/18/server/tftp_server.port 09:41:23.862031 Running IPv4 version on port UDP/54884 === End of file tftp_server.log === Start of file valgrind1243 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1243 * starts no server test 1281...[reject non-numerical port number in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1281 ../src/curl -q --output log/24/curl1281.out --include --trace-ascii log/24/trace1281 --trace-config all --trace-time http://127.0.0.1:alpha/beta/1281 > log/24/stdout1281 2> log/24/stderr1281 curl returned 1, when expecting 3 1281: exit FAILED == Contents of files in the log/24/ dir after test 1281 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1281 ../src/curl -q --output log/24/curl1281.out --include --trace-ascii log/24/trace1281 --trace-config all --trace-time http://127.0.0.1:alpha/beta/1281 > log/24/stdout1281 2> log/24/stderr1281 === End of file commands.log === Start of file server.cmd Testnum 1281 === End of file server.cmd === Start of file valgrind1281 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1281 test 1283...[globbing range with same start and stop] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1283 ../src/curl -q --include --trace-ascii log/26/trace1283 --trace-config all --trace-time http://127.0.0.1:46481/[a-a][1-1][b-b:1][2-2:1]/1283 -o "log/26/outfile1283_#1#2#3#4.dump" > log/26/stdout1283 2> log/26/stderr1283 1283: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 1283 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1283 ../src/curl -q --include --trace-ascii log/26/trace1283 --trace-config all --trace-time http://127.0.0.1:46481/[a-a][1-1][b-b:1][2-2:1]/1283 -o "log/26/outfile1283_#1#2#3#4.dump" > log/26/stdout1283 2> log/26/stderr1283 === End of file commands.log === Start of file http_server.log 09:41:24.918950 ====> Client connect 09:41:24.919275 accept_connection 3 returned 4 09:41:24.919443 accept_connection 3 returned 0 09:41:24.922672 Read 93 bytes 09:41:24.922930 Process 93 bytes request 09:41:24.923009 Got request: GET /verifiedserver HTTP/1.1 09:41:24.923079 Are-we-friendly question received 09:41:24.923321 Wrote request (93 bytes) input to log/26/server.input 09:41:24.923657 Identifying ourselves as friends 09:41:24.924269 Response sent (56 bytes) and written to log/26/server.response 09:41:24.924384 special request received, no persistency 09:41:24.924527 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 1283 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1283 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1283 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1280 ../src/curl -q --output log/61/curl1280.out --include --trace-ascii log/61/trace1280 --trace-config all --trace-time http://127.0.0.1:44381/[a-d]/1280 > log/61/stdout1280 2> log/61/stderr1280 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1285 ../src/curl -q --output log/21/curl1285.out --include --trace-ascii log/21/trace1285 --trace-config all --trace-time -H "Content-Length: 85" -u auser:apasswd --digest -T log/21/put1285 http://127.0.0.1:34827/1285 > log/21/stdout1285 2> log/21/stderr1285 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1230 ../src/curl -q --output log/35/curl1230.out --include --trace-ascii log/35/trace1230 --trace-config all --trace-time http://[1234:1234:1234::4ce]:43179/wanted/page/1230 -p -x 127.0.0.1:43179 > log/35/stdout1230 2> log/35/stderr1230 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1291 ../src/curl -q --output log/40/curl1291.out --include --trace-ascii log/40/trace1291 --trace-config all --trace-time -K log/40/cmd1291 --fail-early > log/40/stdout1291 2> log/40/stderr1291 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1284 ../src/curl -q --output log/55/curl1284.out --include --trace-ascii log/55/trace1284 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33071/1284 > log/55/stdout1284 2> log/55/stderr1284 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1305 ./unit/units unit1305 1305 > log/7/stdout1305 2> log/7/stderr1305 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1301 ./libtest/libtests lib1301 - > log/32/stdout1301 2> log/32/stderr1301 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1271 ../src/curl -q --output log/56/curl1271.out --include --trace-ascii log/56/trace1271 --trace-config all --trace-time http://127.0.0.1:43265/we/want/our/1271 -w @log/56/blank1271 > log/56/stdout1271 2> log/56/stderr1271 test 1261...['redirect_url' with --location and --max-redirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1261 ../src/curl -q --include --trace-ascii log/30/trace1261 --trace-config all --trace-time http://127.0.0.1:43913/we/want/our/1261 -w '%{redirect_url}\n' --location --max-redirs 0 > log/30/stdout1261 2> log/30/stderr1261 1261: stdout FAILED: --- log/30/check-expected 2025-07-18 09:41:26.056501966 +0000 +++ log/30/check-generated 2025-07-18 09:41:26.055585226 +0000 @@ -1,6 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10290002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -http://127.0.0.1:43913/we/want/our/data/10290002.txt?coolsite=yes[LF] == Contents of files in the log/30/ dir after test 1261 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10290002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] http://127.0.0.1:43913/we/want/our/data/10290002.txt?coolsite=yes[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1261 ../src/curl -q --include --trace-ascii log/30/trace1261 --trace-config all --trace-time http://127.0.0.1:43913/we/want/our/1261 -w '%{redirect_url}\n' --location --max-redirs 0 > log/30/stdout1261 2> log/30/stderr1261 === End of file commands.log === Start of file http_server.log 09:41:24.236390 ====> Client connect 09:41:24.236962 accept_connection 3 returned 4 09:41:24.237293 accept_connection 3 returned 0 09:41:24.238001 Read 93 bytes 09:41:24.238151 Process 93 bytes request 09:41:24.238240 Got request: GET /verifiedserver HTTP/1.1 09:41:24.238344 Are-we-friendly question received 09:41:24.238717 Wrote request (93 bytes) input to log/30/server.input 09:41:24.238911 Identifying ourselves as friends 09:41:24.241577 Response sent (56 bytes) and written to log/30/server.response 09:41:24.241719 special request received, no persistency 09:41:24.241791 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 1261 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind1261 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1261 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1306 ./unit/units unit1305 - > log/53/stdout1306 2> log/53/stderr1306 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1293 ../src/curl -q --output log/44/curl1293.out --include --trace-ascii log/44/trace1293 --trace-config all --trace-time http://0 http://127.0.0.1:34655/1293 -F= > log/44/stdout1293 2> log/44/stderr1293 test 1270...[Basic 'redirect_url'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1270 ../src/curl -q --include --trace-ascii log/49/trace1270 --trace-config all --trace-time http://127.0.0.1:42667/we/want/our/1270 -w '%{redirect_url}\n' -s > log/49/stdout1270 2> log/49/stderr1270 1270: stdout FAILED: --- log/49/check-expected 2025-07-18 09:41:26.150499858 +0000 +++ log/49/check-generated 2025-07-18 09:41:26.149585179 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 302 Captive Portal[CR][LF] -Server: ohlala/2000[CR][LF] -Date: Tue, 17 Dec 2019 13:08:30 GMT[CR][LF] -Cache-Control: no-cache,no-store,must-revalidate,post-check=0,pre-check=0[CR][LF] -Location: https://moo.moo.moo[CR][LF] -Content-Type: text/html; charset=utf-8[CR][LF] -X-Frame-Options: SAMEORIGIN[CR][LF] -Strict-Transport-Security: max-age=604800[CR][LF] -Content-Length: 0[CR][LF] -Connection: close[CR][LF] -[CR][LF] -https://moo.moo.moo/[LF] == Contents of files in the log/49/ dir after test 1270 === Start of file check-expected HTTP/1.1 302 Captive Portal[CR][LF] Server: ohlala/2000[CR][LF] Date: Tue, 17 Dec 2019 13:08:30 GMT[CR][LF] Cache-Control: no-cache,no-store,must-revalidate,post-check=0,pre-check=0[CR][LF] Location: https://moo.moo.moo[CR][LF] Content-Type: text/html; charset=utf-8[CR][LF] X-Frame-Options: SAMEORIGIN[CR][LF] Strict-Transport-Security: max-age=604800[CR][LF] Content-Length: 0[CR][LF] Connection: close[CR][LF] [CR][LF] https://moo.moo.moo/[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1270 ../src/curl -q --include --trace-ascii log/49/trace1270 --trace-config all --trace-time http://127.0.0.1:42667/we/want/our/1270 -w '%{redirect_url}\n' -s > log/49/stdout1270 2> log/49/stderr1270 === End of file commands.log === Start of file http_server.log 09:41:24.561765 ====> Client connect 09:41:24.562120 accept_connection 3 returned 4 09:41:24.562290 accept_connection 3 returned 0 09:41:24.562434 Read 93 bytes 09:41:24.562658 Process 93 bytes request 09:41:24.562754 Got request: GET /verifiedserver HTTP/1.1 09:41:24.562832 Are-we-friendly question received 09:41:24.563075 Wrote request (93 bytes) input to log/49/server.input 09:41:24.563331 Identifying ourselves as friends 09:41:24.564328 Response sent (56 bytes) and written to log/49/server.response 09:41:24.567593 special request received, no persistency 09:41:24.567738 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 1270 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind1270 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1270 setenv NO_PROXY = example.com test 1253...[--proxy, override NO_PROXY by --noproxy and access target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1253 ../src/curl -q --output log/54/curl1253.out --include --trace-ascii log/54/trace1253 --trace-config all --trace-time http://somewhere.example.com/1253 --proxy http://127.0.0.1:44921 --noproxy 127.0.0.1 > log/54/stdout1253 2> log/54/stderr1253 1253: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 1253 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1253 ../src/curl -q --output log/54/curl1253.out --include --trace-ascii log/54/trace1253 --trace-config all --trace-time http://somewhere.example.com/1253 --proxy http://127.0.0.1:44921 --noproxy 127.0.0.1 > log/54/stdout1253 2> log/54/stderr1253 === End of file commands.log === Start of file http_server.log 09:41:24.153221 ====> Client connect 09:41:24.153663 accept_connection 3 returned 4 09:41:24.153846 accept_connection 3 returned 0 09:41:24.153981 Read 93 bytes 09:41:24.154075 Process 93 bytes request 09:41:24.154171 Got request: GET /verifiedserver HTTP/1.1 09:41:24.154268 Are-we-friendly question received 09:41:24.154606 Wrote request (93 bytes) input to log/54/server.input 09:41:24.154853 Identifying ourselves as friends 09:41:24.155720 Response sent (56 bytes) and written to log/54/server.response 09:41:24.155840 special request received, no persistency 09:41:24.155913 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 1253 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind1253 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1253 test 1266...[HTTP GET with a single-byte HTTP/0.9 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1266 ../src/curl -q --output log/59/curl1266.out --include --trace-ascii log/59/trace1266 --trace-config all --trace-time http://127.0.0.1:43695/1266 --http0.9 > log/59/stdout1266 2> log/59/stderr1266 1266: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 1266 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1266 ../src/curl -q --output log/59/curl1266.out --include --trace-ascii log/59/trace1266 --trace-config all --trace-time http://127.0.0.1:43695/1266 --http0.9 > log/59/stdout1266 2> log/59/stderr1266 === End of file commands.log === Start of file http_server.log 09:41:24.479305 ====> Client connect 09:41:24.479776 accept_connection 3 returned 4 09:41:24.479944 accept_connection 3 returned 0 09:41:24.480086 Read 93 bytes 09:41:24.480184 Process 93 bytes request 09:41:24.480275 Got request: GET /verifiedserver HTTP/1.1 09:41:24.480349 Are-we-friendly question received 09:41:24.483989 Wrote request (93 bytes) input to log/59/server.input 09:41:24.484208 Identifying ourselves as friends 09:41:24.485130 Response sent (56 bytes) and written to log/59/server.response 09:41:24.485239 special request received, no persistency 09:41:24.485303 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd swsclose Testnum 1266 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind1266 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1266 test 1258...[HTTP, use cookies with localhost] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1258 ../src/curl -q --output log/60/curl1258.out --include --trace-ascii log/60/trace1258 --trace-config all --trace-time http://127.0.0.1:38843/we/want/1258 http://127.0.0.1:38843/we/want?hoge=fuga -b non-existing -H "Host: localhost" > log/60/stdout1258 2> log/60/stderr1258 1258: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1258 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1258 ../src/curl -q --output log/60/curl1258.out --include --trace-ascii log/60/trace1258 --trace-config all --trace-time http://127.0.0.1:38843/we/want/1258 http://127.0.0.1:38843/we/want?hoge=fuga -b non-existing -H "Host: localhost" > log/60/stdout1258 2> log/60/stderr1258 === End of file commands.log === Start of file http_server.log 09:41:24.123778 ====> Client connect 09:41:24.124284 accept_connection 3 returned 4 09:41:24.124535 accept_connection 3 returned 0 09:41:24.124908 Read 93 bytes 09:41:24.125061 Process 93 bytes request 09:41:24.125140 Got request: GET /verifiedserver HTTP/1.1 09:41:24.125206 Are-we-friendly question received 09:41:24.125545 Wrote request (93 bytes) input to log/60/server.input 09:41:24.125940 Identifying ourselves as friends 09:41:24.130773 Response sent (56 bytes) and written to log/60/server.response 09:41:24.130925 special request received, no persistency 09:41:24.131013 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1258 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1258 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The pacCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1296 ../src/curl -q --output log/50/curl1296.out --include --trace-ascii log/50/trace1296 --trace-config all --trace-time http://user%0aname:password@127.0.0.1:45651/1296 > log/50/stdout1296 2> log/50/stderr1296 kage you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1258 test 1277...[HTTP GET with both content and transfer encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1277 ../src/curl -q --output log/1/curl1277.out --include --trace-ascii log/1/trace1277 --trace-config all --trace-time http://127.0.0.1:40633/1277 --tr-encoding --compressed > log/1/stdout1277 2> log/1/stderr1277 1277: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1277 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1277 ../src/curl -q --output log/1/curl1277.out --include --trace-ascii log/1/trace1277 --trace-config all --trace-time http://127.0.0.1:40633/1277 --tr-encoding --compressed > log/1/stdout1277 2> log/1/stderr1277 === End of file commands.log === Start of file http_server.log 09:41:24.696337 ====> Client connect 09:41:24.696847 accept_connection 3 returned 4 09:41:24.697012 accept_connection 3 returned 0 09:41:24.697780 Read 93 bytes 09:41:24.697979 Process 93 bytes request 09:41:24.698095 Got request: GET /verifiedserver HTTP/1.1 09:41:24.698197 Are-we-friendly question received 09:41:24.698660 Wrote request (93 bytes) input to log/1/server.input 09:41:24.698894 Identifying ourselves as friends 09:41:24.699449 Response sent (56 bytes) and written to log/1/server.response 09:41:24.699658 special request received, no persistency 09:41:24.699749 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 1277 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind1277 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1277 * starts no server test 1303...[Curl_timeleft unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1303 ./unit/units unit1303 - > log/4/stdout1303 2> log/4/stderr1303 units returned 1, when expecting 0 1303: exit FAILED == Contents of files in the log/4/ dir after test 1303 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1303 ./unit/units unit1303 - > log/4/stdout1303 2> log/4/stderr1303 === End of file commands.log === Start of file server.cmd Testnum 1303 === End of file server.cmd === Start of file valgrind1303 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1303 * starts no server test 1305...[internal hash create/destroy testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1305 ./unit/units unit1305 1305 > log/7/stdout1305 2> log/7/stderr1305 units returned 1, when expecting 0 1305: exit FAILED == Contents of files in the log/7/ dir after test 1305 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1305 ./unit/units unit1305 1305 > log/7/stdout1305 2> log/7/stderr1305 === End of file commands.log === Start of file server.cmd Testnum 1305 === End of file server.cmd === Start of file valgrind1305 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a nCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1308 ./libtest/libtests lib1308 log/14/test-1308 > log/14/stdout1308 2> log/14/stderr1308 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1287 ../src/curl -q --output log/17/curl1287.out --include --trace-ascii log/17/trace1287 --trace-config all --trace-time -v --proxytunnel -x 127.0.0.1:46847 http://test.1287:44383/we/want/that/page/1287 > log/17/stdout1287 2> log/17/stderr1287 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1289 ../src/curl -q --output log/20/curl1289.out --include --trace-ascii log/20/trace1289 --trace-config all --trace-time http://ur%20[0-60000000000000000000 > log/20/stdout1289 2> log/20/stderr1289 on- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1305 test 1286...[HTTP GET --digest increasing nonce-count] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1286 ../src/curl -q --output log/12/curl1286.out --include --trace-ascii log/12/trace1286 --trace-config all --trace-time -u auser:apasswd --location --digest http://127.0.0.1:45579/1286 > log/12/stdout1286 2> log/12/stderr1286 1286: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 1286 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1286 ../src/curl -q --output log/12/curl1286.out --include --trace-ascii log/12/trace1286 --trace-config all --trace-time -u auser:apasswd --location --digest http://127.0.0.1:45579/1286 > log/12/stdout1286 2> log/12/stderr1286 === End of file commands.log === Start of file http_server.log 09:41:24.952234 ====> Client connect 09:41:24.952784 accept_connection 3 returned 4 09:41:24.953040 accept_connection 3 returned 0 09:41:24.953210 Read 93 bytes 09:41:24.953308 Process 93 bytes request 09:41:24.953573 Got request: GET /verifiedserver HTTP/1.1 09:41:24.953747 Are-we-friendly question received 09:41:24.954019 Wrote request (93 bytes) input to log/12/server.input 09:41:24.954201 Identifying ourselves as friends 09:41:24.955198 Response sent (56 bytes) and written to log/12/server.response 09:41:24.955370 special request received, no persistency 09:41:24.955444 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 1286 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind1286 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1286 * starts no server test 1304...[netrc parsing unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1304 ./unit/units unit1304 log/13/netrc1304 > log/13/stdout1304 2> log/13/stderr1304 units returned 1, when expecting 0 1304: exit FAILED == Contents of files in the log/13/ dir after test 1304 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1304 ./unit/units unit1304 log/13/netrc1304 > log/13/stdout1304 2> log/13/stderr1304 === End of file commands.log === Start of file netrc1304 machine example.com login admin password passwd machine curl.example.com login none password none === End of file netrc1304 === Start of file server.cmd Testnum 1304 === End of file server.cmd === Start of file valgrind1304 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1304 test 1285...[HTTP PUT --digest with user-specified Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1285 ../src/curl -q --output log/21/curl1285.out --include --trace-ascii log/21/trace1285 --trace-config all --trace-time -H "Content-Length: 85" -u auser:apasswd --digest -T log/21/put1285 http://127.0.0.1:34827/1285 > log/21/stdout1285 2> log/21/stderr1285 1285: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 1285 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1285 ../src/curl -q --output log/21/curl1285.out --include --trace-ascii log/21/trace1285 --trace-config all --trace-time -H "Content-Length: 85" -u auser:apasswd --digest -T log/21/put1285 http://127.0.0.1:34827/1285 > log/21/stdout1285 2> log/21/stderr1285 === End of file commands.log === Start of file http_server.log 09:41:24.957870 ====> Client connect 09:41:24.958162 accept_connection 3 returned 4 09:41:24.958328 accept_connection 3 returned 0 09:41:24.958861 Read 93 bytes 09:41:24.959034 Process 93 bytes request 09:41:24.959139 Got request: GET /verifiedserver HTTP/1.1 09:41:24.959230 Are-we-friendly question received 09:41:24.959569 Wrote request (93 bytes) input to log/21/server.input 09:41:24.959797 Identifying ourselves as friends 09:41:24.962750 Response sent (56 bytes) and written to log/21/server.response 09:41:24.962965 special request received, no persistency 09:41:24.963062 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file put1285 This is data we upload with PUT a second line line three four is the number of lines === End of file put1285 === Start of file server.cmd Testnum 1285 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind1285 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1285 test 1267...[HTTP GET with an invalid HTTP/1 response line start] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1267 ../src/curl -q --output log/27/curl1267.out --include --trace-ascii log/27/trace1267 --trace-config all --trace-time http://127.0.0.1:42323/1267 --http0.9 > log/27/stdout1267 2> log/27/stderr1267 1267: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 1267 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1267 ../src/curl -q --output log/27/curl1267.out --include --trace-ascii log/27/trace1267 --trace-config all --trace-time http://127.0.0.1:42323/1267 --http0.9 > log/27/stdout1267 2> log/27/stderr1267 === End of file commands.log === Start of file http_server.log 09:41:24.489098 ====> Client connect 09:41:24.489412 accept_connection 3 returned 4 09:41:24.489860 accept_connection 3 returned 0 09:41:24.490016 Read 93 bytes 09:41:24.490122 Process 93 bytes request 09:41:24.490221 Got request: GET /verifiedserver HTTP/1.1 09:41:24.490309 Are-we-friendly question received 09:41:24.496759 Wrote request (93 bytes) input to log/27/server.input 09:41:24.497005 Identifying ourselves as friends 09:41:24.498023 Response sent (56 bytes) and written to log/27/server.response 09:41:24.498247 special request received, no persistency 09:41:24.498392 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd swsclose Testnum 1267 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind1267 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1267 * starts no server test 1302...[base64 encode/decode unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1302 ./unit/units unit1302 - > log/28/stdout1302 2> log/28/stderr1302 units returned 1, when expecting 0 1302: exit FAILED == Contents of files in the log/28/ dir after test 1302 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1302 ./unit/units unit1302 - > log/28/stdout1302 2> log/28/stderr1302 === End of file commands.log === Start of file server.cmd Testnum 1302 === End of file server.cmd === Start of file valgrind1302 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1302 test 1274...[HTTP header line folding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1274 ../src/curl -q --output log/29/curl1274.out --include --trace-ascii log/29/trace1274 --trace-config all --trace-time http://127.0.0.1:36877/1274 -D log/29/out1274 > log/29/stdout1274 2> log/29/stderr1274 1274: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 1274 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1274 ../src/curl -q --output log/29/curl1274.out --include --trace-ascii log/29/trace1274 --trace-config all --trace-time http://127.0.0.1:36877/1274 -D log/29/out1274 > log/29/stdout1274 2> log/29/stderr1274 === End of file commands.log === Start of file http_server.log 09:41:24.635164 ====> Client connect 09:41:24.635822 accept_connection 3 returned 4 09:41:24.636125 accept_connection 3 returned 0 09:41:24.637095 Read 93 bytes 09:41:24.637249 Process 93 bytes request 09:41:24.637374 Got request: GET /verifiedserver HTTP/1.1 09:41:24.637573 Are-we-friendly question received 09:41:24.640598 Wrote request (93 bytes) input to log/29/server.input 09:41:24.640845 Identifying ourselves as friends 09:41:24.642689 Response sent (56 bytes) and written to log/29/server.response 09:41:24.642839 special request received, no persistency 09:41:24.642926 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 1274 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind1274 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1274 * starts no server test 1301...[curl_strequal tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1301 ./libtest/libtests lib1301 - > log/32/stdout1301 2> log/32/stderr1301 libtests returned 1, when expecting 0 1301: exit FAILED == Contents of files in the log/32/ dir after test 1301 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1301 ./libtest/libtests lib1301 - > log/32/stdout1301 2> log/32/stderr1301 === End of file commands.log === Start of file server.cmd Testnum 1301 === End of file server.cmd === Start of file valgrind1301 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1301 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/35/server/http_ipv6_server.pid" --logfile "log/35/http_ipv6_server.log" --logdir "log/35" --portfile log/35/server/http_ipv6_server.port --config log/35/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 135970 port 44055 * pid http-ipv6 => 135970 135970 test 1230...[HTTP CONNECT to IPv6 numerical address] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1230 ../src/curl -q --output log/35/curl1230.out --include --trace-ascii log/35/trace1230 --trace-config all --trace-time http://[1234:1234:1234::4ce]:43179/wanted/page/1230 -p -x 127.0.0.1:43179 > log/35/stdout1230 2> log/35/stderr1230 1230: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 1230 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1230 ../src/curl -q --output log/35/curl1230.out --include --trace-ascii log/35/trace1230 --trace-config all --trace-time http://[1234:1234:1234::4ce]:43179/wanted/page/1230 -p -x 127.0.0.1:43179 > log/35/stdout1230 2> log/35/stderr1230 === End of file commands.log === Start of file http2_server.log 09:41:23.646173 ====> Client connect 09:41:23.646602 accept_connection 3 returned 4 09:41:23.646816 accept_connection 3 returned 0 09:41:23.646958 Read 93 bytes 09:41:23.647048 Process 93 bytes request 09:41:23.647139 Got request: GET /verifiedserver HTTP/1.1 09:41:23.647211 Are-we-friendly question received 09:41:23.647407 Wrote request (93 bytes) input to log/35/proxy.input 09:41:23.649761 Identifying ourselves as friends 09:41:23.650984 Response sent (57 bytes) and written to log/35/proxy.response 09:41:23.651096 special request received, no persistency 09:41:23.651168 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:41019... * Connected to 127.0.0.1 (127.0.0.1) port 41019 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41019 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 109407 === End of file http2_verify.out === Start of file http_ipv6_server.log 09:41:23.952988 Running HTTP IPv6 version on port 44055 09:41:23.953802 Wrote pid 135970 to log/35/server/http_ipv6_server.pid 09:41:23.954099 Wrote port 44055 to log/35/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file http_server.log 09:41:24.997591 ====> Client connect 09:41:24.997961 accept_connection 3 returned 4 09:41:24.998143 accept_connection 3 returned 0 09:41:24.998285 Read 93 bytes 09:41:24.998387 Process 93 bytes request 09:41:24.998573 Got request: GET /verifiedserver HTTP/1.1 09:41:24.998695 Are-we-friendly question received 09:41:24.998923 Wrote request (93 bytes) input to log/35/server.input 09:41:24.999116 Identifying ourselves as friends 09:41:25.003714 Response sent (56 bytes) and written to log/35/server.response 09:41:25.003845 special request received, no persistency 09:41:25.003924 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 109407 === End of file proxy.response === Start of file server.cmd Testnum 1230 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind1230 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1230 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/37/server/http_ipv6_server.pid" --logfile "log/37/http_ipv6_server.log" --logdir "log/37" --portfile log/37/server/http_ipv6_server.port --config log/37/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 136494 port 38437 * pid http-ipv6 => 136494 136494 setenv http_proxy = http://127.0.0.1:37551 setenv NO_PROXY = ::1 test 1265...[NO_PROXY with IPv6 numerical address] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1265 ../src/curl -q --output log/37/curl1265.out --include --trace-ascii log/37/trace1265 --trace-config all --trace-time http://[::1]:38437/1265 > log/37/stdout1265 2> log/37/stderr1265 1265: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 1265 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1265 ../src/curl -q --output log/37/curl1265.out --include --trace-ascii log/37/trace1265 --trace-config all --trace-time http://[::1]:38437/1265 > log/37/stdout1265 2> log/37/stderr1265 === End of file commands.log === Start of file http_ipv6_server.log 09:41:24.485982 Running HTTP IPv6 version on port 38437 09:41:24.489040 Wrote pid 136494 to log/37/server/http_ipv6_server.pid 09:41:24.489412 Wrote port 38437 to log/37/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1265 === End of file server.cmd === Start of file valgrind1265 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1265 * starts no server prechecked /usr/bin/perl -e 'for(1 .. 1000) { printf("upload-file=log/40/upload-this\nurl=htttttp://non-existing-host.haxx.se/upload/1291\n", $_);}' > log/40/cmd1291; test 1291...[Attempt to upload 1000 files but fail immediately] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1291 ../src/curl -q --output log/40/curl1291.out --include --trace-ascii log/40/trace1291 --trace-config all --trace-time -K log/40/cmd1291 --fail-early > log/40/stdout1291 2> log/40/stderr1291 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/40/ dir after test 1291 === Start of file cmd1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this === File too long: 599 lines omitted here upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/40/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 === End of file cmd1291 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1291 ../src/curl -q --output log/40/curl1291.out --include --trace-ascii log/40/trace1291 --trace-config all --trace-time -K log/40/cmd1291 --fail-early > log/40/stdout1291 2> log/40/stderr1291 === End of file commands.log === Start of file server.cmd Testnum 1291 === End of file server.cmd === Start of file upload-this XXXXXXXx === End of file upload-this === Start of file valgrind1291 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1291 test 1293...[Multipart formpost to two URLs, the first failing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1293 ../src/curl -q --output log/44/curl1293.out --include --trace-ascii log/44/trace1293 --trace-config all --trace-time http://0 http://127.0.0.1:34655/1293 -F= > log/44/stdout1293 2> log/44/stderr1293 1293: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 1293 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1293 ../src/curl -q --output log/44/curl1293.out --include --trace-ascii log/44/trace1293 --trace-config all --trace-time http://0 http://127.0.0.1:34655/1293 -F= > log/44/stdout1293 2> log/44/stderr1293 === End of file commands.log === Start of file http_server.log 09:41:25.265437 ====> Client connect 09:41:25.265870 accept_connection 3 returned 4 09:41:25.266031 accept_connection 3 returned 0 09:41:25.266156 Read 93 bytes 09:41:25.266249 Process 93 bytes request 09:41:25.266333 Got request: GET /verifiedserver HTTP/1.1 09:41:25.266409 Are-we-friendly question received 09:41:25.266781 Wrote request (93 bytes) input to log/44/server.input 09:41:25.266970 Identifying ourselves as friends 09:41:25.267790 Response sent (56 bytes) and written to log/44/server.response 09:41:25.267931 special request received, no persistency 09:41:25.268014 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 1293 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind1293 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1293 * starts no server test 1300...[llist unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1300 ./unit/units unit1300 - > log/46/stdout1300 2> log/46/stderr1300 units returned 1, when expecting 0 1300: exit FAILED == Contents of files in the log/46/ dir after test 1300 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1300 ./unit/units unit1300 - > log/46/stdout1300 2> log/46/stderr1300 === End of file commands.log === Start of file server.cmd Testnum 1300 === End of file server.cmd === Start of file valgrind1300 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1300 * starts no server test 1306...[internal hash create/add/destroy testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1306 ./unit/units unit1305 - > log/53/stdout1306 2> log/53/stderr1306 units returned 1, when expecting 0 1306: exit FAILED == Contents of files in the log/53/ dir after test 1306 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1306 ./unit/units unit1305 - > log/53/stdout1306 2> log/53/stderr1306 === End of file commands.log === Start of file server.cmd Testnum 1306 === End of file server.cmd === Start of file valgrind1306 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1306 test 1284...[HTTP POST --digest with user-specified Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1284 ../src/curl -q --output log/55/curl1284.out --include --trace-ascii log/55/trace1284 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33071/1284 > log/55/stdout1284 2> log/55/stderr1284 1284: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 1284 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1284 ../src/curl -q --output log/55/curl1284.out --include --trace-ascii log/55/trace1284 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33071/1284 > log/55/stdout1284 2> log/55/stderr1284 === End of file commands.log === Start of file http_server.log 09:41:24.926942 ====> Client connect 09:41:24.927255 accept_connection 3 returned 4 09:41:24.927428 accept_connection 3 returned 0 09:41:24.928158 Read 93 bytes 09:41:24.928294 Process 93 bytes request 09:41:24.928372 Got request: GET /verifiedserveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1292 ../src/curl -q --output log/47/curl1292.out --include --trace-ascii log/47/trace1292 --trace-config all --trace-time -H "Host;" -H "Accept;" http://127.0.0.1:41103/1292 > log/47/stdout1292 2> log/47/stderr1292 r HTTP/1.1 09:41:24.928446 Are-we-friendly question received 09:41:24.928789 Wrote request (93 bytes) input to log/55/server.input 09:41:24.928971 Identifying ourselves as friends 09:41:24.929587 Response sent (56 bytes) and written to log/55/server.response 09:41:24.929702 special request received, no persistency 09:41:24.929771 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 1284 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind1284 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1284 test 1271...[--write-out from file with empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1271 ../src/curl -q --output log/56/curl1271.out --include --trace-ascii log/56/trace1271 --trace-config all --trace-time http://127.0.0.1:43265/we/want/our/1271 -w @log/56/blank1271 > log/56/stdout1271 2> log/56/stderr1271 1271: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 1271 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1271 ../src/curl -q --output log/56/curl1271.out --include --trace-ascii log/56/trace1271 --trace-config all --trace-time http://127.0.0.1:43265/we/want/our/1271 -w @log/56/blank1271 > log/56/stdout1271 2> log/56/stderr1271 === End of file commands.log === Start of file http_server.log 09:41:24.943878 ====> Client connect 09:41:24.944298 accept_connection 3 returned 4 09:41:24.944669 accept_connection 3 returned 0 09:41:24.944903 Read 93 bytes 09:41:24.945000 Process 93 bytes request 09:41:24.945084 Got request: GET /verifiedserver HTTP/1.1 09:41:24.945165 Are-we-friendly question received 09:41:24.945437 Wrote request (93 bytes) input to log/56/server.input 09:41:24.945844 Identifying ourselves as friends 09:41:24.952046 Response sent (56 bytes) and written to log/56/server.response 09:41:24.952246 special request received, no persistency 09:41:24.952314 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 1271 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind1271 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1271 test 1282...[FTP with 633 response before gss initialized] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1282 ../src/curl -q --output log/58/curl1282.out --include --trace-ascii log/58/trace1282 --trace-config all --trace-time ftp://127.0.0.1:38901/1282 > log/58/stdout1282 2> log/58/stderr1282 1282: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 1282 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1282 ../src/curl -q --output log/58/curl1282.out --include --trace-ascii log/58/trace1282 --trace-config all --trace-time ftp://127.0.0.1:38901/1282 > log/58/stdout1282 2> log/58/stderr1282 === End of file commands.log === Start of file ftp_server.log 09:41:24.505897 ====> Client connect 09:41:24.507380 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:24.512428 < "USER anonymous" 09:41:24.513526 > "331 We are happy you popped in![CR][LF]" 09:41:24.515183 < "PASS ftp@example.com" 09:41:24.515643 > "230 Welcome you silly person[CR][LF]" 09:41:24.519961 < "PWD" 09:41:24.523925 > "257 "/" is current directory[CR][LF]" 09:41:24.525990 < "EPSV" 09:41:24.526264 ====> Passive DATA channel requested by client 09:41:24.526420 DATA sockfilt for passive data channel starting... 09:41:24.578554 DATA sockfilt for passive data channel started (pid 138274) 09:41:24.583379 DATA sockfilt for passive data channel listens on port 43889 09:41:24.583957 > "229 Entering Passive Mode (|||43889|)[LF]" 09:41:24.584548 Client has been notified that DATA conn will be accepted on port 43889 09:41:24.591019 Client connects to port 43889 09:41:24.591430 ====> Client established passive DATA connection on port 43889 09:41:24.595647 < "TYPE I" 09:41:24.596368 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:24.601366 < "SIZE verifiedserver" 09:41:24.606188 > "213 17[CR][LF]" 09:41:24.608660 < "RETR verifiedserver" 09:41:24.609138 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:24.609903 =====> Closing passive DATA connection... 09:41:24.610129 Server disconnects passive DATA connection 09:41:24.613486 Server disconnected passive DATA connection 09:41:24.613838 DATA sockfilt for passive data channel quits (pid 138274) 09:41:24.620276 DATA sockfilt for passive data channel quit (pid 138274) 09:41:24.620545 =====> Closed passive DATA connection 09:41:24.620943 > "226 File transfer complete[CR][LF]" 09:41:24.655232 < "QUIT" 09:41:24.656898 > "221 bye bye baby[CR][LF]" 09:41:24.657484 MAIN sockfilt said DISC 09:41:24.657834 ====> Client disconnected 09:41:24.658341 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:24.759019 ====> Client connect 09:41:24.761111 Received DATA (on stdin) 09:41:24.761307 > 160 bytes data, server => client 09:41:24.761700 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:24.761810 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:24.761934 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:24.765033 < 16 bytes data, client => server 09:41:24.765183 'USER anonymous\r\n' 09:41:24.766570 Received DATA (on stdin) 09:41:24.766713 > 33 bytes data, server => client 09:41:24.766873 '331 We are happy you popped in!\r\n' 09:41:24.768231 < 22 bytes data, client => server 09:41:24.768381 'PASS ftp@example.com\r\n' 09:41:24.770568 Received DATA (on stdin) 09:41:24.770727 > 30 bytes data, server => client 09:41:24.770803 '230 Welcome you silly person\r\n' 09:41:24.772893 < 5 bytes data, client => server 09:41:24.773033 'PWD\r\n' 09:41:24.774037 Received DATA (on stdin) 09:41:24.774169 > 30 bytes data, server => client 09:41:24.777976 '257 "/" is current directory\r\n' 09:41:24.779072 < 6 bytes data, client => server 09:41:24.779218 'EPSV\r\n' 09:41:24.838581 Received DATA (on stdin) 09:41:24.838727 > 38 bytes data, server => client 09:41:24.838824 '229 Entering Passive Mode (|||43889|)\n' 09:41:24.844325 < 8 bytes data, client => server 09:41:24.844447 'TYPE I\r\n' 09:41:24.851700 Received DATA (on stdin) 09:41:24.851865 > 33 bytes data, server => client 09:41:24.851950 '200 I modify TYPE as you wanted\r\n' 09:41:24.853633 < 21 bytes data, client => server 09:41:24.853862 'SIZE verifiedserver\r\n' 09:41:24.860396 Received DATA (on stdin) 09:41:24.860766 > 8 bytes data, server => client 09:41:24.860904 '213 17\r\n' 09:41:24.865050 < 21 bytes data, client => server 09:41:24.865177 'RETR verifiedserver\r\n' 09:41:24.865266 Received DATA (on stdin) 09:41:24.865341 > 29 bytes data, server => client 09:41:24.865410 '150 Binary junk (17 bytes).\r\n' 09:41:24.876570 Received DATA (on stdin) 09:41:24.876727 > 28 bytes data, server => client 09:41:24.876821 '226 File transfer complete\r\n' 09:41:24.907756 < 6 bytes data, client => server 09:41:24.907935 'QUIT\r\n' 09:41:24.909295 Received DATA (on stdin) 09:41:24.909434 > 18 bytes data, server => client 09:41:24.909677 '221 bye bye baby\r\n' 09:41:24.910974 ====> Client disconnect 09:41:24.913555 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:24.828852 Running IPv4 version 09:41:24.829845 Listening on port 43889 09:41:24.831816 Wrote pid 138274 to log/58/server/ftp_sockdata.pid 09:41:24.831980 Received PING (on stdin) 09:41:24.834696 Received PORT (on stdin) 09:41:24.844013 ====> Client connect 09:41:24.864075 Received DATA (on stdin) 09:41:24.864205 > 17 bytes data, server => client 09:41:24.864290 'WE ROOLZ: 77973\r\n' 09:41:24.864642 Received DISC (on stdin) 09:41:24.864800 ====> Client forcibly disconnected 09:41:24.870582 Received QUIT (on stdin) 09:41:24.870723 quits 09:41:24.871089 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 633 XXXXXXXX\x00\x00XXXXXXXX Testnum 1282 === End of file server.cmd === Start of file valgrind1282 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1282 test 1280...[simple [a-d] globbing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1280 ../src/curl -q --output log/61/curl1280.out --include --trace-ascii log/61/trace1280 --trace-config all --trace-time http://127.0.0.1:44381/[a-d]/1280 > log/61/stdout1280 2> log/61/stderr1280 1280: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1280 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1280 ../src/curl -q --output log/61/curl1280.out --include --trace-ascii log/61/trace1280 --trace-config all --trace-time http://127.0.0.1:44381/[a-d]/1280 > log/61/stdout1280 2> log/61/stderr1280 === End of file commands.log === Start of file http_server.log 09:41:24.757730 ====> Client connect 09:41:24.758087 accept_connection 3 returned 4 09:41:24.758275 accept_connection 3 returned 0 09:41:24.758408 Read 93 bytes 09:41:24.758589 Process 93 bytes request 09:41:24.758707 Got request: GET /verifiedserver HTTP/1.1 09:41:24.758799 Are-we-friendly question received 09:41:24.759024 Wrote request (93 bytes) input to log/61/server.input 09:41:24.759218 Identifying ourselves as friends 09:41:24.760012 Response sent (56 bytes) and written to log/61/server.response 09:41:24.760119 special request received, no persistency 09:41:24.760188 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 1280 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind1280 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1280 test 1290...[Verify URL globbing ignores []] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1290 ../src/curl -q --output log/62/curl1290.out --include --trace-ascii log/62/trace1290 --trace-config all --trace-time "http://127.0.0.1:38899/we/want/[]/page/1290" > log/62/stdout1290 2> log/62/stderr1290 1290: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1290 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1290 ../src/curl -q --output log/62/curl1290.out --include --trace-ascii log/62/trace1290 --trace-config all --trace-time "http://127.0.0.1:38899/we/want/[]/page/1290" > log/62/stdout1290 2> log/62/stderr1290 === End of file commands.log === Start of file http_server.log 09:41:25.187755 ====> Client connect 09:41:25.188132 accept_connection 3 returned 4 09:41:25.188308 accept_connection 3 returned 0 09:41:25.188450 Read 93 bytes 09:41:25.188640 Process 93 bytes request 09:41:25.188742 Got request: GET /verifiedserver HTTP/1.1 09:41:25.188834 Are-we-friendly question received 09:41:25.189080 Wrote request (93 bytes) input to log/62/server.input 09:41:25.189260 Identifying ourselves as friends 09:41:25.190988 Response sent (56 bytes) and written to log/62/server.response 09:41:25.191107 special request received, no persistency 09:41:25.191183 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1290 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1290 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1290 * starts no server test 1308...[formpost tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1308 ./libtest/libtests lib1308 log/14/test-1308 > log/14/stdout1308 2> log/14/stderr1308 libtests returned 1, when expecting 0 1308: exit FAILED == Contents of files in the log/14/ dir after test 1308 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1308 ./libtest/libtests lib1308 log/14/test-1308 > log/14/stdout1308 2> log/14/stderr1308 === End of file commands.log === Start of file server.cmd Testnum 1308 === End of file server.cmd === Start of file test-1308 Piece of the file that is to uploaded as a formpost === End of file test-1308 === Start of file valgrind1308 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1308 test 1287...[HTTP over proxy-tunnel ignore TE and CL in CONNECT 2xx responses] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1287 ../src/curl -q --output log/17/curl1287.out --include --trace-ascii log/17/trace1287 --trace-config all --trace-time -v --proxytunnel -x 127.0.0.1:46847 http://test.1287:44383/we/want/that/page/1287 > log/17/stdout1287 2> log/17/stderr1287 1287: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1287 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1287 ../src/curl -q --output log/17/curl1287.out --include --trace-ascii log/17/trace1287 --trace-config all --trace-time -v --proxytunnel -x 127.0.0.1:46847 http://test.1287:44383/we/want/that/page/1287 > log/17/stdout1287 2> log/17/stderr1287 === End of file commands.log === Start of file http2_server.log 09:41:25.543953 ====> Client connect 09:41:25.544276 accept_connection 3 returned 4 09:41:25.544445 accept_connection 3 returned 0 09:41:25.544784 Read 93 bytes 09:41:25.544885 Process 93 bytes request 09:41:25.544987 Got request: GET /verifiedserver HTTP/1.1 09:41:25.545080 Are-we-friendly question received 09:41:25.545326 Wrote request (93 bytes) input to log/17/proxy.input 09:41:25.545632 Identifying ourselves as friends 09:41:25.546533 Response sent (56 bytes) and written to log/17/proxy.response 09:41:25.546679 special request received, no persistency 09:41:25.546769 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:46847... * Connected to 127.0.0.1 (127.0.0.1) port 46847 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46847 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 77835 === End of file http2_verify.out === Start of file http_server.log 09:41:25.306434 ====> Client connect 09:41:25.306910 accept_connection 3 returned 4 09:41:25.307068 accept_connection 3 returned 0 09:41:25.307195 Read 93 bytes 09:41:25.307278 Process 93 bytes request 09:41:25.307356 Got request: GET /verifiedserver HTTP/1.1 09:41:25.307421 Are-we-friendly question received 09:41:25.307760 Wrote request (93 bytes) input to log/17/server.input 09:41:25.307942 Identifying ourselves as friends 09:41:25.312734 Response sent (56 bytes) and written to log/17/server.response 09:41:25.312853 special request received, no persistency 09:41:25.312924 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77835 === End of file proxy.response === Start of file server.cmd Testnum 1287 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind1287 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1287 test 1289...[globbing with overflow and bad syntax] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1289 ../src/curl -q --output log/20/curl1289.out --include --trace-ascii log/20/trace1289 --trace-config all --trace-time http://ur%20[0-60000000000000000000 > log/20/stdout1289 2> log/20/stderr1289 curl returned 1, when expecting 3 1289: exit FAILED == Contents of files in the log/20/ dir after test 1289 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1289 ../src/curl -q --output log/20/curl1289.out --include --trace-ascii log/20/trace1289 --trace-config all --trace-time http://ur%20[0-60000000000000000000 > log/20/stdout1289 2> log/20/stderr1289 === End of file commands.log === Start of file http_server.log 09:41:25.486095 ====> Client connect 09:41:25.486439 accept_connection 3 returned 4 09:41:25.486778 accept_connection 3 returned 0 09:41:25.486911 Read 93 bytes 09:41:25.486994 Process 93 bytes request 09:41:25.487090 Got request: GET /verifiedserver HTTP/1.1 09:41:25.487170 Are-we-friendly question received 09:41:25.487368 Wrote request (93 bytes) input to log/20/server.input 09:41:25.489703 Identifying ourselves as friends 09:41:25.490566 Response sent (56 bytes) and written to log/20/server.response 09:41:25.490685 special request received, no persistency 09:41:25.490759 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 1289 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind1289 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1289 test 1292...[Replaced internal headers with a blank one] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1292 ../src/curl -q --output log/47/curl1292.out --include --trace-ascii log/47/trace1292 --trace-config all --trace-time -H "Host;" -H "Accept;" http://127.0.0.1:41103/1292 > log/47/stdout1292 2> log/47/stderr1292 1292: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1292 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1292 ../src/curl -q --output log/47/curl1292.out --include --trace-ascii log/47/trace1292 --trace-config all --trace-time -H "Host;" -H "Accept;" http://127.0.0.1:41103/1292 > log/47/stdout1292 2> log/47/stderr1292 === End of file commands.log === Start of file http_server.log 09:41:25.562228 ====> Client connect 09:41:25.562763 accept_connection 3 returned 4 09:41:25.562939 accept_connection 3 returned 0 09:41:25.563094 Read 93 bytes 09:41:25.563197 Process 93 bytes request 09:41:25.563294 Got request: GET /verifiedserver HTTP/1.1 09:41:25.563379 Are-we-friendly question received 09:41:25.563714 Wrote request (93 bytes) input to log/47/server.input 09:41:25.563945 Identifying ourselves as friends 09:41:25.568736 Response sent (56 bytes) and written to log/47/server.response 09:41:25.568884 special request received, no persistency 09:41:25.568970 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 1292 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind1292 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1292 test 1296...[HTTP URL with %0a in name part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1296 ../src/curl -q --output log/50/curl1296.out --include --trace-ascii log/50/trace1296 --trace-config all --trace-time http://user%0aname:password@127.0.0.1:45651/1296 > log/50/stdout1296 2> log/50/stderr1296 1296: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 1296 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1296 ../src/curl -q --output log/50/curl1296.out --include --trace-ascii log/50/trace1296 --trace-config all --trace-time http://user%0aname:password@127.0.0.1:45651/1296 > log/50/stdout1296 2> log/50/stderr1296 === End of file commands.log === Start of file http_server.log 09:41:25.446403 ====> Client connect 09:41:25.446907 accept_connection 3 returned 4 09:41:25.447088 accept_connection 3 returned 0 09:41:25.450982 Read 93 bytes 09:41:25.451159 Process 93 bytes request 09:41:25.451271 Got request: GET /verifiedserver HTTP/1.1 09:41:25.451361 Are-we-friendly question received 09:41:25.451721 Wrote request (93 bytes) input to log/50/server.input 09:41:25.451943 Identifying ourselves as friends 09:41:25.459084 Response sent (56 bytes) and written to log/50/server.response 09:41:25.459236 special request received, no persistency 09:41:25.459325 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 1296 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind1296 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On DeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1298 ../src/curl -q --output log/38/curl1298.out --include --trace-ascii log/38/trace1298 --trace-config all --trace-time --request-target "XXX" "http://127.0.0.1:33511/" -H "Testno: 1298" > log/38/stdout1298 2> log/38/stderr1298 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1299 ../src/curl -q --output log/33/curl1299.out --include --trace-ascii log/33/trace1299 --trace-config all --trace-time --request-target '*' -X OPTIONS http://127.0.0.1:36559/ -H "Testno: 1299" > log/33/stdout1299 2> log/33/stderr1299 bian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1296 test 1298...[HTTP GET special path with --request-target] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1298 ../src/curl -q --output log/38/curl1298.out --include --trace-ascii log/38/trace1298 --trace-config all --trace-time --request-target "XXX" "http://127.0.0.1:33511/" -H "Testno: 1298" > log/38/stdout1298 2> log/38/stderr1298 1298: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1298 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1298 ../src/curl -q --output log/38/curl1298.out --include --trace-ascii log/38/trace1298 --trace-config all --trace-time --request-target "XXX" "http://127.0.0.1:33511/" -H "Testno: 1298" > log/38/stdout1298 2> log/38/stderr1298 === End of file commands.log === Start of file http_server.log 09:41:25.696874 ====> Client connect 09:41:25.697204 accept_connection 3 returned 4 09:41:25.697404 accept_connection 3 returned 0 09:41:25.697740 Read 93 bytes 09:41:25.697875 Process 93 bytes request 09:41:25.697987 Got request: GET /verifiedserver HTTP/1.1 09:41:25.698078 Are-we-friendly question received 09:41:25.698316 Wrote request (93 bytes) input to log/38/server.input 09:41:25.698593 Identifying ourselves as friends 09:41:25.699367 Response sent (56 bytes) and written to log/38/server.response 09:41:25.699562 special request received, no persistency 09:41:25.699633 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1298 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1298 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1298 test 1299...[Send "OPTIONS *" with --request-target] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1299 ../src/curl -q --output log/33/curl1299.out --include --trace-ascii log/33/trace1299 --trace-config all --trace-time --request-target '*' -X OPTIONS http://127.0.0.1:36559/ -H "Testno: 1299" > log/33/stdout1299 2> log/33/stderr1299 1299: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 1299 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1299 ../src/curl -q --output log/33/curl1299.out --include --trace-ascii log/33/trace1299 --trace-config all --trace-time --request-target '*' -X OPTIONS http://127.0.0.1:36559/ -H "Testno: 1299" > log/33/stdout1299 2> log/33/stderr1299 === End of file commands.log === Start of file http_server.log 09:41:25.712137 ====> Client connect 09:41:25.712659 accept_connection 3 returned 4 09:41:25.712991 accept_connection 3 returned 0 09:41:25.719677 Read 93 bytes 09:41:25.719846 Process 93 bytes request 09:41:25.719932 Got request: GET /verifiedserver HTTP/1.1 09:41:25.720009 Are-we-friendly question received 09:41:25.720243 Wrote request (93 bytes) input to log/33/server.input 09:41:25.720433 Identifying ourselves as friends 09:41:25.723127 Response sent (56 bytes) and written to log/33/server.response 09:41:25.723263 special request received, no persistency 09:41:25.723328 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 1299 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind1299 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (eCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1288 ../src/curl -q --include --trace-ascii log/31/trace1288 --trace-config all --trace-time --proxytunnel --suppress-connect-headers --dump-header - --include --write-out "\nCONNECT CODE: %{http_connect}\nRECEIVED HEADER BYTE TOTAL: %{size_header}\n" --proxy 127.0.0.1:37997 http://127.0.0.1:45557/we/want/that/page/1288 > log/31/stdout1288 2> log/31/stderr1288 .g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1299 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1310 ../src/curl -q --trace-ascii log/64/trace1310 --trace-config all --trace-time http://127.0.0.1:33073/junk -J -O --show-headers --output-dir log/64 > log/64/stdout1310 2> log/64/stderr1310 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/31/server/http2_server.pid" --logfile "log/31/http2_server.log" --logdir "log/31" --portfile log/31/server/http2_server.port --config log/31/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 138836 port 37997 * pid http-proxy => 138836 138836 test 1288...[Suppress proxy CONNECT response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1288 ../src/curl -q --include --trace-ascii log/31/trace1288 --trace-config all --trace-time --proxytunnel --suppress-connect-headers --dump-header - --include --write-out "\nCONNECT CODE: %{http_connect}\nRECEIVED HEADER BYTE TOTAL: %{size_header}\n" --proxy 127.0.0.1:37997 http://127.0.0.1:45557/we/want/that/page/1288 > log/31/stdout1288 2> log/31/stderr1288 1288: stdout FAILED: --- log/31/check-expected 2025-07-18 09:41:26.871738773 +0000 +++ log/31/check-generated 2025-07-18 09:41:26.870584814 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 9[CR][LF] -Content-Length: 9[CR][LF] -Connection: keep-alive[CR][LF] -Connection: keep-alive[CR][LF] -[CR][LF] -[CR][LF] -contents[LF] -[LF] -CONNECT CODE: 200[LF] -RECEIVED HEADER BYTE TOTAL: 231[LF] == Contents of files in the log/31/ dir after test 1288 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 9[CR][LF] Content-Length: 9[CR][LF] Connection: keep-alive[CR][LF] Connection: keep-alive[CR][LF] [CR][LF] [CR][LF] contents[LF] [LF] CONNECT CODE: 200[LF] RECEIVED HEADER BYTE TOTAL: 231[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1288 ../src/curl -q --include --trace-ascii log/31/trace1288 --trace-config all --trace-time --proxytunnel --suppress-connect-headers --dump-header - --include --write-out "\nCONNECT CODE: %{http_connect}\nRECEIVED HEADER BYTE TOTAL: %{size_header}\n" --proxy 127.0.0.1:37997 http://127.0.0.1:45557/we/want/that/page/1288 > log/31/stdout1288 2> log/31/stderr1288 === End of file commands.log === Start of file http2_server.log 09:41:25.525211 Run as proxy, CONNECT to host 127.0.0.1 09:41:25.526441 Running HTTP IPv4 version on port 37997 09:41:25.527022 Wrote pid 138836 to log/31/server/http2_server.pid 09:41:25.527386 Wrote port 37997 to log/31/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:25.171026 ====> Client connect 09:41:25.171359 accept_connection 3 returned 4 09:41:25.171685 accept_connection 3 returned 0 09:41:25.171865 Read 93 bytes 09:41:25.171966 Process 93 bytes request 09:41:25.172071 Got request: GET /verifiedserver HTTP/1.1 09:41:25.172162 Are-we-friendly question received 09:41:25.172693 Wrote request (93 bytes) input to log/31/server.input 09:41:25.172951 Identifying ourselves as friends 09:41:25.175875 Response sent (56 bytes) and written to log/31/server.response 09:41:25.176007 special request received, no persistency 09:41:25.176090 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 1288 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1288 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1288 test 1310...[HTTP GET with -J + --show-headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1310 ../src/curl -q --trace-ascii log/64/trace1310 --trace-config all --trace-time http://127.0.0.1:33073/junk -J -O --show-headers --output-dir log/64 > log/64/stdout1310 2> log/64/stderr1310 1310: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1310 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1310 ../src/curl -q --trace-ascii log/64/trace1310 --trace-config all --trace-time http://127.0.0.1:33073/junk -J -O --show-headers --output-dir log/64 > log/64/stdout1310 2> log/64/stderr1310 === End of file commands.log === Start of file http_server.log 09:41:26.353288 ====> Client connect 09:41:26.353772 accept_connection 3 returned 4 09:41:26.353956 accept_connection 3 returned 0 09:41:26.354951 Read 93 bytes 09:41:26.355128 Process 93 bytes request 09:41:26.355224 Got request: GET /verifiedserver HTTP/1.1 09:41:26.355313 Are-we-friendly question received 09:41:26.355667 Wrote request (93 bytes) input to log/64/server.input 09:41:26.355886 Identifying ourselves as friends 09:41:26.357698 Response sent (56 bytes) and written to log/64/server.response 09:41:26.357821 special request received, no persistency 09:41:26.357889 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < CoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1311 ../src/curl -q --trace-ascii log/60/trace1311 --trace-config all --trace-time http://127.0.0.1:38843/1311 -J -O --output-dir log/60 > log/60/stdout1311 2> log/60/stderr1311 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1297 ../src/curl -q --output log/51/curl1297.out --include --trace-ascii log/51/trace1297 --trace-config all --trace-time --proxytunnel --proxy 127.0.0.1:41197 http://127.0.0.1:34903/we/want/that/page/1297 > log/51/stdout1297 2> log/51/stderr1297 ntent-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1310 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1310 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1310 test 1311...[HTTP GET with -J and Content-Disposition] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1311 ../src/curl -q --trace-ascii log/60/trace1311 --trace-config all --trace-time http://127.0.0.1:38843/1311 -J -O --output-dir log/60 > log/60/stdout1311 2> log/60/stderr1311 1311: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1311 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1311 ../src/curl -q --trace-ascii log/60/trace1311 --trace-config all --trace-time http://127.0.0.1:38843/1311 -J -O --output-dir log/60 > log/60/stdout1311 2> log/60/stderr1311 === End of file commands.log === Start of file http_server.log 09:41:26.719614 ====> Client connect 09:41:26.719923 accept_connection 3 returned 4 09:41:26.720065 accept_connection 3 returned 0 09:41:26.720190 Read 93 bytes 09:41:26.720270 Process 93 bytes request 09:41:26.720345 Got request: GET /verifiedserver HTTP/1.1 09:41:26.720430 Are-we-friendly question received 09:41:26.720738 Wrote request (93 bytes) input to log/60/server.input 09:41:26.720912 Identifying ourselves as friends 09:41:26.723808 Response sent (56 bytes) and written to log/60/server.response 09:41:26.723949 special request received, no persistency 09:41:26.724021 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1311 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1311 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1311 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/51/server/http2_server.pid" --logfile "log/51/http2_server.log" --logdir "log/51" --portfile log/51/server/http2_server.port --config log/51/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 139503 port 41197 * pid http-proxy => 139503 139503 test 1297...[CONNECT to peer that returns nothing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1297 ../src/curl -q --output log/51/curl1297.out --include --trace-ascii log/51/trace1297 --trace-config all --trace-time --proxytunnel --proxy 127.0.0.1:41197 http://127.0.0.1:34903/we/want/that/page/1297 > log/51/stdout1297 2> log/51/stderr1297 1297: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 1297 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1297 ../src/curl -q --output log/51/curl1297.out --include --trace-ascii log/51/trace1297 --trace-config all --trace-time --proxytunnel --proxy 127.0.0.1:41197 http://127.0.0.1:34903/we/want/that/page/1297 > log/51/stdout1297 2> log/51/stderr1297 === End of file commands.log === Start of file http2_server.log 09:41:25.866084 Run as proxy, CONNECT to host 127.0.0.1 09:41:25.867190 Running HTTP IPv4 version on port 41197 09:41:25.867809 Wrote pid 139503 to log/51/server/http2_server.pid 09:41:25.868245 Wrote port 41197 to log/51/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:25.578964 ====> Client connect 09:41:25.579276 accept_connection 3 returned 4 09:41:25.579453 accept_connection 3 returned 0 09:41:25.579751 Read 93 bytes 09:41:25.579849 Process 93 bytes request 09:41:25.579934 Got request: GET /verifiedserver HTTP/1.1 09:41:25.580016 Are-we-friendly question received 09:41:25.580258 Wrote request (93 bytes) input to log/51/server.input 09:41:25.580446 Identifying ourselves as friends 09:41:25.581230 Response sent (56 bytes) and written to log/51/server.response 09:41:25.581346 special request rCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1323 ./unit/units unit1323 - > log/53/stdout1323 2> log/53/stderr1323 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1312 ../src/curl -q --trace-ascii log/62/trace1312 --trace-config all --trace-time 127.0.0.1:38899/1312 -J -O --output-dir log/62 > log/62/stdout1312 2> log/62/stderr1312 eceived, no persistency 09:41:25.581407 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 1297 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind1297 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1297 * starts no server test 1323...[curlx_tvdiff] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1323 ./unit/units unit1323 - > log/53/stdout1323 2> log/53/stderr1323 units returned 1, when expecting 0 1323: exit FAILED == Contents of files in the log/53/ dir after test 1323 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1323 ./unit/units unit1323 - > log/53/stdout1323 2> log/53/stderr1323 === End of file commands.log === Start of file server.cmd Testnum 1323 === End of file server.cmd === Start of file valgrind1323 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1323 test 1312...[HTTP GET with -J, Content-Disposition and ; in filename] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1312 ../src/curl -q --trace-ascii log/62/trace1312 --trace-config all --trace-time 127.0.0.1:38899/1312 -J -O --output-dir log/62 > log/62/stdout1312 2> log/62/stderr1312 1312: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1312 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1312 ../src/curl -q --trace-ascii log/62/trace1312 --trace-config all --trace-time 127.0.0.1:38899/1312 -J -O --output-dir log/62 > log/62/stdout1312 2> log/62/stderr1312 === End of file commands.log === Start of file http_server.log 09:41:26.979877 ====> Client connect 09:41:26.980161 accept_connection 3 returned 4 09:41:26.980313 accept_connection 3 returned 0 09:41:26.980440 Read 93 bytes 09:41:26.980674 Process 93 bytes request 09:41:26.980759 Got request: GET /verifiedserver HTTP/1.1 09:41:26.980829 Are-we-friendly question received 09:41:26.981045 Wrote request (93 bytes) input to log/62/server.input 09:41:26.981211 Identifying ourselves as friends 09:41:26.981925 Response sent (56 bytes) and written to log/62/server.response 09:41:26.982037 special request received, no persistency 09:41:26.982113 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1312 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1312 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1318 ../src/curl -q --output log/14/curl1318.out --include --trace-ascii log/14/trace1318 --trace-config all --trace-time --resolve MiXeDcAsE.cOm:43309:127.0.0.1 http://MiXeDcAsE.cOm:43309/1318 http://mixedcase.com:43309/13180001 > log/14/stdout1318 2> log/14/stderr1318 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1314 ../src/curl -q --output log/47/curl1314.out --include --trace-ascii log/47/trace1314 --trace-config all --trace-time http://firstplace.example.com/want/1314 -L -x http://127.0.0.1:41103 > log/47/stdout1314 2> log/47/stderr1314 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1324 ../src/curl -q --output log/46/curl1324.out --include --trace-ascii log/46/trace1324 --trace-config all --trace-time --resolve example.com:44225:[::1] http://example.com:44225/1324 > log/46/stdout1324 2> log/46/stderr1324 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1317 ../src/curl -q --output log/17/curl1317.out --include --trace-ascii log/17/trace1317 --trace-config all --trace-time --resolve example.com:44383:127.0.0.1 http://example.com:44383/1317 > log/17/stdout1317 2> log/17/stderr1317 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1342 ../src/curl -q --trace-ascii log/33/trace1342 --trace-config all --trace-time http://127.0.0.1:36559/1342 -i -O -D log/33/heads1342 --output-dir log/33 > log/33/stdout1342 2> log/33/stderr1342 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1315 ../src/curl -q --output log/20/curl1315.out --include --trace-ascii log/20/trace1315 --trace-config all --trace-time http://127.0.0.1:45475/we/want/1315 -F name=value -F 'file=@log/20/test1315.txt,log/20/test1315.txt;type=magic/content,log/20/test1315.txt' > log/20/stdout1315 2> log/20/stderr1315 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1345 ../src/curl -q --trace-ascii log/30/trace1345 --trace-config all --trace-time http://127.0.0.1:43913/1345 -i -O -D - --output-dir log/30 > log/30/stdout1345 2> log/30/stderr1345 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1334 ../src/curl -q --trace-ascii log/27/trace1334 --trace-config all --trace-time http://127.0.0.1:42323/1334 -O -D log/27/heads1334 --output-dir log/27 > log/27/stdout1334 2> log/27/stderr1334 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1313 ../src/curl -q --trace-ascii log/50/trace1313 --trace-config all --trace-time http://127.0.0.1:45651/1313 -J -O --output-dir log/50 > log/50/stdout1313 2> log/50/stderr1313 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1326 ../src/curl -q --output log/40/curl1326.out --include --trace-ascii log/40/trace1326 --trace-config all --trace-time telnet://127.0.0.1:42139 --upload-file - log/40/stdout1326 2> log/40/stderr1326 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1325 ../src/curl -q --output log/44/curl1325.out --include --trace-ascii log/44/trace1325 --trace-config all --trace-time http://127.0.0.1:34655/we/1325 -L -d "moo" > log/44/stdout1325 2> log/44/stderr1325 ind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1312 test 1318...[HTTP with --resolve and same host name using different cases] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1318 ../src/curl -q --output log/14/curl1318.out --include --trace-ascii log/14/trace1318 --trace-config all --trace-time --resolve MiXeDcAsE.cOm:43309:127.0.0.1 http://MiXeDcAsE.cOm:43309/1318 http://mixedcase.com:43309/13180001 > log/14/stdout1318 2> log/14/stderr1318 1318: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 1318 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1318 ../src/curl -q --output log/14/curl1318.out --include --trace-ascii log/14/trace1318 --trace-config all --trace-time --resolve MiXeDcAsE.cOm:43309:127.0.0.1 http://MiXeDcAsE.cOm:43309/1318 http://mixedcase.com:43309/13180001 > log/14/stdout1318 2> log/14/stderr1318 === End of file commands.log === Start of file http_server.log 09:41:27.048947 ====> Client connect 09:41:27.049398 accept_connection 3 returned 4 09:41:27.049778 accept_connection 3 returned 0 09:41:27.050042 Read 93 bytes 09:41:27.050187 Process 93 bytes request 09:41:27.050291 Got request: GET /verifiedserver HTTP/1.1 09:41:27.050384 Are-we-friendly question received 09:41:27.050829 Wrote request (93 bytes) input to log/14/server.input 09:41:27.051108 Identifying ourselves as friends 09:41:27.052139 Response sent (56 bytes) and written to log/14/server.response 09:41:27.052348 special request received, no persistency 09:41:27.052424 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 1318 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind1318 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1318 test 1314...[HTTP Location: following a // prefixed url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1314 ../src/curl -q --output log/47/curl1314.out --include --trace-ascii log/47/trace1314 --trace-config all --trace-time http://firstplace.example.com/want/1314 -L -x http://127.0.0.1:41103 > log/47/stdout1314 2> log/47/stderr1314 1314: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1314 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1314 ../src/curl -q --output log/47/curl1314.out --include --trace-ascii log/47/trace1314 --trace-config all --trace-time http://firstplace.example.com/want/1314 -L -x http://127.0.0.1:41103 > log/47/stdout1314 2> log/47/stderr1314 === End of file commands.log === Start of file http_server.log 09:41:27.093884 ====> Client connect 09:41:27.094194 accept_connection 3 returned 4 09:41:27.094355 accept_connection 3 returned 0 09:41:27.094557 Read 93 bytes 09:41:27.094672 Process 93 bytes request 09:41:27.094773 Got request: GET /verifiedserver HTTP/1.1 09:41:27.094845 Are-we-friendly question received 09:41:27.095145 Wrote request (93 bytes) input to log/47/server.input 09:41:27.095336 Identifying ourselves as friends 09:41:27.096121 Response sent (56 bytes) and written to log/47/server.response 09:41:27.096226 special request received, no persistency 09:41:27.096284 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 1314 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind1314 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1314 test 1317...[HTTP with --resolve] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1335 ../src/curl -q --trace-ascii log/21/trace1335 --trace-config all --trace-time http://127.0.0.1:34827/1335 -O -D - --output-dir log/21 > log/21/stdout1335 2> log/21/stderr1335 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1327 ../src/curl -q --include --trace-ascii log/37/trace1327 --trace-config all --trace-time telnet://127.0.0.1:37551 -T log/37/1327.txt log/37/stdout1327 2> log/37/stderr1327 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1355 ../src/curl -q --trace-ascii log/41/trace1355 --trace-config all --trace-time ftp://127.0.0.1:41781/path/file1355 -O -i --output-dir log/41 > log/41/stdout1355 2> log/41/stderr1355 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1336 ../src/curl -q --trace-ascii log/13/trace1336 --trace-config all --trace-time http://127.0.0.1:44087/1336 -O -D log/13/heads1336 --output-dir log/13 > log/13/stdout1336 2> log/13/stderr1336 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1350 ../src/curl -q --trace-ascii log/11/trace1350 --trace-config all --trace-time ftp://127.0.0.1:39847/path/file1350 -O -D - --output-dir log/11 > log/11/stdout1350 2> log/11/stderr1350 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1343 ../src/curl -q --trace-ascii log/54/trace1343 --trace-config all --trace-time http://127.0.0.1:44921/1343 -i -O -D - --output-dir log/54 > log/54/stdout1343 2> log/54/stderr1343 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1328 ../src/curl -q --output log/35/curl1328.out --include --trace-ascii log/35/trace1328 --trace-config all --trace-time -f 'http://127.0.0.1:43179/[13280000-13280001]' -o log/35/#1 > log/35/stdout1328 2> log/35/stderr1328 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1333 ../src/curl -q --output log/28/curl1333.out --include --trace-ascii log/28/trace1333 --trace-config all --trace-time -d "" --header "Transfer-Encoding: chunked" http://127.0.0.1:37545/1333 > log/28/stdout1333 2> log/28/stderr1333 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1341 ../src/curl -q --trace-ascii log/59/trace1341 --trace-config all --trace-time http://127.0.0.1:43695/1341 -J -O -D - -w "curl saved to filename %{filename_effective}\n" --output-dir log/59 > log/59/stdout1341 2> log/59/stderr1341 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1347 ../src/curl -q --trace-ascii log/26/trace1347 --trace-config all --trace-time http://127.0.0.1:46481/1347 -i -O --output-dir log/26 > log/26/stdout1347 2> log/26/stderr1347 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1337 ../src/curl -q --trace-ascii log/12/trace1337 --trace-config all --trace-time http://127.0.0.1:45579/1337 -O -D - --output-dir log/12 > log/12/stdout1337 2> log/12/stderr1337 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1340 ../src/curl -q --trace-ascii log/1/trace1340 --trace-config all --trace-time http://127.0.0.1:40633/1340 -J -O -D log/1/heads1340 -w "curl saved to filename %{filename_effective}\n" --output-dir log/1 > log/1/stdout1340 2> log/1/stderr1340 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1360 ../src/curl -q --trace-ascii log/48/trace1360 --trace-config all --trace-time ftp://127.0.0.1:39061/path/file1360 -O -J -D - --output-dir log/48 > log/48/stdout1360 2> log/48/stderr1360 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1339 ../src/curl -q --trace-ascii log/4/trace1339 --trace-config all --trace-time http://127.0.0.1:43013/1339 -J -O -D - --output-dir log/4 > log/4/stdout1339 2> log/4/stderr1339 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1332 ../src/curl -q --output log/29/curl1332.out --include --trace-ascii log/29/trace1332 --trace-config all --trace-time http://127.0.0.1:36877/blah/1332 -L -d "moo" --post303 > log/29/stdout1332 2> log/29/stderr1332 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1352 ../src/curl -q --trace-ascii log/5/trace1352 --trace-config all --trace-time ftp://127.0.0.1:42831/path/file1352 -O -J -D - --output-dir log/5 > log/5/stdout1352 2> log/5/stderr1352 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1357 ../src/curl -q --trace-ascii log/25/trace1357 --trace-config all --trace-time ftp://127.0.0.1:34069/path/file1357 -O -D log/25/heads1357 --output-dir log/25 > log/25/stdout1357 2> log/25/stderr1357 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1331 ../src/curl -q --output log/38/curl1331.out --include --trace-ascii log/38/trace1331 --trace-config all --trace-time -U myname:mypassword -x 127.0.0.1:33511 http://z.x.com/1331 --proxy-anyauth -c log/38/dump1331 > log/38/stdout1331 2> log/38/stderr1331 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1349 ../src/curl -q --trace-ascii log/18/trace1349 --trace-config all --trace-time ftp://127.0.0.1:42089/path/file1349 -O -D log/18/heads1349 --output-dir log/18 > log/18/stdout1349 2> log/18/stderr1349 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1329 ../src/curl -q --output log/32/curl1329.out --include --trace-ascii log/32/trace1329 --trace-config all --trace-time http://127.0.0.1:45607/we/want/that/page/1329 -x "/server" > log/32/stdout1329 2> log/32/stderr1329 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1344 ../src/curl -q --trace-ascii log/49/trace1344 --trace-config all --trace-time http://127.0.0.1:42667/1344 -i -O -D log/49/heads1344 --output-dir log/49 > log/49/stdout1344 2> log/49/stderr1344 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1322 ../src/curl -q --output log/55/curl1322.out --include --trace-ascii log/55/trace1322 --trace-config all --trace-time --ipv4 --resolve example.com.:33071:127.0.0.1 http://example.com.:33071/1322 > log/55/stdout1322 2> log/55/stderr1322 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1346 ../src/curl -q --trace-ascii log/31/trace1346 --trace-config all --trace-time http://127.0.0.1:45557/1346 -i -O --output-dir log/31 > log/31/stdout1346 2> log/31/stderr1346 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1356 ../src/curl -q --trace-ascii log/39/trace1356 --trace-config all --trace-time ftp://127.0.0.1:35393/path/file1356 -O --output-dir log/39 > log/39/stdout1356 2> log/39/stderr1356 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1353 ../src/curl -q --trace-ascii log/63/trace1353 --trace-config all --trace-time ftp://127.0.0.1:33267/path/file1353 -O -i -D log/63/heads1353 --output-dir log/63 > log/63/stdout1353 2> log/63/stderr1353 iet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1317 ../src/curl -q --output log/17/curl1317.out --include --trace-ascii log/17/trace1317 --trace-config all --trace-time --resolve example.com:44383:127.0.0.1 http://example.com:44383/1317 > log/17/stdout1317 2> log/17/stderr1317 1317: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1317 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1317 ../src/curl -q --output log/17/curl1317.out --include --trace-ascii log/17/trace1317 --trace-config all --trace-time --resolve example.com:44383:127.0.0.1 http://example.com:44383/1317 > log/17/stdout1317 2> log/17/stderr1317 === End of file commands.log === Start of file http_server.log 09:41:27.067832 ====> Client connect 09:41:27.068108 accept_connection 3 returned 4 09:41:27.068260 accept_connection 3 returned 0 09:41:27.068401 Read 93 bytes 09:41:27.068639 Process 93 bytes request 09:41:27.068923 Got request: GET /verifiedserver HTTP/1.1 09:41:27.069065 Are-we-friendly question received 09:41:27.069340 Wrote request (93 bytes) input to log/17/server.input 09:41:27.069581 Identifying ourselves as friends 09:41:27.070341 Response sent (56 bytes) and written to log/17/server.response 09:41:27.070633 special request received, no persistency 09:41:27.070753 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 1317 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind1317 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1317 test 1315...[HTTP RFC1867-type formposting - -F with three files, one with explicit type] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1315 ../src/curl -q --output log/20/curl1315.out --include --trace-ascii log/20/trace1315 --trace-config all --trace-time http://127.0.0.1:45475/we/want/1315 -F name=value -F 'file=@log/20/test1315.txt,log/20/test1315.txt;type=magic/content,log/20/test1315.txt' > log/20/stdout1315 2> log/20/stderr1315 1315: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 1315 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1315 ../src/curl -q --output log/20/curl1315.out --include --trace-ascii log/20/trace1315 --trace-config all --trace-time http://127.0.0.1:45475/we/want/1315 -F name=value -F 'file=@log/20/test1315.txt,log/20/test1315.txt;type=magic/content,log/20/test1315.txt' > log/20/stdout1315 2> log/20/stderr1315 === End of file commands.log === Start of file http_server.log 09:41:27.120891 ====> Client connect 09:41:27.121240 accept_connection 3 returned 4 09:41:27.121432 accept_connection 3 returned 0 09:41:27.121817 Read 93 bytes 09:41:27.121926 Process 93 bytes request 09:41:27.122024 Got request: GET /verifiedserver HTTP/1.1 09:41:27.122110 Are-we-friendly question received 09:41:27.122365 Wrote request (93 bytes) input to log/20/server.input 09:41:27.122761 Identifying ourselves as friends 09:41:27.126054 Response sent (56 bytes) and written to log/20/server.response 09:41:27.126192 special request received, no persistency 09:41:27.126268 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 1315 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file test1315.txt dummy data === End of file test1315.txt === Start of file valgrind1315 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1315 test 1334...[HTTP GET with -O without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --supCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1365 ../src/curl -q --trace-ascii log/8/trace1365 --trace-config all --trace-time http://127.0.0.1:46129/1365 -o log/8/outfile1365 -D - > log/8/stdout1365 2> log/8/stderr1365 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1369 ../src/curl -q --trace-ascii log/6/trace1369 --trace-config all --trace-time http://127.0.0.1:37181/1369 -J -o log/6/outfile1369 -D - > log/6/stdout1369 2> log/6/stderr1369 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1372 ../src/curl -q --trace-ascii log/10/trace1372 --trace-config all --trace-time http://127.0.0.1:36913/1372 -i -o log/10/outfile1372 -D log/10/heads1372 > log/10/stdout1372 2> log/10/stderr1372 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1363 ../src/curl -q --trace-ascii log/36/trace1363 --trace-config all --trace-time ftp://127.0.0.1:45965/path/file1363 -O -i --output-dir log/36 > log/36/stdout1363 2> log/36/stderr1363 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1367 ../src/curl -q --trace-ascii log/3/trace1367 --trace-config all --trace-time http://127.0.0.1:42107/1367 -o log/3/outfile1367 -D - > log/3/stdout1367 2> log/3/stderr1367 pressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1334 ../src/curl -q --trace-ascii log/27/trace1334 --trace-config all --trace-time http://127.0.0.1:42323/1334 -O -D log/27/heads1334 --output-dir log/27 > log/27/stdout1334 2> log/27/stderr1334 1334: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 1334 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1334 ../src/curl -q --trace-ascii log/27/trace1334 --trace-config all --trace-time http://127.0.0.1:42323/1334 -O -D log/27/heads1334 --output-dir log/27 > log/27/stdout1334 2> log/27/stderr1334 === End of file commands.log === Start of file http_server.log 09:41:27.282280 ====> Client connect 09:41:27.282734 accept_connection 3 returned 4 09:41:27.282903 accept_connection 3 returned 0 09:41:27.283081 Read 93 bytes 09:41:27.283211 Process 93 bytes request 09:41:27.283305 Got request: GET /verifiedserver HTTP/1.1 09:41:27.283385 Are-we-friendly question received 09:41:27.283832 Wrote request (93 bytes) input to log/27/server.input 09:41:27.284012 Identifying ourselves as friends 09:41:27.287851 Response sent (56 bytes) and written to log/27/server.response 09:41:27.287971 special request received, no persistency 09:41:27.288044 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 1334 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind1334 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1334 test 1345...[HTTP GET with -O -i and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1345 ../src/curl -q --trace-ascii log/30/trace1345 --trace-config all --trace-time http://127.0.0.1:43913/1345 -i -O -D - --output-dir log/30 > log/30/stdout1345 2> log/30/stderr1345 1345: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 1345 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1345 ../src/curl -q --trace-ascii log/30/trace1345 --trace-config all --trace-time http://127.0.0.1:43913/1345 -i -O -D - --output-dir log/30 > log/30/stdout1345 2> log/30/stderr1345 === End of file commands.log === Start of file http_server.log 09:41:27.362874 ====> Client connect 09:41:27.363159 accept_connection 3 returned 4 09:41:27.363305 accept_connection 3 returned 0 09:41:27.363428 Read 93 bytes 09:41:27.363642 Process 93 bytes request 09:41:27.363730 Got request: GET /verifiedserver HTTP/1.1 09:41:27.363792 Are-we-friendly question received 09:41:27.363975 Wrote request (93 bytes) input to log/30/server.input 09:41:27.364136 Identifying ourselves as friends 09:41:27.370765 Response sent (56 bytes) and written to log/30/server.response 09:41:27.370882 special request received, no persistency 09:41:27.370955 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43913... * Connected to 127.0.0.1 (127.0.0.1) port 43913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73779 === End of file http_verify.out === Start of file server.cmd Testnum 1345 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73779 === End of file server.response === Start of file valgrind1345 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1345 test 1342...[HTTP GET with -O -i without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1342 ../src/curl -q --trace-ascii log/33/trace1342 --trace-config all --trace-time http://127.0.0.1:36559/1342 -i -O -D log/33/heads1342 --output-dir log/33 > log/33/stdout1342 2> log/33/stderr1342 1342: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == ConCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1358 ../src/curl -q --trace-ascii log/23/trace1358 --trace-config all --trace-time ftp://127.0.0.1:35595/path/file1358 -O -D - --output-dir log/23 > log/23/stdout1358 2> log/23/stderr1358 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1348 ../src/curl -q --trace-ascii log/24/trace1348 --trace-config all --trace-time ftp://127.0.0.1:37935/path/file1348 -O --output-dir log/24 > log/24/stdout1348 2> log/24/stderr1348 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1338 ../src/curl -q --trace-ascii log/7/trace1338 --trace-config all --trace-time http://127.0.0.1:44647/1338 -J -O -D log/7/heads1338 --output-dir log/7 > log/7/stdout1338 2> log/7/stderr1338 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1364 ../src/curl -q --trace-ascii log/19/trace1364 --trace-config all --trace-time http://127.0.0.1:35697/1364 -o log/19/outfile1364 -D log/19/heads1364 > log/19/stdout1364 2> log/19/stderr1364 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1366 ../src/curl -q --trace-ascii log/2/trace1366 --trace-config all --trace-time http://127.0.0.1:39659/1366 -o log/2/outfile1366 -D log/2/heads1366 > log/2/stdout1366 2> log/2/stderr1366 tents of files in the log/33/ dir after test 1342 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1342 ../src/curl -q --trace-ascii log/33/trace1342 --trace-config all --trace-time http://127.0.0.1:36559/1342 -i -O -D log/33/heads1342 --output-dir log/33 > log/33/stdout1342 2> log/33/stderr1342 === End of file commands.log === Start of file http_server.log 09:41:27.305867 ====> Client connect 09:41:27.306175 accept_connection 3 returned 4 09:41:27.308710 accept_connection 3 returned 0 09:41:27.308867 Read 93 bytes 09:41:27.308980 Process 93 bytes request 09:41:27.309074 Got request: GET /verifiedserver HTTP/1.1 09:41:27.309162 Are-we-friendly question received 09:41:27.309402 Wrote request (93 bytes) input to log/33/server.input 09:41:27.309753 Identifying ourselves as friends 09:41:27.312125 Response sent (56 bytes) and written to log/33/server.response 09:41:27.312256 special request received, no persistency 09:41:27.312342 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 1342 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind1342 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1342 test 1324...[HTTP with --resolve and [ipv6address]] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1324 ../src/curl -q --output log/46/curl1324.out --include --trace-ascii log/46/trace1324 --trace-config all --trace-time --resolve example.com:44225:[::1] http://example.com:44225/1324 > log/46/stdout1324 2> log/46/stderr1324 1324: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 1324 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1324 ../src/curl -q --output log/46/curl1324.out --include --trace-ascii log/46/trace1324 --trace-config all --trace-time --resolve example.com:44225:[::1] http://example.com:44225/1324 > log/46/stdout1324 2> log/46/stderr1324 === End of file commands.log === Start of file http_ipv6_server.log 09:41:26.131861 ====> Client connect 09:41:26.132139 accept_connection 3 returned 4 09:41:26.132282 accept_connection 3 returned 0 09:41:26.132397 Read 89 bytes 09:41:26.132664 Process 89 bytes request 09:41:26.132761 Got request: GET /verifiedserver HTTP/1.1 09:41:26.132829 Are-we-friendly question received 09:41:26.133027 Wrote request (89 bytes) input to log/46/server.input 09:41:26.133216 Identifying ourselves as friends 09:41:26.137826 Response sent (56 bytes) and written to log/46/server.response 09:41:26.137954 special request received, no persistency 09:41:26.138028 ====> Client disconnect 0 === End of file http_ipv6_server.log === Start of file http_ipv6_verify.log * Trying [::1]:44225... * Connected to ::1 (::1) port 44225 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: [::1]:44225 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host ::1 left intact === End of file http_ipv6_verify.log === Start of file http_ipv6_verify.out WE ROOLZ: 86139 === End of file http_ipv6_verify.out === Start of file server.cmd Testnum 1324 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 86139 === End of file server.response === Start of file valgrind1324 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1324 test 1340...[HTTP GET with -O -J and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1340 ../src/curl -q --trace-ascii log/1/trace1340 --trace-config all --trace-time http://127.0.0.1:40633/1340 -J -O -D log/1/heads1340 -w "curl saved to filename %{filename_effective}\n" --output-dir log/1 > log/1/stdout1340 2> log/1/stderr1340 1340: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1340 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1340 ../src/curl -q --trace-ascii log/1/traceCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1359 ../src/curl -q --trace-ascii log/22/trace1359 --trace-config all --trace-time ftp://127.0.0.1:41867/path/file1359 -O -J -D log/22/heads1359 --output-dir log/22 > log/22/stdout1359 2> log/22/stderr1359 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1351 ../src/curl -q --trace-ascii log/9/trace1351 --trace-config all --trace-time ftp://127.0.0.1:36293/path/file1351 -O -J -D log/9/heads1351 --output-dir log/9 > log/9/stdout1351 2> log/9/stderr1351 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1370 ../src/curl -q --trace-ascii log/34/trace1370 --trace-config all --trace-time http://127.0.0.1:33117/1370 -J -o log/34/outfile1370 -D log/34/heads1370 > log/34/stdout1370 2> log/34/stderr1370 1340 --trace-config all --trace-time http://127.0.0.1:40633/1340 -J -O -D log/1/heads1340 -w "curl saved to filename %{filename_effective}\n" --output-dir log/1 > log/1/stdout1340 2> log/1/stderr1340 === End of file commands.log === Start of file http_server.log 09:41:27.323048 ====> Client connect 09:41:27.323301 accept_connection 3 returned 4 09:41:27.323424 accept_connection 3 returned 0 09:41:27.323723 Read 93 bytes 09:41:27.323873 Process 93 bytes request 09:41:27.324004 Got request: GET /verifiedserver HTTP/1.1 09:41:27.324071 Are-we-friendly question received 09:41:27.324251 Wrote request (93 bytes) input to log/1/server.input 09:41:27.324387 Identifying ourselves as friends 09:41:27.325075 Response sent (56 bytes) and written to log/1/server.response 09:41:27.325179 special request received, no persistency 09:41:27.325236 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 1340 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind1340 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1340 test 1366...[HTTP GET -o fname and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1366 ../src/curl -q --trace-ascii log/2/trace1366 --trace-config all --trace-time http://127.0.0.1:39659/1366 -o log/2/outfile1366 -D log/2/heads1366 > log/2/stdout1366 2> log/2/stderr1366 1366: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1366 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1366 ../src/curl -q --trace-ascii log/2/trace1366 --trace-config all --trace-time http://127.0.0.1:39659/1366 -o log/2/outfile1366 -D log/2/heads1366 > log/2/stdout1366 2> log/2/stderr1366 === End of file commands.log === Start of file http_server.log 09:41:27.903836 ====> Client connect 09:41:27.904173 accept_connection 3 returned 4 09:41:27.904387 accept_connection 3 returned 0 09:41:27.908903 Read 93 bytes 09:41:27.909021 Process 93 bytes request 09:41:27.909107 Got request: GET /verifiedserver HTTP/1.1 09:41:27.909195 Are-we-friendly question received 09:41:27.909423 Wrote request (93 bytes) input to log/2/server.input 09:41:27.909691 Identifying ourselves as friends 09:41:27.910753 Response sent (56 bytes) and written to log/2/server.response 09:41:27.910860 special request received, no persistency 09:41:27.910923 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 1366 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind1366 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1366 test 1367...[HTTP GET -o fname and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1367 ../src/curl -q --trace-ascii log/3/trace1367 --trace-config all --trace-time http://127.0.0.1:42107/1367 -o log/3/outfile1367 -D - > log/3/stdout1367 2> log/3/stderr1367 1367: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1367 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1367 ../src/curl -q --trace-ascii log/3/trace1367 --trace-config all --trace-time http://127.0.0.1:42107/1367 -o log/3/outfile1367 -D - > log/3/stdout1367 2> log/3/stderr1367 === End of file commands.log === Start of file http_server.log 09:41:27.967333 ====> Client connect 09:41:27.967812 accept_connection 3 returned 4 09:41:27.967977 accept_connection 3 returned 0 09:41:27.968100 Read 93 bytes 09:41:27.968193 Process 93 bytes request 09:41:27.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1373 ../src/curl -q --trace-ascii log/64/trace1373 --trace-config all --trace-time http://127.0.0.1:33073/1373 -i -o log/64/outfile1373 -D - > log/64/stdout1373 2> log/64/stderr1373 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1362 ../src/curl -q --trace-ascii log/43/trace1362 --trace-config all --trace-time ftp://127.0.0.1:33177/path/file1362 -O -i -D - --output-dir log/43 > log/43/stdout1362 2> log/43/stderr1362 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1376 ../src/curl -q --trace-ascii log/53/trace1376 --trace-config all --trace-time http://127.0.0.1:34639/1376 -i -o log/53/outfile1376 > log/53/stdout1376 2> log/53/stderr1376 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1371 ../src/curl -q --trace-ascii log/16/trace1371 --trace-config all --trace-time http://127.0.0.1:34829/1371 -J -o log/16/outfile1371 -D - > log/16/stdout1371 2> log/16/stderr1371 968279 Got request: GET /verifiedserver HTTP/1.1 09:41:27.968356 Are-we-friendly question received 09:41:27.968663 Wrote request (93 bytes) input to log/3/server.input 09:41:27.968858 Identifying ourselves as friends 09:41:27.970837 Response sent (56 bytes) and written to log/3/server.response 09:41:27.970967 special request received, no persistency 09:41:27.971036 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 1367 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind1367 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1367 test 1339...[HTTP GET with -O -J without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1339 ../src/curl -q --trace-ascii log/4/trace1339 --trace-config all --trace-time http://127.0.0.1:43013/1339 -J -O -D - --output-dir log/4 > log/4/stdout1339 2> log/4/stderr1339 1339: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1339 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1339 ../src/curl -q --trace-ascii log/4/trace1339 --trace-config all --trace-time http://127.0.0.1:43013/1339 -J -O -D - --output-dir log/4 > log/4/stdout1339 2> log/4/stderr1339 === End of file commands.log === Start of file http_server.log 09:41:27.386726 ====> Client connect 09:41:27.387172 accept_connection 3 returned 4 09:41:27.387348 accept_connection 3 returned 0 09:41:27.391280 Read 93 bytes 09:41:27.391426 Process 93 bytes request 09:41:27.391638 Got request: GET /verifiedserver HTTP/1.1 09:41:27.391743 Are-we-friendly question received 09:41:27.391980 Wrote request (93 bytes) input to log/4/server.input 09:41:27.392167 Identifying ourselves as friends 09:41:27.397039 Response sent (56 bytes) and written to log/4/server.response 09:41:27.397166 special request received, no persistency 09:41:27.397238 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 1339 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind1339 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1339 test 1352...[FTP download, file without C-D inside, using -O -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1352 ../src/curl -q --trace-ascii log/5/trace1352 --trace-config all --trace-time ftp://127.0.0.1:42831/path/file1352 -O -J -D - --output-dir log/5 > log/5/stdout1352 2> log/5/stderr1352 1352: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1352 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1352 ../src/curl -q --trace-ascii log/5/trace1352 --trace-config all --trace-time ftp://127.0.0.1:42831/path/file1352 -O -J -D - --output-dir log/5 > log/5/stdout1352 2> log/5/stderr1352 === End of file commands.log === Start of file ftp_server.log 09:41:27.288518 ====> Client connect 09:41:27.291431 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.295154 < "USER anonymous" 09:41:27.297877 > "331 We are happy you popped in![CR][LF]" 09:41:27.299060 < "PASS ftp@example.com" 09:41:27.299416 > "230 Welcome you silly person[CR][LF]" 09:41:27.301691 < "PWD" 09:41:27.302182 > "257 "/" is current directory[CR][LF]" 09:41:27.306015 < "EPSV" 09:41:27.306299 ====> Passive DATA channel requested by client 09:41:27.306469 DATA sockfilt for passive data channel staCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1361 ../src/curl -q --trace-ascii log/45/trace1361 --trace-config all --trace-time ftp://127.0.0.1:41719/path/file1361 -O -i -D log/45/heads1361 --output-dir log/45 > log/45/stdout1361 2> log/45/stderr1361 rting... 09:41:27.351030 DATA sockfilt for passive data channel started (pid 141844) 09:41:27.352130 DATA sockfilt for passive data channel listens on port 46547 09:41:27.352545 > "229 Entering Passive Mode (|||46547|)[LF]" 09:41:27.352863 Client has been notified that DATA conn will be accepted on port 46547 09:41:27.355375 Client connects to port 46547 09:41:27.358052 ====> Client established passive DATA connection on port 46547 09:41:27.358882 < "TYPE I" 09:41:27.359273 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.365547 < "SIZE verifiedserver" 09:41:27.366154 > "213 17[CR][LF]" 09:41:27.370084 < "RETR verifiedserver" 09:41:27.370495 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.371181 =====> Closing passive DATA connection... 09:41:27.371374 Server disconnects passive DATA connection 09:41:27.379374 Server disconnected passive DATA connection 09:41:27.379618 DATA sockfilt for passive data channel quits (pid 141844) 09:41:27.384122 DATA sockfilt for passive data channel quit (pid 141844) 09:41:27.384404 =====> Closed passive DATA connection 09:41:27.388634 > "226 File transfer complete[CR][LF]" 09:41:27.420496 < "QUIT" 09:41:27.421469 > "221 bye bye baby[CR][LF]" 09:41:27.423159 MAIN sockfilt said DISC 09:41:27.423427 ====> Client disconnected 09:41:27.423959 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.541701 ====> Client connect 09:41:27.544578 Received DATA (on stdin) 09:41:27.544860 > 160 bytes data, server => client 09:41:27.545012 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.545101 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.545167 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.547889 < 16 bytes data, client => server 09:41:27.548070 'USER anonymous\r\n' 09:41:27.550628 Received DATA (on stdin) 09:41:27.550820 > 33 bytes data, server => client 09:41:27.551049 '331 We are happy you popped in!\r\n' 09:41:27.551842 < 22 bytes data, client => server 09:41:27.551980 'PASS ftp@example.com\r\n' 09:41:27.553421 Received DATA (on stdin) 09:41:27.553628 > 30 bytes data, server => client 09:41:27.553730 '230 Welcome you silly person\r\n' 09:41:27.554614 < 5 bytes data, client => server 09:41:27.554783 'PWD\r\n' 09:41:27.557907 Received DATA (on stdin) 09:41:27.558052 > 30 bytes data, server => client 09:41:27.558129 '257 "/" is current directory\r\n' 09:41:27.558860 < 6 bytes data, client => server 09:41:27.559001 'EPSV\r\n' 09:41:27.606969 Received DATA (on stdin) 09:41:27.607111 > 38 bytes data, server => client 09:41:27.607203 '229 Entering Passive Mode (|||46547|)\n' 09:41:27.608794 < 8 bytes data, client => server 09:41:27.608915 'TYPE I\r\n' 09:41:27.614567 Received DATA (on stdin) 09:41:27.614716 > 33 bytes data, server => client 09:41:27.614809 '200 I modify TYPE as you wanted\r\n' 09:41:27.615321 < 21 bytes data, client => server 09:41:27.615448 'SIZE verifiedserver\r\n' 09:41:27.622043 Received DATA (on stdin) 09:41:27.622182 > 8 bytes data, server => client 09:41:27.622272 '213 17\r\n' 09:41:27.622951 < 21 bytes data, client => server 09:41:27.623081 'RETR verifiedserver\r\n' 09:41:27.631578 Received DATA (on stdin) 09:41:27.631720 > 29 bytes data, server => client 09:41:27.631798 '150 Binary junk (17 bytes).\r\n' 09:41:27.638549 Received DATA (on stdin) 09:41:27.638823 > 28 bytes data, server => client 09:41:27.641759 '226 File transfer complete\r\n' 09:41:27.673326 < 6 bytes data, client => server 09:41:27.673605 'QUIT\r\n' 09:41:27.674678 Received DATA (on stdin) 09:41:27.674819 > 18 bytes data, server => client 09:41:27.675552 '221 bye bye baby\r\n' 09:41:27.676628 ====> Client disconnect 09:41:27.679552 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.600125 Running IPv4 version 09:41:27.602752 Listening on port 46547 09:41:27.603134 Wrote pid 141844 to log/5/server/ftp_sockdata.pid 09:41:27.603291 Received PING (on stdin) 09:41:27.605176 Received PORT (on stdin) 09:41:27.608374 ====> Client connect 09:41:27.632073 Received DATA (on stdin) 09:41:27.632206 > 17 bytes data, server => client 09:41:27.632288 'WE ROOLZ: 77456\r\n' 09:41:27.632637 Received DISC (on stdin) 09:41:27.632770 ====> Client forcibly disconnected 09:41:27.635568 Received QUIT (on stdin) 09:41:27.635711 quits 09:41:27.636079 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1352 === End of file server.cmd === Start of file valgrind1352 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1352 test 1369...[HTTP GET -o fname -J without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1369 ../src/curl -q --trace-ascii log/6/trace1369 --trace-config all --trace-time http://127.0.0.1:37181/1369 -J -o log/6/outfile1369 -D - > log/6/stdout1369 2> log/6/stderr1369 1369: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1369 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1369 ../src/curl -q --trace-ascii log/6/trace1369 --trace-config all --trace-time http://127.0.0.1:37181/1369 -J -o log/6/outfile1369 -D - > log/6/stdout1369 2> log/6/stderr1369 === End of file commands.log === Start of file http_server.log 09:41:27.845334 ====> Client connect 09:41:27.845849 accept_connection 3 returned 4 09:41:27.846028 accept_connection 3 returned 0 09:41:27.846940 Read 93 bytes 09:41:27.847091 Process 93 bytes request 09:41:27.847177 Got request: GET /verifiedserver HTTP/1.1 09:41:27.847246 Are-we-friendly question received 09:41:27.847454 Wrote request (93 bytes) input to log/6/server.input 09:41:27.847739 Identifying ourselves as friends 09:41:27.851973 Response sent (56 bytes) and written to log/6/server.response 09:41:27.852108 special request received, no persistency 09:41:27.852190 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 1369 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind1369 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1369 test 1338...[HTTP GET with -O -J without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1338 ../src/curl -q --trace-ascii log/7/trace1338 --trace-config all --trace-time http://127.0.0.1:44647/1338 -J -O -D log/7/heads1338 --output-dir log/7 > log/7/stdout1338 2> log/7/stderr1338 1338: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1338 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1338 ../src/curl -q --trace-ascii log/7/trace1338 --trace-config all --trace-time http://127.0.0.1:44647/1338 -J -O -D log/7/heads1338 --output-dir log/7 > log/7/stdout1338 2> log/7/stderr1338 === End of file commands.log === Start of file http_server.log 09:41:27.355863 ====> Client connect 09:41:27.356163 accept_connection 3 returned 4 09:41:27.356311 accept_connection 3 returned 0 09:41:27.356432 Read 93 bytes 09:41:27.356657 Process 93 bytes request 09:41:27.356743 Got request: GET /verifiedserver HTTP/1.1 09:41:27.356808 Are-we-friendly question received 09:41:27.356999 Wrote request (93 bytes) input to log/7/server.input 09:41:27.357157 Identifying ourselves as friends 09:41:27.357881 Response sent (56 bytes) and written to log/7/server.response 09:41:27.357982 special request received, no persistency 09:41:27.358048 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 1338 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind1338 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1338 test 1365...[HTTP GET -o fname without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1365 ../src/curl -q --trace-ascii log/8/trace1365 --trace-config all --trace-time http://127.0.0.1:46129/1365 -o log/8/outfile1365 -D - > log/8/stdout1365 2> log/8/stderr1365 1365: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1365 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1365 ../src/curl -q --trace-ascii log/8/trace1365 --trace-config all --trace-time http://127.0.0.1:46129/1365 -o log/8/outfile1365 -D - > log/8/stdout1365 2> log/8/stderr1365 === End of file commands.log === Start of file http_server.log 09:41:27.852439 ====> Client connect 09:41:27.852908 accept_connection 3 returned 4 09:41:27.853082 accept_connection 3 returned 0 09:41:27.855627 Read 93 bytes 09:41:27.855789 Process 93 bytes request 09:41:27.855870 Got request: GET /verifiedserver HTTP/1.1 09:41:27.855933 Are-we-friendly question received 09:41:27.856158 Wrote request (93 bytes) input to log/8/server.input 09:41:27.856337 Identifying ourselves as friends 09:41:27.857152 Response sent (56 bytes) and written to log/8/server.response 09:41:27.857262 special request received, no persistency 09:41:27.857322 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 1365 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind1365 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirectioCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1368 ../src/curl -q --trace-ascii log/52/trace1368 --trace-config all --trace-time http://127.0.0.1:40089/1368 -J -o log/52/outfile1368 -D log/52/heads1368 > log/52/stdout1368 2> log/52/stderr1368 n are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1365 test 1372...[HTTP GET -o fname -i without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1372 ../src/curl -q --trace-ascii log/10/trace1372 --trace-config all --trace-time http://127.0.0.1:36913/1372 -i -o log/10/outfile1372 -D log/10/heads1372 > log/10/stdout1372 2> log/10/stderr1372 1372: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 1372 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1372 ../src/curl -q --trace-ascii log/10/trace1372 --trace-config all --trace-time http://127.0.0.1:36913/1372 -i -o log/10/outfile1372 -D log/10/heads1372 > log/10/stdout1372 2> log/10/stderr1372 === End of file commands.log === Start of file http_server.log 09:41:27.905871 ====> Client connect 09:41:27.906163 accept_connection 3 returned 4 09:41:27.906319 accept_connection 3 returned 0 09:41:27.906444 Read 93 bytes 09:41:27.906738 Process 93 bytes request 09:41:27.906833 Got request: GET /verifiedserver HTTP/1.1 09:41:27.906909 Are-we-friendly question received 09:41:27.907131 Wrote request (93 bytes) input to log/10/server.input 09:41:27.907307 Identifying ourselves as friends 09:41:27.908016 Response sent (56 bytes) and written to log/10/server.response 09:41:27.908123 special request received, no persistency 09:41:27.908200 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 1372 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind1372 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1372 test 1350...[FTP download, file without C-D inside, using -O -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1350 ../src/curl -q --trace-ascii log/11/trace1350 --trace-config all --trace-time ftp://127.0.0.1:39847/path/file1350 -O -D - --output-dir log/11 > log/11/stdout1350 2> log/11/stderr1350 1350: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 1350 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1350 ../src/curl -q --trace-ascii log/11/trace1350 --trace-config all --trace-time ftp://127.0.0.1:39847/path/file1350 -O -D - --output-dir log/11 > log/11/stdout1350 2> log/11/stderr1350 === End of file commands.log === Start of file ftp_server.log 09:41:27.273006 ====> Client connect 09:41:27.274181 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.279118 < "USER anonymous" 09:41:27.279515 > "331 We are happy you popped in![CR][LF]" 09:41:27.283901 < "PASS ftp@example.com" 09:41:27.284274 > "230 Welcome you silly person[CR][LF]" 09:41:27.289281 < "PWD" 09:41:27.289651 > "257 "/" is current directory[CR][LF]" 09:41:27.291843 < "EPSV" 09:41:27.292106 ====> Passive DATA channel requested by client 09:41:27.292254 DATA sockfilt for passive data channel starting... 09:41:27.304400 DATA sockfilt for passive data channel started (pid 141814) 09:41:27.305457 DATA sockfilt for passive data channel listens on port 46423 09:41:27.307320 > "229 Entering Passive Mode (|||46423|)[LF]" 09:41:27.307563 Client has been notified that DATA conn will be accepted on port 46423 09:41:27.308396 Client connects to port 46423 09:41:27.308645 ====> Client established passive DATA connection on port 46423 09:41:27.309314 < "TYPE I" 09:41:27.310017 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.312023 < "SIZE verifiedserver" 09:41:27.313017 > "213 17[CR][LF]" 09:41:27.314499 < "RETR verifiedserver" 09:41:27.315235 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.316542 =====> Closing passive DATA connection... 09:41:27.316715 Server disconnects passive DATA connection 09:41:27.318410 Fancy that; client wants to DISC, too 09:41:27.319260 Server disconnected passive DATA connection 09:41:27.319487 DATA sockfilt for passive data channel quits (pid 141814) 09:41:27.321228 DATA sockfilt for passive data channel quit (pid 141814) 09:41:27.321447 =====> Closed passive DATA connection 09:41:27.321673 > "226 File transfer complete[CR][LF]" 09:41:27.358569 < "QUIT" 09:41:27.359477 > "221 bye bye baby[CR][LF]" 09:41:27.363477 MAIN sockfilt said DISC 09:41:27.363838 ====> Client disconnected 09:41:27.364284 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.521818 ====> Client connect 09:41:27.527926 Received DATA (on stdin) 09:41:27.528090 > 160 bytes data, server => client 09:41:27.528171 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.528259 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.528335 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.529092 < 16 bytes data, client => server 09:41:27.529245 'USER anonymous\r\n' 09:41:27.533285 Received DATA (on stdin) 09:41:27.533448 > 33 bytes data, server => client 09:41:27.533624 '331 We are happy you popped in!\r\n' 09:41:27.534119 < 22 bytes data, client => server 09:41:27.534240 'PASS ftp@example.com\r\n' 09:41:27.538043 Received DATA (on stdin) 09:41:27.538294 > 30 bytes data, server => client 09:41:27.538418 '230 Welcome you silly person\r\n' 09:41:27.539171 < 5 bytes data, client => server 09:41:27.539528 'PWD\r\n' 09:41:27.543415 Received DATA (on stdin) 09:41:27.543642 > 30 bytes data, server => client 09:41:27.543717 '257 "/" is current directory\r\n' 09:41:27.546544 < 6 bytes data, client => server 09:41:27.546694 'EPSV\r\n' 09:41:27.559652 Received DATA (on stdin) 09:41:27.559778 > 38 bytes data, server => client 09:41:27.559925 '229 Entering Passive Mode (|||46423|)\n' 09:41:27.561631 < 8 bytes data, client => server 09:41:27.561753 'TYPE I\r\n' 09:41:27.563352 Received DATA (on stdin) 09:41:27.563536 > 33 bytes data, server => client 09:41:27.564000 '200 I modify TYPE as you wanted\r\n' 09:41:27.564834 < 21 bytes data, client => server 09:41:27.565061 'SIZE verifiedserver\r\n' 09:41:27.566099 Received DATA (on stdin) 09:41:27.566224 > 8 bytes data, server => client 09:41:27.566362 '213 17\r\n' 09:41:27.567712 < 21 bytes data, client => server 09:41:27.567844 'RETR verifiedserver\r\n' 09:41:27.568638 Received DATA (on stdin) 09:41:27.568772 > 29 bytes data, server => client 09:41:27.569586 '150 Binary junk (17 bytes).\r\n' 09:41:27.575675 Received DATA (on stdin) 09:41:27.575786 > 28 bytes data, server => client 09:41:27.575853 '226 File transfer complete\r\n' 09:41:27.611513 < 6 bytes data, client => server 09:41:27.611663 'QUIT\r\n' 09:41:27.612780 Received DATA (on stdin) 09:41:27.612952 > 18 bytes data, server => client 09:41:27.613546 '221 bye bye baby\r\n' 09:41:27.614037 ====> Client disconnect 09:41:27.618269 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.556451 Running IPv4 version 09:41:27.557132 Listening on port 46423 09:41:27.557618 Wrote pid 141814 to log/11/server/ftp_sockdata.pid 09:41:27.557796 Received PING (on stdin) 09:41:27.558621 Received PORT (on stdin) 09:41:27.561914 ====> Client connect 09:41:27.569290 Received DATA (on stdin) 09:41:27.569414 > 17 bytes data, server => client 09:41:27.570774 'WE ROOLZ: 77498\r\n' 09:41:27.571393 ====> Client disconnect 09:41:27.572352 Received DISC (on stdin) 09:41:27.572453 Crikey! Client also wants to disconnect 09:41:27.572608 Received ACKD (on stdin) 09:41:27.573369 Received QUIT (on stdin) 09:41:27.573541 quits 09:41:27.573928 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1350 === End of file server.cmd === Start of file valgrind1350 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1350 test 1337...[HTTP GET with -O and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1337 ../src/curl -q --trace-ascii log/12/trace1337 --trace-config all --trace-time http://127.0.0.1:45579/1337 -O -D - --output-dir log/12 > log/12/stdout1337 2> log/12/stderr1337 1337: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 1337 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1337 ../src/curl -q --trace-ascii log/12/trace1337 --trace-config all --trace-time http://127.0.0.1:45579/1337 -O -D - --output-dir log/12 > log/12/stdout1337 2> log/12/stderr1337 === End of file commands.log === Start of file http_server.log 09:41:27.509293 ====> Client connect 09:41:27.509676 accept_connection 3 returned 4 09:41:27.509833 accept_connection 3 returned 0 09:41:27.509960 Read 93 bytes 09:41:27.510036 Process 93 bytes request 09:41:27.510121 Got request: GET /verifiedserver HTTP/1.1 09:41:27.510189 Are-we-friendly question received 09:41:27.510389 Wrote request (93 bytes) input to log/12/server.input 09:41:27.510638 Identifying ourselves as friends 09:41:27.511264 Response sent (56 bytes) and written to log/12/server.response 09:41:27.511366 special request received, no persistency 09:41:27.511432 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 1337 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind1337 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1337 test 1336...[HTTP GET with -O and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1336 ../src/curl -q --trace-ascii log/13/trace1336 --trace-config all --trace-time http://127.0.0.1:44087/1336 -O -D log/13/heads1336 --output-dir log/13 > log/13/stdout1336 2> log/13/stderr1336 1336: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 1336 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1336 ../src/curl -q --trace-ascii log/13/trace1336 --trace-config all --trace-time http://127.0.0.1:44087/1336 -O -D log/13/heads1336 --output-dir log/13 > log/13/stdout1336 2> log/13/stderr1336 === End of file commands.log === Start of file http_server.log 09:41:27.436937 ====> Client connect 09:41:27.437278 accept_connection 3 returned 4 09:41:27.437619 accept_connection 3 returned 0 09:41:27.437793 Read 93 bytes 09:41:27.437878 Process 93 bytes request 09:41:27.437961 Got request: GET /verifiedserver HTTP/1.1 09:41:27.438030 Are-we-friendly question received 09:41:27.438257 Wrote request (93 bytes) input to log/13/server.input 09:41:27.438432 Identifying ourselves as friends 09:41:27.439222 Response sent (56 bytes) and written to log/13/server.response 09:41:27.439329 special request received, no persistency 09:41:27.439400 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 1336 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file valgrind1336 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1336 test 1349...[FTP download, file without C-D inside, using -O -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1349 ../src/curl -q --trace-ascii log/18/trace1349 --trace-config all --trace-time ftp://127.0.0.1:42089/path/file1349 -O -D log/18/heads1349 --output-dir log/18 > log/18/stdout1349 2> log/18/stderr1349 1349: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 1349 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1349 ../src/curl -q --trace-ascii log/18/trace1349 --trace-config all --trace-time ftp://127.0.0.1:42089/path/file1349 -O -D log/18/heads1349 --output-dir log/18 > log/18/stdout1349 2> log/18/stderr1349 === End of file commands.log === Start of file ftp_server.log 09:41:27.331530 ====> Client connect 09:41:27.334627 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.336008 < "USER anonymous" 09:41:27.336356 > "331 We are happy you popped in![CR][LF]" 09:41:27.339575 < "PASS ftp@example.com" 09:41:27.340435 > "230 Welcome you silly person[CR][LF]" 09:41:27.342343 < "PWD" 09:41:27.342826 > "257 "/" is current directory[CR][LF]" 09:41:27.344969 < "EPSV" 09:41:27.345261 ====> Passive DATA channel requested by client 09:41:27.345476 DATA sockfilt for passive data channel starting... 09:41:27.358249 DATA sockfilt for passive data channel started (pid 141893) 09:41:27.359181 DATA sockfilt for passive data channel listens on port 46707 09:41:27.359915 > "229 Entering Passive Mode (|||46707|)[LF]" 09:41:27.360153 Client has been notified that DATA conn will be accepted on port 46707 09:41:27.362141 Client connects to port 46707 09:41:27.362453 ====> Client established passive DATA connection on port 46707 09:41:27.363323 < "TYPE I" 09:41:27.363726 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.365945 < "SIZE verifiedserver" 09:41:27.366663 > "213 17[CR][LF]" 09:41:27.368470 < "RETR verifiedserver" 09:41:27.369285 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.369964 =====> Closing passive DATA connection... 09:41:27.370184 Server disconnects passive DATA connection 09:41:27.372011 Server disconnected passive DATA connection 09:41:27.372253 DATA sockfilt for passive data channel quits (pid 141893) 09:41:27.374160 DATA sockfilt for passive data channel quit (pid 141893) 09:41:27.374388 =====> Closed passive DATA connection 09:41:27.374648 > "226 File transfer complete[CR][LF]" 09:41:27.412576 < "QUIT" 09:41:27.413072 > "221 bye bye baby[CR][LF]" 09:41:27.414408 MAIN sockfilt said DISC 09:41:27.414797 ====> Client disconnected 09:41:27.415259 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.584367 ====> Client connect 09:41:27.587221 Received DATA (on stdin) 09:41:27.587398 > 160 bytes data, server => client 09:41:27.587707 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.587838 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.587913 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.588773 < 16 bytes data, client => server 09:41:27.588883 'USER anonymous\r\n' 09:41:27.590360 Received DATA (on stdin) 09:41:27.590555 > 33 bytes data, server => client 09:41:27.590657 '331 We are happy you popped in!\r\n' 09:41:27.592275 < 22 bytes data, client => server 09:41:27.592438 'PASS ftp@example.com\r\n' 09:41:27.593778 Received DATA (on stdin) 09:41:27.593928 > 30 bytes data, server => client 09:41:27.594573 '230 Welcome you silly person\r\n' 09:41:27.595329 < 5 bytes data, client => server 09:41:27.596916 'PWD\r\n' 09:41:27.597059 Received DATA (on stdin) 09:41:27.597137 > 30 bytes data, server => client 09:41:27.597220 '257 "/" is current directory\r\n' 09:41:27.597914 < 6 bytes data, client => server 09:41:27.598045 'EPSV\r\n' 09:41:27.613262 Received DATA (on stdin) 09:41:27.613374 > 38 bytes data, server => client 09:41:27.614137 '229 Entering Passive Mode (|||46707|)\n' 09:41:27.615343 < 8 bytes data, client => server 09:41:27.615444 'TYPE I\r\n' 09:41:27.617869 Received DATA (on stdin) 09:41:27.618001 > 33 bytes data, server => client 09:41:27.618086 '200 I modify TYPE as you wanted\r\n' 09:41:27.619039 < 21 bytes data, client => server 09:41:27.619181 'SIZE verifiedserver\r\n' 09:41:27.620069 Received DATA (on stdin) 09:41:27.620204 > 8 bytes data, server => client 09:41:27.620739 '213 17\r\n' 09:41:27.621423 < 21 bytes data, client => server 09:41:27.621626 'RETR verifiedserver\r\n' 09:41:27.622675 Received DATA (on stdin) 09:41:27.622812 > 29 bytes data, server => client 09:41:27.624128 '150 Binary junk (17 bytes).\r\n' 09:41:27.628714 Received DATA (on stdin) 09:41:27.628851 > 28 bytes data, server => client 09:41:27.628933 '226 File transfer complete\r\n' 09:41:27.665408 < 6 bytes data, client => server 09:41:27.665631 'QUIT\r\n' 09:41:27.667142 Received DATA (on stdin) 09:41:27.667266 > 18 bytes data, server => client 09:41:27.667346 '221 bye bye baby\r\n' 09:41:27.667873 ====> Client disconnect 09:41:27.671741 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.610428 Running IPv4 version 09:41:27.611001 Listening on port 46707 09:41:27.611390 Wrote pid 141893 to log/18/server/ftp_sockdata.pid 09:41:27.611685 Received PING (on stdin) 09:41:27.612353 Received PORT (on stdin) 09:41:27.615167 ====> Client connect 09:41:27.624592 Received DATA (on stdin) 09:41:27.624733 > 17 bytes data, server => client 09:41:27.624811 'WE ROOLZ: 79172\r\n' 09:41:27.625074 Received DISC (on stdin) 09:41:27.625222 ====> Client forcibly disconnected 09:41:27.626156 Received QUIT (on stdin) 09:41:27.626278 quits 09:41:27.626726 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1349 === End of file server.cmd === Start of file valgrind1349 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1349 test 1364...[HTTP GET -o fname without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1364 ../src/curl -q --trace-ascii log/19/trace1364 --trace-config all --trace-time http://127.0.0.1:35697/1364 -o log/19/outfile1364 -D log/19/heads1364 > log/19/stdout1364 2> log/19/stderr1364 1364: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 1364 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1364 ../src/curl -q --trace-ascii log/19/trace1364 --trace-config all --trace-time http://127.0.0.1:35697/1364 -o log/19/outfile1364 -D log/19/heads1364 > log/19/stdout1364 2> log/19/stderr1364 === End of file commands.log === Start of file http_server.log 09:41:27.894020 ====> Client connect 09:41:27.894342 accept_connection 3 returned 4 09:41:27.896850 accept_connection 3 returned 0 09:41:27.897034 Read 93 bytes 09:41:27.897127 Process 93 bytes request 09:41:27.897225 Got request: GET /verifiedserver HTTP/1.1 09:41:27.897319 Are-we-friendly question received 09:41:27.900717 Wrote request (93 bytes) input to log/19/server.input 09:41:27.901010 Identifying ourselves as friends 09:41:27.906602 Response sent (56 bytes) and written to log/19/server.response 09:41:27.906740 special request received, no persistency 09:41:27.906830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 1364 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind1364 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1364 test 1335...[HTTP GET with -O without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1335 ../src/curl -q --trace-ascii log/21/trace1335 --trace-config all --trace-time http://127.0.0.1:34827/1335 -O -D - --output-dir log/21 > log/21/stdout1335 2> log/21/stderr1335 1335: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 1335 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1335 ../src/curl -q --trace-ascii log/21/trace1335 --trace-config all --trace-time http://127.0.0.1:34827/1335 -O -D - --output-dir log/21 > log/21/stdout1335 2> log/21/stderr1335 === End of file commands.log === Start of file http_server.log 09:41:27.302265 ====> Client connect 09:41:27.302798 accept_connection 3 returned 4 09:41:27.302965 accept_connection 3 returned 0 09:41:27.303099 Read 93 bytes 09:41:27.303193 Process 93 bytes request 09:41:27.303275 Got request: GET /verifiedserver HTTP/1.1 09:41:27.303348 Are-we-friendly question received 09:41:27.305691 Wrote request (93 bytes) input to log/21/server.input 09:41:27.305882 Identifying ourselves as friends 09:41:27.306586 Response sent (56 bytes) and written to log/21/server.response 09:41:27.306697 special request received, no persistency 09:41:27.306760 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 1335 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind1335 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1335 test 1358...[FTP download, file with C-D inside, using -O -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1358 ../src/curl -q --trace-ascii log/23/trace1358 --trace-config all --trace-time ftp://127.0.0.1:35595/path/file1358 -O -D - --output-dir log/23 > log/23/stdout1358 2> log/23/stderr1358 1358: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 1358 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1358 ../src/curl -q --trace-ascii log/23/trace1358 --trace-config all --trace-time ftp://127.0.0.1:35595/path/file1358 -O -D - --output-dir log/23 > log/23/stdout1358 2> log/23/stderr1358 === End of file commands.log === Start of file ftp_server.log 09:41:27.441240 ====> Client connect 09:41:27.442557 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.456433 < "USER anonymous" 09:41:27.462012 > "331 We are happy you popped in![CR][LF]" 09:41:27.466452 < "PASS ftp@example.com" 09:41:27.471066 > "230 Welcome you silly person[CR][LF]" 09:41:27.476167 < "PWD" 09:41:27.476591 > "257 "/" is current directory[CR][LF]" 09:41:27.487424 < "EPSV" 09:41:27.487710 ====> Passive DATA channel requested by client 09:41:27.488019 DATA sockfilt for passive data channel starting... 09:41:27.519224 DATA sockfilt for passive data channel started (pid 142218) 09:41:27.523230 DATA sockfilt for passive data channel listens on port 39029 09:41:27.523703 > "229 Entering Passive Mode (|||39029|)[LF]" 09:41:27.524057 Client has been notified that DATA conn will be accepted on port 39029 09:41:27.529845 Client connects to port 39029 09:41:27.530164 ====> Client established passive DATA connection on port 39029 09:41:27.530971 < "TYPE I" 09:41:27.534960 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.537414 < "SIZE verifiedserver" 09:41:27.537908 > "213 17[CR][LF]" 09:41:27.542326 < "RETR verifiedserver" 09:41:27.542992 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.545297 =====> Closing passive DATA connection... 09:41:27.545528 Server disconnects passive DATA connection 09:41:27.549903 Server disconnected passive DATA connection 09:41:27.550341 DATA sockfilt for passive data channel quits (pid 142218) 09:41:27.554583 DATA sockfilt for passive data channel quit (pid 142218) 09:41:27.554931 =====> Closed passive DATA connection 09:41:27.555252 > "226 File transfer complete[CR][LF]" 09:41:27.588648 < "QUIT" 09:41:27.593365 > "221 bye bye baby[CR][LF]" 09:41:27.595232 MAIN sockfilt said DISC 09:41:27.595607 ====> Client disconnected 09:41:27.596289 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.693727 ====> Client connect 09:41:27.697667 Received DATA (on stdin) 09:41:27.697843 > 160 bytes data, server => client 09:41:27.697941 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.698029 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.698114 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.708656 < 16 bytes data, client => server 09:41:27.708902 'USER anonymous\r\n' 09:41:27.710747 Received DATA (on stdin) 09:41:27.710932 > 33 bytes data, server => client 09:41:27.716853 '331 We are happy you popped in!\r\n' 09:41:27.717661 < 22 bytes data, client => server 09:41:27.717815 'PASS ftp@example.com\r\n' 09:41:27.725160 Received DATA (on stdin) 09:41:27.725302 > 30 bytes data, server => client 09:41:27.725400 '230 Welcome you silly person\r\n' 09:41:27.729014 < 5 bytes data, client => server 09:41:27.729168 'PWD\r\n' 09:41:27.736655 Received DATA (on stdin) 09:41:27.736824 > 30 bytes data, server => client 09:41:27.736909 '257 "/" is current directory\r\n' 09:41:27.737700 < 6 bytes data, client => server 09:41:27.737832 'EPSV\r\n' 09:41:27.780763 Received DATA (on stdin) 09:41:27.781031 > 38 bytes data, server => client 09:41:27.781199 '229 Entering Passive Mode (|||39029|)\n' 09:41:27.782874 < 8 bytes data, client => server 09:41:27.783029 'TYPE I\r\n' 09:41:27.785349 Received DATA (on stdin) 09:41:27.785565 > 33 bytes data, server => client 09:41:27.789105 '200 I modify TYPE as you wanted\r\n' 09:41:27.790217 < 21 bytes data, client => server 09:41:27.790372 'SIZE verifiedserver\r\n' 09:41:27.792707 Received DATA (on stdin) 09:41:27.792863 > 8 bytes data, server => client 09:41:27.792941 '213 17\r\n' 09:41:27.793651 < 21 bytes data, client => server 09:41:27.793790 'RETR verifiedserver\r\n' 09:41:27.797539 Received DATA (on stdin) 09:41:27.797702 > 29 bytes data, server => client 09:41:27.797816 '150 Binary junk (17 bytes).\r\n' 09:41:27.810587 Received DATA (on stdin) 09:41:27.810748 > 28 bytes data, server => client 09:41:27.810830 '226 File transfer complete\r\n' 09:41:27.841323 < 6 bytes data, client => server 09:41:27.841643 'QUIT\r\n' 09:41:27.847441 Received DATA (on stdin) 09:41:27.847722 > 18 bytes data, server => client 09:41:27.847865 '221 bye bye baby\r\n' 09:41:27.848634 ====> Client disconnect 09:41:27.850388 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.769865 Running IPv4 version 09:41:27.770385 Listening on port 39029 09:41:27.770872 Wrote pid 142218 to log/23/server/ftp_sockdata.pid 09:41:27.772388 Received PING (on stdin) 09:41:27.774595 Received PORT (on stdin) 09:41:27.783226 ====> Client connect 09:41:27.797111 Received DATA (on stdin) 09:41:27.797284 > 17 bytes data, server => client 09:41:27.800633 'WE ROOLZ: 77500\r\n' 09:41:27.801091 Received DISC (on stdin) 09:41:27.801276 ====> Client forcibly disconnected 09:41:27.804520 Received QUIT (on stdin) 09:41:27.804693 quits 09:41:27.805161 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1358 === End of file server.cmd === Start of file valgrind1358 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1358 test 1348...[FTP download, file without Content-Disposition inside, using -O] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1348 ../src/curl -q --trace-ascii log/24/trace1348 --trace-config all --trace-time ftp://127.0.0.1:37935/path/file1348 -O --output-dir log/24 > log/24/stdout1348 2> log/24/stderr1348 1348: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 1348 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1348 ../src/curl -q --trace-ascii log/24/trace1348 --trace-config all --trace-time ftp://127.0.0.1:37935/path/file1348 -O --output-dir log/24 > log/24/stdout1348 2> log/24/stderr1348 === End of file commands.log === Start of file ftp_server.log 09:41:27.215390 ====> Client connect 09:41:27.217630 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.219511 < "USER anonymous" 09:41:27.219931 > "331 We are happy you popped in![CR][LF]" 09:41:27.221921 < "PASS ftp@example.com" 09:41:27.222919 > "230 Welcome you silly person[CR][LF]" 09:41:27.224306 < "PWD" 09:41:27.225418 > "257 "/" is current directory[CR][LF]" 09:41:27.227103 < "EPSV" 09:41:27.227345 ====> Passive DATA channel requested by client 09:41:27.227480 DATA sockfilt for passive data channel starting... 09:41:27.257186 DATA sockfilt for passive data channel started (pid 141705) 09:41:27.258190 DATA sockfilt for passive data channel listens on port 37397 09:41:27.258589 > "229 Entering Passive Mode (|||37397|)[LF]" 09:41:27.258934 Client has been notified that DATA conn will be accepted on port 37397 09:41:27.261360 Client connects to port 37397 09:41:27.261640 ====> Client established passive DATA connection on port 37397 09:41:27.262418 < "TYPE I" 09:41:27.263822 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.265210 < "SIZE verifiedserver" 09:41:27.266214 > "213 17[CR][LF]" 09:41:27.267529 < "RETR verifiedserver" 09:41:27.267938 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.268512 =====> Closing passive DATA connection... 09:41:27.268702 Server disconnects passive DATA connection 09:41:27.271628 Server disconnected passive DATA connection 09:41:27.271954 DATA sockfilt for passive data channel quits (pid 141705) 09:41:27.274045 DATA sockfilt for passive data channel quit (pid 141705) 09:41:27.274291 =====> Closed passive DATA connection 09:41:27.274530 > "226 File transfer complete[CR][LF]" 09:41:27.315933 < "QUIT" 09:41:27.316358 > "221 bye bye baby[CR][LF]" 09:41:27.324046 MAIN sockfilt said DISC 09:41:27.324408 ====> Client disconnected 09:41:27.324996 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.468442 ====> Client connect 09:41:27.470317 Received DATA (on stdin) 09:41:27.470535 > 160 bytes data, server => client 09:41:27.470724 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.470841 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.470916 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.472409 < 16 bytes data, client => server 09:41:27.472630 'USER anonymous\r\n' 09:41:27.473927 Received DATA (on stdin) 09:41:27.474073 > 33 bytes data, server => client 09:41:27.474190 '331 We are happy you popped in!\r\n' 09:41:27.474884 < 22 bytes data, client => server 09:41:27.475026 'PASS ftp@example.com\r\n' 09:41:27.475970 Received DATA (on stdin) 09:41:27.476085 > 30 bytes data, server => client 09:41:27.476232 '230 Welcome you silly person\r\n' 09:41:27.477270 < 5 bytes data, client => server 09:41:27.477402 'PWD\r\n' 09:41:27.478363 Received DATA (on stdin) 09:41:27.478586 > 30 bytes data, server => client 09:41:27.478774 '257 "/" is current directory\r\n' 09:41:27.480179 < 6 bytes data, client => server 09:41:27.480334 'EPSV\r\n' 09:41:27.512999 Received DATA (on stdin) 09:41:27.513135 > 38 bytes data, server => client 09:41:27.513214 '229 Entering Passive Mode (|||37397|)\n' 09:41:27.514525 < 8 bytes data, client => server 09:41:27.514668 'TYPE I\r\n' 09:41:27.516550 Received DATA (on stdin) 09:41:27.516686 > 33 bytes data, server => client 09:41:27.516846 '200 I modify TYPE as you wanted\r\n' 09:41:27.518155 < 21 bytes data, client => server 09:41:27.518271 'SIZE verifiedserver\r\n' 09:41:27.519262 Received DATA (on stdin) 09:41:27.519387 > 8 bytes data, server => client 09:41:27.519582 '213 17\r\n' 09:41:27.520576 < 21 bytes data, client => server 09:41:27.520719 'RETR verifiedserver\r\n' 09:41:27.522892 Received DATA (on stdin) 09:41:27.523076 > 29 bytes data, server => client 09:41:27.523168 '150 Binary junk (17 bytes).\r\n' 09:41:27.528642 Received DATA (on stdin) 09:41:27.528796 > 28 bytes data, server => client 09:41:27.528891 '226 File transfer complete\r\n' 09:41:27.565836 < 6 bytes data, client => server 09:41:27.566109 'QUIT\r\n' 09:41:27.570378 Received DATA (on stdin) 09:41:27.570658 > 18 bytes data, server => client 09:41:27.570752 '221 bye bye baby\r\n' 09:41:27.573850 ====> Client disconnect 09:41:27.579142 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.504179 Running IPv4 version 09:41:27.508933 Listening on port 37397 09:41:27.509293 Wrote pid 141705 to log/24/server/ftp_sockdata.pid 09:41:27.509447 Received PING (on stdin) 09:41:27.511313 Received PORT (on stdin) 09:41:27.514842 ====> Client connect 09:41:27.523914 Received DATA (on stdin) 09:41:27.524050 > 17 bytes data, server => client 09:41:27.524115 'WE ROOLZ: 77469\r\n' 09:41:27.524373 Received DISC (on stdin) 09:41:27.524561 ====> Client forcibly disconnected 09:41:27.525869 Received QUIT (on stdin) 09:41:27.525993 quits 09:41:27.526777 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1348 === End of file server.cmd === Start of file valgrind1348 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1348 test 1357...[FTP download, file with C-D inside, using -O -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1357 ../src/curl -q --trace-ascii log/25/trace1357 --trace-config all --trace-time ftp://127.0.0.1:34069/path/file1357 -O -D log/25/heads1357 --output-dir log/25 > log/25/stdout1357 2> log/25/stderr1357 1357: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 1357 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1357 ../src/curl -q --trace-ascii log/25/trace1357 --trace-config all --trace-time ftp://127.0.0.1:34069/path/file1357 -O -D log/25/heads1357 --output-dir log/25 > log/25/stdout1357 2> log/25/stderr1357 === End of file commands.log === Start of file ftp_server.log 09:41:27.419569 ====> Client connect 09:41:27.422220 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.423840 < "USER anonymous" 09:41:27.425170 > "331 We are happy you popped in![CR][LF]" 09:41:27.426373 < "PASS ftp@example.com" 09:41:27.428060 > "230 Welcome you silly person[CR][LF]" 09:41:27.428719 < "PWD" 09:41:27.429962 > "257 "/" is current directory[CR][LF]" 09:41:27.431458 < "EPSV" 09:41:27.431737 ====> Passive DATA channel requested by client 09:41:27.432045 DATA sockfilt for passive data channel starting... 09:41:27.443196 DATA sockfilt for passive data channel started (pid 142079) 09:41:27.444366 DATA sockfilt for passive data channel listens on port 39643 09:41:27.444857 > "229 Entering Passive Mode (|||39643|)[LF]" 09:41:27.445123 Client has been notified that DATA conn will be accepted on port 39643 09:41:27.447178 Client connects to port 39643 09:41:27.447470 ====> Client established passive DATA connection on port 39643 09:41:27.449102 < "TYPE I" 09:41:27.450511 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.451843 < "SIZE verifiedserver" 09:41:27.452627 > "213 17[CR][LF]" 09:41:27.454488 < "RETR verifiedserver" 09:41:27.455307 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.456106 =====> Closing passive DATA connection... 09:41:27.456340 Server disconnects passive DATA connection 09:41:27.458830 Server disconnected passive DATA connection 09:41:27.459109 DATA sockfilt for passive data channel quits (pid 142079) 09:41:27.461310 DATA sockfilt for passive data channel quit (pid 142079) 09:41:27.461566 =====> Closed passive DATA connection 09:41:27.462485 > "226 File transfer complete[CR][LF]" 09:41:27.501859 < "QUIT" 09:41:27.503030 > "221 bye bye baby[CR][LF]" 09:41:27.506958 MAIN sockfilt said DISC 09:41:27.507305 ====> Client disconnected 09:41:27.507871 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.672737 ====> Client connect 09:41:27.674724 Received DATA (on stdin) 09:41:27.674870 > 160 bytes data, server => client 09:41:27.675055 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.675176 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.675261 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.676548 < 16 bytes data, client => server 09:41:27.676690 'USER anonymous\r\n' 09:41:27.677948 Received DATA (on stdin) 09:41:27.678080 > 33 bytes data, server => client 09:41:27.678255 '331 We are happy you popped in!\r\n' 09:41:27.679319 < 22 bytes data, client => server 09:41:27.679441 'PASS ftp@example.com\r\n' 09:41:27.680420 Received DATA (on stdin) 09:41:27.680619 > 30 bytes data, server => client 09:41:27.680790 '230 Welcome you silly person\r\n' 09:41:27.681346 < 5 bytes data, client => server 09:41:27.681551 'PWD\r\n' 09:41:27.682910 Received DATA (on stdin) 09:41:27.683045 > 30 bytes data, server => client 09:41:27.683203 '257 "/" is current directory\r\n' 09:41:27.684371 < 6 bytes data, client => server 09:41:27.684582 'EPSV\r\n' 09:41:27.699136 Received DATA (on stdin) 09:41:27.699271 > 38 bytes data, server => client 09:41:27.699359 '229 Entering Passive Mode (|||39643|)\n' 09:41:27.701954 < 8 bytes data, client => server 09:41:27.702093 'TYPE I\r\n' 09:41:27.703185 Received DATA (on stdin) 09:41:27.703328 > 33 bytes data, server => client 09:41:27.703612 '200 I modify TYPE as you wanted\r\n' 09:41:27.704751 < 21 bytes data, client => server 09:41:27.704889 'SIZE verifiedserver\r\n' 09:41:27.706006 Received DATA (on stdin) 09:41:27.706141 > 8 bytes data, server => client 09:41:27.706720 '213 17\r\n' 09:41:27.707378 < 21 bytes data, client => server 09:41:27.707592 'RETR verifiedserver\r\n' 09:41:27.708684 Received DATA (on stdin) 09:41:27.708825 > 29 bytes data, server => client 09:41:27.710299 '150 Binary junk (17 bytes).\r\n' 09:41:27.715631 Received DATA (on stdin) 09:41:27.715776 > 28 bytes data, server => client 09:41:27.715962 '226 File transfer complete\r\n' 09:41:27.754711 < 6 bytes data, client => server 09:41:27.754869 'QUIT\r\n' 09:41:27.755969 Received DATA (on stdin) 09:41:27.756104 > 18 bytes data, server => client 09:41:27.756284 '221 bye bye baby\r\n' 09:41:27.757579 ====> Client disconnect 09:41:27.763566 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.695317 Running IPv4 version 09:41:27.695949 Listening on port 39643 09:41:27.696321 Wrote pid 142079 to log/25/server/ftp_sockdata.pid 09:41:27.696555 Received PING (on stdin) 09:41:27.697374 Received PORT (on stdin) 09:41:27.700610 ====> Client connect 09:41:27.710729 Received DATA (on stdin) 09:41:27.710877 > 17 bytes data, server => client 09:41:27.710960 'WE ROOLZ: 87701\r\n' 09:41:27.711221 Received DISC (on stdin) 09:41:27.711400 ====> Client forcibly disconnected 09:41:27.713173 Received QUIT (on stdin) 09:41:27.713309 quits 09:41:27.713796 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1357 === End of file server.cmd === Start of file valgrind1357 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1357 test 1347...[HTTP GET with -O -i and Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1347 ../src/curl -q --trace-ascii log/26/trace1347 --trace-config all --trace-time http://127.0.0.1:46481/1347 -i -O --output-dir log/26 > log/26/stdout1347 2> log/26/stderr1347 1347: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 1347 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1347 ../src/curl -q --trace-ascii log/26/trace1347 --trace-config all --trace-time http://127.0.0.1:46481/1347 -i -O --output-dir log/26 > log/26/stdout1347 2> log/26/stderr1347 === End of file commands.log === Start of file http_server.log 09:41:27.535120 ====> Client connect 09:41:27.535427 accept_connection 3 returned 4 09:41:27.535757 accept_connection 3 returned 0 09:41:27.535889 Read 93 bytes 09:41:27.535973 Process 93 bytes request 09:41:27.536056 Got request: GET /verifiedserver HTTP/1.1 09:41:27.536126 Are-we-friendly question received 09:41:27.536325 Wrote request (93 bytes) input to log/26/server.input 09:41:27.536571 Identifying ourselves as friends 09:41:27.537321 Response sent (56 bytes) and written to log/26/server.response 09:41:27.537531 special request received, no persistency 09:41:27.537629 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 1347 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1347 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1347 test 1333...[HTTP POST zero length, chunked-encoded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1333 ../src/curl -q --output log/28/curl1333.out --include --trace-ascii log/28/trace1333 --trace-config all --trace-time -d "" --header "Transfer-Encoding: chunked" http://127.0.0.1:37545/1333 > log/28/stdout1333 2> log/28/stderr1333 1333: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 1333 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1333 ../src/curl -q --output log/28/curl1333.out --include --trace-ascii log/28/trace1333 --trace-config all --trace-time -d "" --header "Transfer-Encoding: chunked" http://127.0.0.1:37545/1333 > log/28/stdout1333 2> log/28/stderr1333 === End of file commands.log === Start of file http_server.log 09:41:27.278027 ====> Client connect 09:41:27.278335 accept_connection 3 returned 4 09:41:27.278642 accept_connection 3 returned 0 09:41:27.278791 Read 93 bytes 09:41:27.278878 Process 93 bytes request 09:41:27.278959 Got request: GET /verifiedserver HTTP/1.1 09:41:27.279027 Are-we-friendly question received 09:41:27.279247 Wrote request (93 bytes) input to log/28/server.input 09:41:27.281070 Identifying ourselves as friends 09:41:27.281932 Response sent (56 bytes) and written to log/28/server.response 09:41:27.282045 special request received, no persistency 09:41:27.282117 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 1333 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind1333 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1333 test 1332...[HTTP POST with 303 redirect and --post303] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1332 ../src/curl -q --output log/29/curl1332.out --include --trace-ascii log/29/trace1332 --trace-config all --trace-time http://127.0.0.1:36877/blah/1332 -L -d "moo" --post303 > log/29/stdout1332 2> log/29/stderr1332 1332: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 1332 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1332 ../src/curl -q --output log/29/curl1332.out --include --trace-ascii log/29/trace1332 --trace-config all --trace-time http://127.0.0.1:36877/blah/1332 -L -d "moo" --post303 > log/29/stdout1332 2> log/29/stderr1332 === End of file commands.log === Start of file http_server.log 09:41:27.303925 ====> Client connect 09:41:27.304213 accept_connection 3 returned 4 09:41:27.304363 accept_connection 3 returned 0 09:41:27.304641 Read 93 bytes 09:41:27.304774 Process 93 bytes request 09:41:27.304873 Got request: GET /verifiedserver HTTP/1.1 09:41:27.304959 Are-we-friendly question received 09:41:27.305236 Wrote request (93 bytes) input to log/29/server.input 09:41:27.305417 Identifying ourselves as friends 09:41:27.306053 Response sent (56 bytes) and written to log/29/server.response 09:41:27.306176 special request received, no persistency 09:41:27.306242 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 1332 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind1332 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1332 test 1346...[HTTP GET with -O -i without Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1346 ../src/curl -q --trace-ascii log/31/trace1346 --trace-config all --trace-time http://127.0.0.1:45557/1346 -i -O --output-dir log/31 > log/31/stdout1346 2> log/31/stderr1346 1346: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1346 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1346 ../src/curl -q --trace-ascii log/31/trace1346 --trace-config all --trace-time http://127.0.0.1:45557/1346 -i -O --output-dir log/31 > log/31/stdout1346 2> log/31/stderr1346 === End of file commands.log === Start of file http_server.log 09:41:27.611841 ====> Client connect 09:41:27.612179 accept_connection 3 returned 4 09:41:27.612349 accept_connection 3 returned 0 09:41:27.612614 Read 93 bytes 09:41:27.612742 Process 93 bytes request 09:41:27.612827 Got request: GET /verifiedserver HTTP/1.1 09:41:27.612893 Are-we-friendly question received 09:41:27.613105 Wrote request (93 bytes) input to log/31/server.input 09:41:27.613284 Identifying ourselves as friends 09:41:27.615269 Response sent (56 bytes) and written to log/31/server.response 09:41:27.615373 special request received, no persistency 09:41:27.615435 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1354 ../src/curl -q --trace-ascii log/42/trace1354 --trace-config all --trace-time ftp://127.0.0.1:40985/path/file1354 -O -i -D - --output-dir log/42 > log/42/stdout1354 2> log/42/stderr1354 ile http_verify.out === Start of file server.cmd Testnum 1346 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1346 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1346 test 1329...[/-prefixed proxy name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1329 ../src/curl -q --output log/32/curl1329.out --include --trace-ascii log/32/trace1329 --trace-config all --trace-time http://127.0.0.1:45607/we/want/that/page/1329 -x "/server" > log/32/stdout1329 2> log/32/stderr1329 curl returned 1, when expecting 5 1329: exit FAILED == Contents of files in the log/32/ dir after test 1329 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1329 ../src/curl -q --output log/32/curl1329.out --include --trace-ascii log/32/trace1329 --trace-config all --trace-time http://127.0.0.1:45607/we/want/that/page/1329 -x "/server" > log/32/stdout1329 2> log/32/stderr1329 === End of file commands.log === Start of file http_server.log 09:41:27.205380 ====> Client connect 09:41:27.205830 accept_connection 3 returned 4 09:41:27.205991 accept_connection 3 returned 0 09:41:27.206145 Read 93 bytes 09:41:27.206241 Process 93 bytes request 09:41:27.206327 Got request: GET /verifiedserver HTTP/1.1 09:41:27.206394 Are-we-friendly question received 09:41:27.206720 Wrote request (93 bytes) input to log/32/server.input 09:41:27.206902 Identifying ourselves as friends 09:41:27.215101 Response sent (56 bytes) and written to log/32/server.response 09:41:27.215235 special request received, no persistency 09:41:27.215319 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 1329 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind1329 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1329 test 1328...[HTTP GET a globbed range with -f] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1328 ../src/curl -q --output log/35/curl1328.out --include --trace-ascii log/35/trace1328 --trace-config all --trace-time -f 'http://127.0.0.1:43179/[13280000-13280001]' -o log/35/#1 > log/35/stdout1328 2> log/35/stderr1328 1328: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 1328 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1328 ../src/curl -q --output log/35/curl1328.out --include --trace-ascii log/35/trace1328 --trace-config all --trace-time -f 'http://127.0.0.1:43179/[13280000-13280001]' -o log/35/#1 > log/35/stdout1328 2> log/35/stderr1328 === End of file commands.log === Start of file http_server.log 09:41:27.219806 ====> Client connect 09:41:27.220093 accept_connection 3 returned 4 09:41:27.220267 accept_connection 3 returned 0 09:41:27.221100 Read 93 bytes 09:41:27.221233 Process 93 bytes request 09:41:27.221312 Got request: GET /verifiedserver HTTP/1.1 09:41:27.221385 Are-we-friendly question received 09:41:27.221740 Wrote request (93 bytes) input to log/35/server.input 09:41:27.221911 Identifying ourselves as friends 09:41:27.223663 Response sent (56 bytes) and written to log/35/server.response 09:41:27.223766 special request received, no persistency 09:41:27.223827 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 1328 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind1328 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1328 test 1363...[FTP download, file with C-D inside, using -O -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1363 ../src/curl -q --trace-ascii log/36/trace1363 --trace-config all --trace-time ftp://127.0.0.1:45965/path/file1363 -O -i --output-dir log/36 > log/36/stdout1363 2> log/36/stderr1363 1363: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1363 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1363 ../src/curl -q --trace-ascii log/36/trace1363 --trace-config all --trace-time ftp://127.0.0.1:45965/path/file1363 -O -i --output-dir log/36 > log/36/stdout1363 2> log/36/stderr1363 === End of file commands.log === Start of file ftp_server.log 09:41:27.490897 ====> Client connect 09:41:27.494401 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.496403 < "USER anonymous" 09:41:27.498192 > "331 We are happy you popped in![CR][LF]" 09:41:27.499391 < "PASS ftp@example.com" 09:41:27.500186 > "230 Welcome you silly person[CR][LF]" 09:41:27.502062 < "PWD" 09:41:27.502486 > "257 "/" is current directory[CR][LF]" 09:41:27.504565 < "EPSV" 09:41:27.504909 ====> Passive DATA channel requested by client 09:41:27.505125 DATA sockfilt for passive data channel starting... 09:41:27.517266 DATA sockfilt for passive data channel started (pid 142226) 09:41:27.518363 DATA sockfilt for passive data channel listens on port 36915 09:41:27.518913 > "229 Entering Passive Mode (|||36915|)[LF]" 09:41:27.519169 Client has been notified that DATA conn will be accepted on port 36915 09:41:27.521446 Client connects to port 36915 09:41:27.521886 ====> Client established passive DATA connection on port 36915 09:41:27.523417 < "TYPE I" 09:41:27.524204 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.526143 < "SIZE verifiedserver" 09:41:27.527393 > "213 17[CR][LF]" 09:41:27.528953 < "RETR verifiedserver" 09:41:27.530080 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.530731 =====> Closing passive DATA connection... 09:41:27.531693 Server disconnects passive DATA connection 09:41:27.533904 Fancy that; client wants to DISC, too 09:41:27.534305 Server disconnected passive DATA connection 09:41:27.534578 DATA sockfilt for passive data channel quits (pid 142226) 09:41:27.537127 DATA sockfilt for passive data channel quit (pid 142226) 09:41:27.537398 =====> Closed passive DATA connection 09:41:27.538268 > "226 File transfer complete[CR][LF]" 09:41:27.573590 < "QUIT" 09:41:27.574052 > "221 bye bye baby[CR][LF]" 09:41:27.576887 MAIN sockfilt said DISC 09:41:27.577179 ====> Client disconnected 09:41:27.577632 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.743231 ====> Client connect 09:41:27.745811 Received DATA (on stdin) 09:41:27.745966 > 160 bytes data, server => client 09:41:27.747367 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.747594 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.747703 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.749034 < 16 bytes data, client => server 09:41:27.749180 'USER anonymous\r\n' 09:41:27.750553 Received DATA (on stdin) 09:41:27.750715 > 33 bytes data, server => client 09:41:27.751118 '331 We are happy you popped in!\r\n' 09:41:27.752260 < 22 bytes data, client => server 09:41:27.752386 'PASS ftp@example.com\r\n' 09:41:27.753569 Received DATA (on stdin) 09:41:27.753715 > 30 bytes data, server => client 09:41:27.754203 '230 Welcome you silly person\r\n' 09:41:27.754885 < 5 bytes data, client => server 09:41:27.755011 'PWD\r\n' 09:41:27.756580 Received DATA (on stdin) 09:41:27.756729 > 30 bytes data, server => client 09:41:27.756814 '257 "/" is current directory\r\n' 09:41:27.757384 < 6 bytes data, client => server 09:41:27.757582 'EPSV\r\n' 09:41:27.773204 Received DATA (on stdin) 09:41:27.773354 > 38 bytes data, server => client 09:41:27.773538 '229 Entering Passive Mode (|||36915|)\n' 09:41:27.776142 < 8 bytes data, client => server 09:41:27.776279 'TYPE I\r\n' 09:41:27.777539 Received DATA (on stdin) 09:41:27.777694 > 33 bytes data, server => client 09:41:27.778254 '200 I modify TYPE as you wanted\r\n' 09:41:27.779011 < 21 bytes data, client => server 09:41:27.779169 'SIZE verifiedserver\r\n' 09:41:27.780270 Received DATA (on stdin) 09:41:27.780427 > 8 bytes data, server => client 09:41:27.780736 '213 17\r\n' 09:41:27.782018 < 21 bytes data, client => server 09:41:27.782173 'RETR verifiedserver\r\n' 09:41:27.783042 Received DATA (on stdin) 09:41:27.783163 > 29 bytes data, server => client 09:41:27.783309 '150 Binary junk (17 bytes).\r\n' 09:41:27.791399 Received DATA (on stdin) 09:41:27.791604 > 28 bytes data, server => client 09:41:27.791774 '226 File transfer complete\r\n' 09:41:27.826750 < 6 bytes data, client => server 09:41:27.826910 'QUIT\r\n' 09:41:27.828098 Received DATA (on stdin) 09:41:27.828228 > 18 bytes data, server => client 09:41:27.828317 '221 bye bye baby\r\n' 09:41:27.828887 ====> Client disconnect 09:41:27.831694 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.768955 Running IPv4 version 09:41:27.769410 Listening on port 36915 09:41:27.770566 Wrote pid 142226 to log/36/server/ftp_sockdata.pid 09:41:27.770735 Received PING (on stdin) 09:41:27.771397 Received PORT (on stdin) 09:41:27.774785 ====> Client connect 09:41:27.784242 Received DATA (on stdin) 09:41:27.784443 > 17 bytes data, server => client 09:41:27.784685 'WE ROOLZ: 82698\r\n' 09:41:27.785625 ====> Client disconnect 09:41:27.785875 Received DISC (on stdin) 09:41:27.785979 Crikey! Client also wants to disconnect 09:41:27.788689 Received ACKD (on stdin) 09:41:27.789080 Received QUIT (on stdin) 09:41:27.789235 quits 09:41:27.789780 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1363 === End of file server.cmd === Start of file valgrind1363 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1363 test 1327...[TELNET check of upload with stdout redirected] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1327 ../src/curl -q --include --trace-ascii log/37/trace1327 --trace-config all --trace-time telnet://127.0.0.1:37551 -T log/37/1327.txt log/37/stdout1327 2> log/37/stderr1327 1327: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 1327 === Start of file 1327.txt GET /we/want/1327 HTTP/1.0 === End of file 1327.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1327 ../src/curl -q --include --trace-ascii log/37/trace1327 --trace-config all --trace-time telnet://127.0.0.1:37551 -T log/37/1327.txt log/37/stdout1327 2> log/37/stderr1327 === End of file commands.log === Start of file http_server.log 09:41:27.223281 ====> Client connect 09:41:27.223731 accept_connection 3 returned 4 09:41:27.223917 accept_connection 3 returned 0 09:41:27.224052 Read 93 bytes 09:41:27.224160 Process 93 bytes request 09:41:27.224251 Got request: GET /verifiedserver HTTP/1.1 09:41:27.224334 Are-we-friendly question received 09:41:27.224662 Wrote request (93 bytes) input to log/37/server.input 09:41:27.224863 Identifying ourselves as friends 09:41:27.225664 Response sent (56 bytes) and written to log/37/server.response 09:41:27.225774 special request received, no persistency 09:41:27.225843 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 1327 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file stdin-for-1327 GET /ignore/for/1327 HTTP/1.0 === End of file stdin-for-1327 === Start of file valgrind1327 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1327 test 1331...[HTTP --proxy-anyauth and 407 with cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1331 ../src/curl -q --output log/38/curl1331.out --include --trace-ascii log/38/trace1331 --trace-config all --trace-time -U myname:mypassword -x 127.0.0.1:33511 http://z.x.com/1331 --proxy-anyauth -c log/38/dump1331 > log/38/stdout1331 2> log/38/stderr1331 1331: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1331 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1331 ../src/curl -q --output log/38/curl1331.out --include --trace-ascii log/38/trace1331 --trace-config all --trace-time -U myname:mypassword -x 127.0.0.1:33511 http://z.x.com/1331 --proxy-anyauth -c log/38/dump1331 > log/38/stdout1331 2> log/38/stderr1331 === End of file commands.log === Start of file http_server.log 09:41:27.375118 ====> Client connect 09:41:27.375417 accept_connection 3 returned 4 09:41:27.375732 accept_connection 3 returned 0 09:41:27.375875 Read 93 bytes 09:41:27.375961 Process 93 bytes request 09:41:27.376037 Got request: GET /verifiedserver HTTP/1.1 09:41:27.376102 Are-we-friendly question received 09:41:27.376308 Wrote request (93 bytes) input to log/38/server.input 09:41:27.380634 Identifying ourselves as friends 09:41:27.381524 Response sent (56 bytes) and written to log/38/server.response 09:41:27.381655 special request received, no persistency 09:41:27.381722 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1331 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1331 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1331 test 1356...[FTP download, file with Content-Disposition inside, using -O] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1356 ../src/curl -q --trace-ascii log/39/trace1356 --trace-config all --trace-time ftp://127.0.0.1:35393/path/file1356 -O --output-dir log/39 > log/39/stdout1356 2> log/39/stderr1356 1356: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 1356 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1356 ../src/curl -q --trace-ascii log/39/trace1356 --trace-config all --trace-time ftp://127.0.0.1:35393/path/file1356 -O --output-dir log/39 > log/39/stdout1356 2> log/39/stderr1356 === End of file commands.log === Start of file ftp_server.log 09:41:27.374358 ====> Client connect 09:41:27.379018 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.382131 < "USER anonymous" 09:41:27.385125 > "331 We are happy you popped in![CR][LF]" 09:41:27.388633 < "PASS ftp@example.com" 09:41:27.389998 > "230 Welcome you silly person[CR][LF]" 09:41:27.391996 < "PWD" 09:41:27.393179 > "257 "/" is current directory[CR][LF]" 09:41:27.394719 < "EPSV" 09:41:27.395087 ====> Passive DATA channel requested by client 09:41:27.395248 DATA sockfilt for passive data channel starting... 09:41:27.411081 DATA sockfilt for passive data channel started (pid 142011) 09:41:27.412093 DATA sockfilt for passive data channel listens on port 42585 09:41:27.412515 > "229 Entering Passive Mode (|||42585|)[LF]" 09:41:27.415892 Client has been notified that DATA conn will be accepted on port 42585 09:41:27.419669 Client connects to port 42585 09:41:27.420039 ====> Client established passive DATA connection on port 42585 09:41:27.420891 < "TYPE I" 09:41:27.423916 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.425109 < "SIZE verifiedserver" 09:41:27.426965 > "213 17[CR][LF]" 09:41:27.428890 < "RETR verifiedserver" 09:41:27.429420 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.430365 =====> Closing passive DATA connection... 09:41:27.430570 Server disconnects passive DATA connection 09:41:27.434875 Server disconnected passive DATA connection 09:41:27.435159 DATA sockfilt for passive data channel quits (pid 142011) 09:41:27.441305 DATA sockfilt for passive data channel quit (pid 142011) 09:41:27.441562 =====> Closed passive DATA connection 09:41:27.441973 > "226 File transfer complete[CR][LF]" 09:41:27.475338 < "QUIT" 09:41:27.475827 > "221 bye bye baby[CR][LF]" 09:41:27.483104 MAIN sockfilt said DISC 09:41:27.483418 ====> Client disconnected 09:41:27.484000 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.627402 ====> Client connect 09:41:27.629331 Received DATA (on stdin) 09:41:27.629538 > 160 bytes data, server => client 09:41:27.633052 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.633204 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.633293 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.634666 < 16 bytes data, client => server 09:41:27.634819 'USER anonymous\r\n' 09:41:27.637702 Received DATA (on stdin) 09:41:27.637871 > 33 bytes data, server => client 09:41:27.638108 '331 We are happy you popped in!\r\n' 09:41:27.640199 < 22 bytes data, client => server 09:41:27.640355 'PASS ftp@example.com\r\n' 09:41:27.643086 Received DATA (on stdin) 09:41:27.643268 > 30 bytes data, server => client 09:41:27.644045 '230 Welcome you silly person\r\n' 09:41:27.645005 < 5 bytes data, client => server 09:41:27.645159 'PWD\r\n' 09:41:27.646096 Received DATA (on stdin) 09:41:27.646248 > 30 bytes data, server => client 09:41:27.646436 '257 "/" is current directory\r\n' 09:41:27.647697 < 6 bytes data, client => server 09:41:27.647842 'EPSV\r\n' 09:41:27.667700 Received DATA (on stdin) 09:41:27.667820 > 38 bytes data, server => client 09:41:27.667905 '229 Entering Passive Mode (|||42585|)\n' 09:41:27.673847 < 8 bytes data, client => server 09:41:27.673973 'TYPE I\r\n' 09:41:27.675033 Received DATA (on stdin) 09:41:27.675193 > 33 bytes data, server => client 09:41:27.675411 '200 I modify TYPE as you wanted\r\n' 09:41:27.678051 < 21 bytes data, client => server 09:41:27.678182 'SIZE verifiedserver\r\n' 09:41:27.679199 Received DATA (on stdin) 09:41:27.679334 > 8 bytes data, server => client 09:41:27.680996 '213 17\r\n' 09:41:27.681774 < 21 bytes data, client => server 09:41:27.681942 'RETR verifiedserver\r\n' 09:41:27.684742 Received DATA (on stdin) 09:41:27.684893 > 29 bytes data, server => client 09:41:27.684969 '150 Binary junk (17 bytes).\r\n' 09:41:27.696037 Received DATA (on stdin) 09:41:27.696179 > 28 bytes data, server => client 09:41:27.696270 '226 File transfer complete\r\n' 09:41:27.727698 < 6 bytes data, client => server 09:41:27.727870 'QUIT\r\n' 09:41:27.732563 Received DATA (on stdin) 09:41:27.732697 > 18 bytes data, server => client 09:41:27.732769 '221 bye bye baby\r\n' 09:41:27.735639 ====> Client disconnect 09:41:27.737998 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.660451 Running IPv4 version 09:41:27.663827 Listening on port 42585 09:41:27.664209 Wrote pid 142011 to log/39/server/ftp_sockdata.pid 09:41:27.664374 Received PING (on stdin) 09:41:27.665233 Received PORT (on stdin) 09:41:27.673071 ====> Client connect 09:41:27.686299 Received DATA (on stdin) 09:41:27.686537 > 17 bytes data, server => client 09:41:27.686669 'WE ROOLZ: 77518\r\n' 09:41:27.687028 Received DISC (on stdin) 09:41:27.687206 ====> Client forcibly disconnected 09:41:27.689184 Received QUIT (on stdin) 09:41:27.689324 quits 09:41:27.689849 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1356 === End of file server.cmd === Start of file valgrind1356 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1356 test 1326...[TELNET to HTTP server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1326 ../src/curl -q --output log/40/curl1326.out --include --trace-ascii log/40/trace1326 --trace-config all --trace-time telnet://127.0.0.1:42139 --upload-file - log/40/stdout1326 2> log/40/stderr1326 1326: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 1326 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1326 ../src/curl -q --output log/40/curl1326.out --include --trace-ascii log/40/trace1326 --trace-config all --trace-time telnet://127.0.0.1:42139 --upload-file - log/40/stdout1326 2> log/40/stderr1326 === End of file commands.log === Start of file http_server.log 09:41:27.200866 ====> Client connect 09:41:27.201180 accept_connection 3 returned 4 09:41:27.201340 accept_connection 3 returned 0 09:41:27.201607 Read 93 bytes 09:41:27.201737 Process 93 bytes request 09:41:27.201838 Got request: GET /verifiedserver HTTP/1.1 09:41:27.201908 Are-we-friendly question received 09:41:27.202140 Wrote request (93 bytes) input to log/40/server.input 09:41:27.202312 Identifying ourselves as friends 09:41:27.204151 Response sent (56 bytes) and written to log/40/server.response 09:41:27.204271 special request received, no persistency 09:41:27.204358 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd Testnum 1326 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file stdin-for-1326 GET /we/want/1326 HTTP/1.0 === End of file stdin-for-1326 === Start of file valgrind1326 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1326 test 1355...[FTP download, file without C-D inside, using -O -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1355 ../src/curl -q --trace-ascii log/41/trace1355 --trace-config all --trace-time ftp://127.0.0.1:41781/path/file1355 -O -i --output-dir log/41 > log/41/stdout1355 2> log/41/stderr1355 1355: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 1355 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1355 ../src/curl -q --trace-ascii log/41/trace1355 --trace-config all --trace-time ftp://127.0.0.1:41781/path/file1355 -O -i --output-dir log/41 > log/41/stdout1355 2> log/41/stderr1355 === End of file commands.log === Start of file ftp_server.log 09:41:27.310088 ====> Client connect 09:41:27.315033 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.316673 < "USER anonymous" 09:41:27.319244 > "331 We are happy you popped in![CR][LF]" 09:41:27.321144 < "PASS ftp@example.com" 09:41:27.321564 > "230 Welcome you silly person[CR][LF]" 09:41:27.324733 < "PWD" 09:41:27.325294 > "257 "/" is current directory[CR][LF]" 09:41:27.327253 < "EPSV" 09:41:27.327551 ====> Passive DATA channel requested by client 09:41:27.327829 DATA sockfilt for passive data channel starting... 09:41:27.363970 DATA sockfilt for passive data channel started (pid 141875) 09:41:27.365076 DATA sockfilt for passive data channel listens on port 38473 09:41:27.365598 > "229 Entering Passive Mode (|||38473|)[LF]" 09:41:27.365946 Client has been notified that DATA conn will be accepted on port 38473 09:41:27.373042 Client connects to port 38473 09:41:27.373336 ====> Client established passive DATA connection on port 38473 09:41:27.374587 < "TYPE I" 09:41:27.375852 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.376621 < "SIZE verifiedserver" 09:41:27.377357 > "213 17[CR][LF]" 09:41:27.379509 < "RETR verifiedserver" 09:41:27.379976 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.380698 =====> Closing passive DATA connection... 09:41:27.381059 Server disconnects passive DATA connection 09:41:27.388943 Server disconnected passive DATA connection 09:41:27.389333 DATA sockfilt for passive data channel quits (pid 141875) 09:41:27.396041 DATA sockfilt for passive data channel quit (pid 141875) 09:41:27.396294 =====> Closed passive DATA connection 09:41:27.396600 > "226 File transfer complete[CR][LF]" 09:41:27.426315 < "QUIT" 09:41:27.426677 > "221 bye bye baby[CR][LF]" 09:41:27.428390 MAIN sockfilt said DISC 09:41:27.428702 ====> Client disconnected 09:41:27.432405 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:26.563193 ====> Client connect 09:41:26.567590 Received DATA (on stdin) 09:41:26.567755 > 160 bytes data, server => client 09:41:26.567972 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:26.568102 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:26.568184 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:26.569302 < 16 bytes data, client => server 09:41:26.569442 'USER anonymous\r\n' 09:41:26.573309 Received DATA (on stdin) 09:41:26.573445 > 33 bytes data, server => client 09:41:26.573633 '331 We are happy you popped in!\r\n' 09:41:26.574324 < 22 bytes data, client => server 09:41:26.574560 'PASS ftp@example.com\r\n' 09:41:26.576711 Received DATA (on stdin) 09:41:26.576856 > 30 bytes data, server => client 09:41:26.576938 '230 Welcome you silly person\r\n' 09:41:26.577970 < 5 bytes data, client => server 09:41:26.578133 'PWD\r\n' 09:41:26.579009 Received DATA (on stdin) 09:41:26.579169 > 30 bytes data, server => client 09:41:26.579260 '257 "/" is current directory\r\n' 09:41:26.580225 < 6 bytes data, client => server 09:41:26.580570 'EPSV\r\n' 09:41:26.620570 Received DATA (on stdin) 09:41:26.620729 > 38 bytes data, server => client 09:41:26.620814 '229 Entering Passive Mode (|||38473|)\n' 09:41:26.624734 < 8 bytes data, client => server 09:41:26.624860 'TYPE I\r\n' 09:41:26.628758 Received DATA (on stdin) 09:41:26.628909 > 33 bytes data, server => client 09:41:26.629085 '200 I modify TYPE as you wanted\r\n' 09:41:26.629806 < 21 bytes data, client => server 09:41:26.629938 'SIZE verifiedserver\r\n' 09:41:26.631589 Received DATA (on stdin) 09:41:26.631721 > 8 bytes data, server => client 09:41:26.631795 '213 17\r\n' 09:41:26.632327 < 21 bytes data, client => server 09:41:26.632438 'RETR verifiedserver\r\n' 09:41:26.636889 Received DATA (on stdin) 09:41:26.637029 > 29 bytes data, server => client 09:41:26.637107 '150 Binary junk (17 bytes).\r\n' 09:41:26.650744 Received DATA (on stdin) 09:41:26.650882 > 28 bytes data, server => client 09:41:26.650970 '226 File transfer complete\r\n' 09:41:26.680768 < 6 bytes data, client => server 09:41:26.680882 'QUIT\r\n' 09:41:26.681010 Received DATA (on stdin) 09:41:26.681114 > 18 bytes data, server => client 09:41:26.681220 '221 bye bye baby\r\n' 09:41:26.681895 ====> Client disconnect 09:41:26.686441 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.607670 Running IPv4 version 09:41:27.608245 Listening on port 38473 09:41:27.615702 Wrote pid 141875 to log/41/server/ftp_sockdata.pid 09:41:27.615881 Received PING (on stdin) 09:41:27.618128 Received PORT (on stdin) 09:41:27.626419 ====> Client connect 09:41:27.634110 Received DATA (on stdin) 09:41:27.634256 > 17 bytes data, server => client 09:41:27.634342 'WE ROOLZ: 77417\r\n' 09:41:27.635125 Received DISC (on stdin) 09:41:27.635298 ====> Client forcibly disconnected 09:41:27.644823 Received QUIT (on stdin) 09:41:27.644970 quits 09:41:27.645351 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1355 === End of file server.cmd === Start of file valgrind1355 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1355 test 1325...[HTTP 308-redirect with POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1325 ../src/curl -q --output log/44/curl1325.out --include --trace-ascii log/44/trace1325 --trace-config all --trace-time http://127.0.0.1:34655/we/1325 -L -d "moo" > log/44/stdout1325 2> log/44/stderr1325 1325: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 1325 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1325 ../src/curl -q --output log/44/curl1325.out --include --trace-ascii log/44/trace1325 --trace-config all --trace-time http://127.0.0.1:34655/we/1325 -L -d "moo" > log/44/stdout1325 2> log/44/stderr1325 === End of file commands.log === Start of file http_server.log 09:41:27.171140 ====> Client connect 09:41:27.171438 accept_connection 3 returned 4 09:41:27.171782 accept_connection 3 returned 0 09:41:27.175427 Read 93 bytes 09:41:27.175653 Process 93 bytes request 09:41:27.175748 Got request: GET /verifiedserver HTTP/1.1 09:41:27.175853 Are-we-friendly question received 09:41:27.176148 Wrote request (93 bytes) input to log/44/server.input 09:41:27.176381 Identifying ourselves as friends 09:41:27.179220 Response sent (56 bytes) and written to log/44/server.response 09:41:27.179338 special request received, no persistency 09:41:27.179407 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 1325 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind1325 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1325 test 1360...[FTP download, file with C-D inside, using -O -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1360 ../src/curl -q --trace-ascii log/48/trace1360 --trace-config all --trace-time ftp://127.0.0.1:39061/path/file1360 -O -J -D - --output-dir log/48 > log/48/stdout1360 2> log/48/stderr1360 1360: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 1360 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1360 ../src/curl -q --trace-ascii log/48/trace1360 --trace-config all --trace-time ftp://127.0.0.1:39061/path/file1360 -O -J -D - --output-dir log/48 > log/48/stdout1360 2> log/48/stderr1360 === End of file commands.log === Start of file ftp_server.log 09:41:27.342499 ====> Client connect 09:41:27.344224 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.347163 < "USER anonymous" 09:41:27.349089 > "331 We are happy you popped in![CR][LF]" 09:41:27.349886 < "PASS ftp@example.com" 09:41:27.350887 > "230 Welcome you silly person[CR][LF]" 09:41:27.352502 < "PWD" 09:41:27.353294 > "257 "/" is current directory[CR][LF]" 09:41:27.357261 < "EPSV" 09:41:27.357563 ====> Passive DATA channel requested by client 09:41:27.357907 DATA sockfilt for passive data channel starting... 09:41:27.376210 DATA sockfilt for passive data channel started (pid 141933) 09:41:27.377627 DATA sockfilt for passive data channel listens on port 36265 09:41:27.378218 > "229 Entering Passive Mode (|||36265|)[LF]" 09:41:27.378457 Client has been notified that DATA conn will be accepted on port 36265 09:41:27.379958 Client connects to port 36265 09:41:27.380271 ====> Client established passive DATA connection on port 36265 09:41:27.381163 < "TYPE I" 09:41:27.381645 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.383976 < "SIZE verifiedserver" 09:41:27.385045 > "213 17[CR][LF]" 09:41:27.387963 < "RETR verifiedserver" 09:41:27.389605 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.390562 =====> Closing passive DATA connection... 09:41:27.390852 Server disconnects passive DATA connection 09:41:27.393026 Server disconnected passive DATA connection 09:41:27.393294 DATA sockfilt for passive data channel quits (pid 141933) 09:41:27.395311 DATA sockfilt for passive data channel quit (pid 141933) 09:41:27.395545 =====> Closed passive DATA connection 09:41:27.395999 > "226 File transfer complete[CR][LF]" 09:41:27.432863 < "QUIT" 09:41:27.433275 > "221 bye bye baby[CR][LF]" 09:41:27.440888 MAIN sockfilt said DISC 09:41:27.441236 ====> Client disconnected 09:41:27.441728 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.595662 ====> Client connect 09:41:27.598274 Received DATA (on stdin) 09:41:27.598406 > 160 bytes data, server => client 09:41:27.598650 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.598771 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.598857 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.599738 < 16 bytes data, client => server 09:41:27.599878 'USER anonymous\r\n' 09:41:27.601243 Received DATA (on stdin) 09:41:27.601376 > 33 bytes data, server => client 09:41:27.601673 '331 We are happy you popped in!\r\n' 09:41:27.602301 < 22 bytes data, client => server 09:41:27.602543 'PASS ftp@example.com\r\n' 09:41:27.603973 Received DATA (on stdin) 09:41:27.604113 > 30 bytes data, server => client 09:41:27.604292 '230 Welcome you silly person\r\n' 09:41:27.605542 < 5 bytes data, client => server 09:41:27.605703 'PWD\r\n' 09:41:27.606671 Received DATA (on stdin) 09:41:27.606817 > 30 bytes data, server => client 09:41:27.607322 '257 "/" is current directory\r\n' 09:41:27.610145 < 6 bytes data, client => server 09:41:27.610300 'EPSV\r\n' 09:41:27.631955 Received DATA (on stdin) 09:41:27.632137 > 38 bytes data, server => client 09:41:27.632231 '229 Entering Passive Mode (|||36265|)\n' 09:41:27.633614 < 8 bytes data, client => server 09:41:27.633763 'TYPE I\r\n' 09:41:27.635819 Received DATA (on stdin) 09:41:27.635960 > 33 bytes data, server => client 09:41:27.636039 '200 I modify TYPE as you wanted\r\n' 09:41:27.636722 < 21 bytes data, client => server 09:41:27.636883 'SIZE verifiedserver\r\n' 09:41:27.638231 Received DATA (on stdin) 09:41:27.638423 > 8 bytes data, server => client 09:41:27.639112 '213 17\r\n' 09:41:27.640291 < 21 bytes data, client => server 09:41:27.640594 'RETR verifiedserver\r\n' 09:41:27.642262 Received DATA (on stdin) 09:41:27.642402 > 29 bytes data, server => client 09:41:27.642880 '150 Binary junk (17 bytes).\r\n' 09:41:27.650051 Received DATA (on stdin) 09:41:27.650172 > 28 bytes data, server => client 09:41:27.650259 '226 File transfer complete\r\n' 09:41:27.685790 < 6 bytes data, client => server 09:41:27.685957 'QUIT\r\n' 09:41:27.688566 Received DATA (on stdin) 09:41:27.688730 > 18 bytes data, server => client 09:41:27.688812 '221 bye bye baby\r\n' 09:41:27.689306 ====> Client disconnect 09:41:27.695828 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.627117 Running IPv4 version 09:41:27.627901 Listening on port 36265 09:41:27.628287 Wrote pid 141933 to log/48/server/ftp_sockdata.pid 09:41:27.628444 Received PING (on stdin) 09:41:27.630419 Received PORT (on stdin) 09:41:27.633334 ====> Client connect 09:41:27.645078 Received DATA (on stdin) 09:41:27.645221 > 17 bytes data, server => client 09:41:27.645296 'WE ROOLZ: 77544\r\n' 09:41:27.645670 Received DISC (on stdin) 09:41:27.645828 ====> Client forcibly disconnected 09:41:27.647272 Received QUIT (on stdin) 09:41:27.647420 quits 09:41:27.647992 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1360 === End of file server.cmd === Start of file valgrind1360 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1360 test 1344...[HTTP GET with -O -i and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1344 ../src/curl -q --trace-ascii log/49/trace1344 --trace-config all --trace-time http://127.0.0.1:42667/1344 -i -O -D log/49/heads1344 --output-dir log/49 > log/49/stdout1344 2> log/49/stderr1344 1344: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 1344 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1344 ../src/curl -q --trace-ascii log/49/trace1344 --trace-config all --trace-time http://127.0.0.1:42667/1344 -i -O -D log/49/heads1344 --output-dir log/49 > log/49/stdout1344 2> log/49/stderr1344 === End of file commands.log === Start of file http_server.log 09:41:27.492269 ====> Client connect 09:41:27.492752 accept_connection 3 returned 4 09:41:27.492938 accept_connection 3 returned 0 09:41:27.493080 Read 93 bytes 09:41:27.493176 Process 93 bytes request 09:41:27.493279 Got request: GET /verifiedserver HTTP/1.1 09:41:27.493375 Are-we-friendly question received 09:41:27.493746 Wrote request (93 bytes) input to log/49/server.input 09:41:27.493960 Identifying ourselves as friends 09:41:27.499059 Response sent (56 bytes) and written to log/49/server.response 09:41:27.499189 special request received, no persistency 09:41:27.499263 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 1344 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind1344 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1344 test 1313...[HTTP GET with -J, Content-Disposition, uneven quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1313 ../src/curl -q --trace-ascii log/50/trace1313 --trace-config all --trace-time http://127.0.0.1:45651/1313 -J -O --output-dir log/50 > log/50/stdout1313 2> log/50/stderr1313 1313: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 1313 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1313 ../src/curl -q --trace-ascii log/50/trace1313 --trace-config all --trace-time http://127.0.0.1:45651/1313 -J -O --output-dir log/50 > log/50/stdout1313 2> log/50/stderr1313 === End of file commands.log === Start of file http_server.log 09:41:27.066289 ====> Client connect 09:41:27.066769 accept_connection 3 returned 4 09:41:27.066946 accept_connection 3 returned 0 09:41:27.069404 Read 93 bytes 09:41:27.069632 Process 93 bytes request 09:41:27.069730 Got request: GET /verifiedserver HTTP/1.1 09:41:27.069814 Are-we-friendly question received 09:41:27.070079 Wrote request (93 bytes) input to log/50/server.input 09:41:27.070288 Identifying ourselves as friends 09:41:27.071115 Response sent (56 bytes) and written to log/50/server.response 09:41:27.071230 special request received, no persistency 09:41:27.071306 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 1313 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind1313 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1313 test 1343...[HTTP GET with -O -i without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1343 ../src/curl -q --trace-ascii log/54/trace1343 --trace-config all --trace-time http://127.0.0.1:44921/1343 -i -O -D - --output-dir log/54 > log/54/stdout1343 2> log/54/stderr1343 1343: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 1343 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1343 ../src/curl -q --trace-ascii log/54/trace1343 --trace-config all --trace-time http://127.0.0.1:44921/1343 -i -O -D - --output-dir log/54 > log/54/stdouCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1375 ../src/curl -q --trace-ascii log/51/trace1375 --trace-config all --trace-time http://127.0.0.1:34903/1375 -i -o log/51/outfile1375 -D - > log/51/stdout1375 2> log/51/stderr1375 t1343 2> log/54/stderr1343 === End of file commands.log === Start of file http_server.log 09:41:27.339895 ====> Client connect 09:41:27.340266 accept_connection 3 returned 4 09:41:27.340452 accept_connection 3 returned 0 09:41:27.340700 Read 93 bytes 09:41:27.340805 Process 93 bytes request 09:41:27.340893 Got request: GET /verifiedserver HTTP/1.1 09:41:27.340969 Are-we-friendly question received 09:41:27.341199 Wrote request (93 bytes) input to log/54/server.input 09:41:27.341393 Identifying ourselves as friends 09:41:27.342273 Response sent (56 bytes) and written to log/54/server.response 09:41:27.342387 special request received, no persistency 09:41:27.342529 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 1343 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind1343 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1343 test 1322...[HTTP with --resolve and hostname with trailing dot] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1322 ../src/curl -q --output log/55/curl1322.out --include --trace-ascii log/55/trace1322 --trace-config all --trace-time --ipv4 --resolve example.com.:33071:127.0.0.1 http://example.com.:33071/1322 > log/55/stdout1322 2> log/55/stderr1322 1322: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 1322 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1322 ../src/curl -q --output log/55/curl1322.out --include --trace-ascii log/55/trace1322 --trace-config all --trace-time --ipv4 --resolve example.com.:33071:127.0.0.1 http://example.com.:33071/1322 > log/55/stdout1322 2> log/55/stderr1322 === End of file commands.log === Start of file http_server.log 09:41:27.097867 ====> Client connect 09:41:27.098182 accept_connection 3 returned 4 09:41:27.098348 accept_connection 3 returned 0 09:41:27.098551 Read 93 bytes 09:41:27.098661 Process 93 bytes request 09:41:27.098746 Got request: GET /verifiedserver HTTP/1.1 09:41:27.098817 Are-we-friendly question received 09:41:27.099044 Wrote request (93 bytes) input to log/55/server.input 09:41:27.099224 Identifying ourselves as friends 09:41:27.099977 Response sent (56 bytes) and written to log/55/server.response 09:41:27.100089 special request received, no persistency 09:41:27.100153 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 1322 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind1322 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1322 test 1341...[HTTP GET with -O -J and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1341 ../src/curl -q --trace-ascii log/59/trace1341 --trace-config all --trace-time http://127.0.0.1:43695/1341 -J -O -D - -w "curl saved to filename %{filename_effective}\n" --output-dir log/59 > log/59/stdout1341 2> log/59/stderr1341 1341: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 1341 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1341 ../src/curl -q --trace-ascii log/59/trace1341 --trace-config all --trace-time http://127.0.0.1:43695/1341 -J -O -D - -w "curl saved to filename %{filename_effective}\n" --output-dir log/59 > log/59/stdout1341 2> log/59/stderr1341 === End of file commands.log === Start of file http_server.log 09:41:27.280841 ====> Client connect 09:41:27.281165 accept_connection 3 returned 4 09:41:27.281338 accept_connection 3 returned 0 09:41:27.284255 Read 93 bytes 09:41:27.284398 Process 93 bytes request 09:41:27.284647 Got request: GET /verifiedserver HTTP/1.1 09:41:27.284762 Are-we-friendly question received 09:41:27.284998 Wrote request (93 bytes) input to log/59/server.input 09:41:27.285180 Identifying ourselves as friends 09:41:27.287970 Response sent (56 bytes) and written to log/59/server.response 09:41:27.288104 special request received, no persistency 09:41:27.288192 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43695... * Connected to 127.0.0.1 (127.0.0.1) port 43695 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43695 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73752 === End of file http_verify.out === Start of file server.cmd Testnum 1341 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73752 === End of file server.response === Start of file valgrind1341 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1341 test 1353...[FTP download, file without C-D inside, using -O -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1353 ../src/curl -q --trace-ascii log/63/trace1353 --trace-config all --trace-time ftp://127.0.0.1:33267/path/file1353 -O -i -D log/63/heads1353 --output-dir log/63 > log/63/stdout1353 2> log/63/stderr1353 1353: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1353 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1353 ../src/curl -q --trace-ascii log/63/trace1353 --trace-config all --trace-time ftp://127.0.0.1:33267/path/file1353 -O -i -D log/63/heads1353 --output-dir log/63 > log/63/stdout1353 2> log/63/stderr1353 === End of file commands.log === Start of file ftp_server.log 09:41:27.407004 ====> Client connect 09:41:27.408332 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.413258 < "USER anonymous" 09:41:27.417963 > "331 We are happy you popped in![CR][LF]" 09:41:27.421666 < "PASS ftp@example.com" 09:41:27.422206 > "230 Welcome you silly person[CR][LF]" 09:41:27.426411 < "PWD" 09:41:27.428937 > "257 "/" is current directory[CR][LF]" 09:41:27.429611 < "EPSV" 09:41:27.430168 ====> Passive DATA channel requested by client 09:41:27.430376 DATA sockfilt for passive data channel starting... 09:41:27.463875 DATA sockfilt for passive data channel started (pid 142088) 09:41:27.465375 DATA sockfilt for passive data channel listens on port 37531 09:41:27.465875 > "229 Entering Passive Mode (|||37531|)[LF]" 09:41:27.466124 Client has been notified that DATA conn will be accepted on port 37531 09:41:27.471247 Client connects to port 37531 09:41:27.471587 ====> Client established passive DATA connection on port 37531 09:41:27.478075 < "TYPE I" 09:41:27.478504 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.484731 < "SIZE verifiedserver" 09:41:27.487469 > "213 17[CR][LF]" 09:41:27.489575 < "RETR verifiedserver" 09:41:27.490850 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.494381 =====> Closing passive DATA connection... 09:41:27.494646 Server disconnects passive DATA connection 09:41:27.498065 Server disconnected passive DATA connection 09:41:27.498363 DATA sockfilt for passive data channel quits (pid 142088) 09:41:27.505126 DATA sockfilt for passive data channel quit (pid 142088) 09:41:27.505341 =====> Closed passive DATA connection 09:41:27.505653 > "226 File transfer complete[CR][LF]" 09:41:27.533058 < "QUIT" 09:41:27.534911 > "221 bye bye baby[CR][LF]" 09:41:27.535525 MAIN sockfilt said DISC 09:41:27.535944 ====> Client disconnected 09:41:27.536433 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.659806 ====> Client connect 09:41:27.664577 Received DATA (on stdin) 09:41:27.664750 > 160 bytes data, server => client 09:41:27.664843 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.664931 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.665010 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.665937 < 16 bytes data, client => server 09:41:27.666082 'USER anonymous\r\n' 09:41:27.667327 Received DATA (on stdin) 09:41:27.667539 > 33 bytes data, server => client 09:41:27.673360 '331 We are happy you popped in!\r\n' 09:41:27.674618 < 22 bytes data, client => server 09:41:27.674755 'PASS ftp@example.com\r\n' 09:41:27.676248 Received DATA (on stdin) 09:41:27.676389 > 30 bytes data, server => client 09:41:27.676582 '230 Welcome you silly person\r\n' 09:41:27.679201 < 5 bytes data, client => server 09:41:27.679351 'PWD\r\n' 09:41:27.680569 Received DATA (on stdin) 09:41:27.680730 > 30 bytes data, server => client 09:41:27.680906 '257 "/" is current directory\r\n' 09:41:27.681697 < 6 bytes data, client => server 09:41:27.681841 'EPSV\r\n' 09:41:27.720898 Received DATA (on stdin) 09:41:27.721056 > 38 bytes data, server => client 09:41:27.721144 '229 Entering Passive Mode (|||37531|)\n' 09:41:27.728135 < 8 bytes data, client => server 09:41:27.728289 'TYPE I\r\n' 09:41:27.735868 Received DATA (on stdin) 09:41:27.735989 > 33 bytes data, server => client 09:41:27.736078 '200 I modify TYPE as you wanted\r\n' 09:41:27.737664 < 21 bytes data, client => server 09:41:27.737836 'SIZE verifiedserver\r\n' 09:41:27.741546 Received DATA (on stdin) 09:41:27.741702 > 8 bytes data, server => client 09:41:27.741804 '213 17\r\n' 09:41:27.742428 < 21 bytes data, client => server 09:41:27.742641 'RETR verifiedserver\r\n' 09:41:27.743828 Received DATA (on stdin) 09:41:27.743955 > 29 bytes data, server => client 09:41:27.744119 '150 Binary junk (17 bytes).\r\n' 09:41:27.759801 Received DATA (on stdin) 09:41:27.759935 > 28 bytes data, server => client 09:41:27.760029 '226 File transfer complete\r\n' 09:41:27.785901 < 6 bytes data, client => server 09:41:27.786024 'QUIT\r\n' 09:41:27.787166 Received DATA (on stdin) 09:41:27.787307 > 18 bytes data, server => client 09:41:27.787545 '221 bye bye baby\r\n' 09:41:27.789007 ====>CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1374 ../src/curl -q --trace-ascii log/60/trace1374 --trace-config all --trace-time http://127.0.0.1:38843/1374 -i -o log/60/outfile1374 -D log/60/heads1374 > log/60/stdout1374 2> log/60/stderr1374 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1320 ../src/curl -q --output log/58/curl1320.out --include --trace-ascii log/58/trace1320 --trace-config all --trace-time smtp://smtp.1320:45507/1320 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - -p -x 127.0.0.1:35605 log/58/stdout1320 2> log/58/stderr1320 Client disconnect 09:41:27.792563 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.711909 Running IPv4 version 09:41:27.714088 Listening on port 37531 09:41:27.714625 Wrote pid 142088 to log/63/server/ftp_sockdata.pid 09:41:27.714879 Received PING (on stdin) 09:41:27.718578 Received PORT (on stdin) 09:41:27.724637 ====> Client connect 09:41:27.746861 Received DATA (on stdin) 09:41:27.747028 > 17 bytes data, server => client 09:41:27.747200 'WE ROOLZ: 77431\r\n' 09:41:27.749164 Received DISC (on stdin) 09:41:27.749296 ====> Client forcibly disconnected 09:41:27.753583 Received QUIT (on stdin) 09:41:27.753708 quits 09:41:27.754115 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1353 === End of file server.cmd === Start of file valgrind1353 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1353 test 1351...[FTP download, file without C-D inside, using -O -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1351 ../src/curl -q --trace-ascii log/9/trace1351 --trace-config all --trace-time ftp://127.0.0.1:36293/path/file1351 -O -J -D log/9/heads1351 --output-dir log/9 > log/9/stdout1351 2> log/9/stderr1351 1351: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 1351 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1351 ../src/curl -q --trace-ascii log/9/trace1351 --trace-config all --trace-time ftp://127.0.0.1:36293/path/file1351 -O -J -D log/9/heads1351 --output-dir log/9 > log/9/stdout1351 2> log/9/stderr1351 === End of file commands.log === Start of file ftp_server.log 09:41:27.374030 ====> Client connect 09:41:27.375403 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.395709 < "USER anonymous" 09:41:27.396397 > "331 We are happy you popped in![CR][LF]" 09:41:27.410293 < "PASS ftp@example.com" 09:41:27.410658 > "230 Welcome you silly person[CR][LF]" 09:41:27.423298 < "PWD" 09:41:27.423723 > "257 "/" is current directory[CR][LF]" 09:41:27.425367 < "EPSV" 09:41:27.425600 ====> Passive DATA channel requested by client 09:41:27.425827 DATA sockfilt for passive data channel starting... 09:41:27.464409 DATA sockfilt for passive data channel started (pid 142078) 09:41:27.467965 DATA sockfilt for passive data channel listens on port 41743 09:41:27.468903 > "229 Entering Passive Mode (|||41743|)[LF]" 09:41:27.469205 Client has been notified that DATA conn will be accepted on port 41743 09:41:27.472248 Client connects to port 41743 09:41:27.472589 ====> Client established passive DATA connection on port 41743 09:41:27.476928 < "TYPE I" 09:41:27.477270 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.486293 < "SIZE verifiedserver" 09:41:27.488566 > "213 17[CR][LF]" 09:41:27.489989 < "RETR verifiedserver" 09:41:27.490502 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.491434 =====> Closing passive DATA connection... 09:41:27.491691 Server disconnects passive DATA connection 09:41:27.495059 Server disconnected passive DATA connection 09:41:27.495322 DATA sockfilt for passive data channel quits (pid 142078) 09:41:27.497625 DATA sockfilt for passive data channel quit (pid 142078) 09:41:27.498004 =====> Closed passive DATA connection 09:41:27.499119 > "226 File transfer complete[CR][LF]" 09:41:27.535649 < "QUIT" 09:41:27.536218 > "221 bye bye baby[CR][LF]" 09:41:27.541215 MAIN sockfilt said DISC 09:41:27.544860 ====> Client disconnected 09:41:27.545370 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:26.623633 ====> Client connect 09:41:26.639614 Received DATA (on stdin) 09:41:26.639816 > 160 bytes data, server => client 09:41:26.640087 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:26.640257 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:26.640343 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:26.644201 < 16 bytes data, client => server 09:41:26.644382 'USER anonymous\r\n' 09:41:26.656582 Received DATA (on stdin) 09:41:26.656765 > 33 bytes data, server => client 09:41:26.656858 '331 We are happy you popped in!\r\n' 09:41:26.660106 < 22 bytes data, client => server 09:41:26.660276 'PASS ftp@example.com\r\n' 09:41:26.664675 Received DATA (on stdin) 09:41:26.664842 > 30 bytes data, server => client 09:41:26.664930 '230 Welcome you silly person\r\n' 09:41:26.667069 < 5 bytes data, client => server 09:41:26.667212 'PWD\r\n' 09:41:26.677453 Received DATA (on stdin) 09:41:26.677687 > 30 bytes data, server => client 09:41:26.677803 '257 "/" is current directory\r\n' 09:41:26.678581 < 6 bytes data, client => server 09:41:26.678738 'EPSV\r\n' 09:41:26.723270 Received DATA (on stdin) 09:41:26.723429 > 38 bytes data, server => client 09:41:26.723676 '229 Entering Passive Mode (|||41743|)\n' 09:41:26.725099 < 8 bytes data, client => server 09:41:26.725283 'TYPE I\r\n' 09:41:26.733050 Received DATA (on stdin) 09:41:26.733178 > 33 bytes data, server => client 09:41:26.733250 '200 I modify TYPE as you wanted\r\n' 09:41:26.738521 < 21 bytes data, client => server 09:41:26.738659 'SIZE verifiedserver\r\n' 09:41:26.740545 Received DATA (on stdin) 09:41:26.740691 > 8 bytes data, server => client 09:41:26.740866 '213 17\r\n' 09:41:26.742796 < 21 bytes data, client => server 09:41:26.742931 'RETR verifiedserver\r\n' 09:41:26.745940 Received DATA (on stdin) 09:41:26.746117 > 29 bytes data, server => client 09:41:26.746211 '150 Binary junk (17 bytes).\r\n' 09:41:26.752071 Received DATA (on stdin) 09:41:26.752214 > 28 bytes data, server => client 09:41:26.752424 '226 File transfer complete\r\n' 09:41:26.788549 < 6 bytes data, client => server 09:41:26.788704 'QUIT\r\n' 09:41:26.791565 Received DATA (on stdin) 09:41:26.791689 > 18 bytes data, server => client 09:41:26.791783 '221 bye bye baby\r\n' 09:41:26.794643 ====> Client disconnect 09:41:26.795254 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.716046 Running IPv4 version 09:41:27.716711 Listening on port 41743 09:41:27.717066 Wrote pid 142078 to log/9/server/ftp_sockdata.pid 09:41:27.717232 Received PING (on stdin) 09:41:27.720137 Received PORT (on stdin) 09:41:27.725575 ====> Client connect 09:41:27.746641 Received DATA (on stdin) 09:41:27.746805 > 17 bytes data, server => client 09:41:27.746898 'WE ROOLZ: 77386\r\n' 09:41:27.747239 Received DISC (on stdin) 09:41:27.747537 ====> Client forcibly disconnected 09:41:27.749305 Received QUIT (on stdin) 09:41:27.749436 quits 09:41:27.749887 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1351 === End of file server.cmd === Start of file valgrind1351 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1351 test 1371...[HTTP GET -o fname -J and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1371 ../src/curl -q --trace-ascii log/16/trace1371 --trace-config all --trace-time http://127.0.0.1:34829/1371 -J -o log/16/outfile1371 -D - > log/16/stdout1371 2> log/16/stderr1371 1371: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 1371 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1371 ../src/curl -q --trace-ascii log/16/trace1371 --trace-config all --trace-time http://127.0.0.1:34829/1371 -J -o log/16/outfile1371 -D - > log/16/stdout1371 2> log/16/stderr1371 === End of file commands.log === Start of file http_server.log 09:41:27.880866 ====> Client connect 09:41:27.881123 accept_connection 3 returned 4 09:41:27.881259 accept_connection 3 returned 0 09:41:27.884204 Read 93 bytes 09:41:27.884348 Process 93 bytes request 09:41:27.884427 Got request: GET /verifiedserver HTTP/1.1 09:41:27.884629 Are-we-friendly question received 09:41:27.884868 Wrote request (93 bytes) input to log/16/server.input 09:41:27.885045 Identifying ourselves as friends 09:41:27.891015 Response sent (56 bytes) and written to log/16/server.response 09:41:27.891130 special request received, no persistency 09:41:27.891202 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 1371 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind1371 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1371 test 1359...[FTP download, file with C-D inside, using -O -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1359 ../src/curl -q --trace-ascii log/22/trace1359 --trace-config all --trace-time ftp://127.0.0.1:41867/path/file1359 -O -J -D log/22/heads1359 --output-dir log/22 > log/22/stdout1359 2> log/22/stderr1359 1359: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 1359 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1359 ../src/curl -q --trace-ascii log/22/trace1359 --trace-config all --trace-time ftp://127.0.0.1:41867/path/file1359 -O -J -D log/22/heads1359 --output-dir log/22 > log/22/stdout1359 2> log/22/stderr1359 === End of file commands.log === Start of file ftp_server.log 09:41:27.374563 ====> Client connect 09:41:27.378937 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.379972 < "USER anonymous" 09:41:27.380357 > "331 We are happy you popped in![CR][LF]" 09:41:27.384408 < "PASS ftp@example.com" 09:41:27.384994 > "230 Welcome you silly person[CR][LF]" 09:41:27.390508 < "PWD" 09:41:27.392949 > "257 "/" is current directory[CR][LF]" 09:41:27.394719 < "EPSV" 09:41:27.395087 ====> Passive DATA channel requested by client 09:41:27.395248 DATA sockfilt for passive data channel starting... 09:41:27.415978 DATA sockfilt for passive data channel started (pid 142019) 09:41:27.419880 DATA sockfilt for passive data channel listens on port 40163 09:41:27.420358 > "229 Entering Passive Mode (|||40163|)[LF]" 09:41:27.420638 Client has been notified that DATA conn will be accepted on port 40163 09:41:27.427238 Client connects to port 40163 09:41:27.427550 ====> Client established passive DATA connection on port 40163 09:41:27.428482 < "TYPE I" 09:41:27.433005 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.435186 < "SIZE verifiedserver" 09:41:27.436246 > "213 17[CR][LF]" 09:41:27.438331 < "RETR verifiedserver" 09:41:27.438938 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.444207 =====> Closing passive DATA connection... 09:41:27.444430 Server disconnects passive DATA connection 09:41:27.446364 Server disconnected passive DATA connection 09:41:27.446612 DATA sockfilt for passive data channel quits (pid 142019) 09:41:27.450079 DATA sockfilt for passive data channel quit (pid 142019) 09:41:27.450336 =====> Closed passive DATA connection 09:41:27.452954 > "226 File transfer complete[CR][LF]" 09:41:27.485657 < "QUIT" 09:41:27.487379 > "221 bye bye baby[CR][LF]" 09:41:27.487678 MAIN sockfilt said DISC 09:41:27.490311 ====> Client disconnected 09:41:27.492448 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.627779 ====> Client connect 09:41:27.629593 Received DATA (on stdin) 09:41:27.629725 > 160 bytes data, server => client 09:41:27.630007 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.630229 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.630314 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.631368 < 16 bytes data, client => server 09:41:27.631601 'USER anonymous\r\n' 09:41:27.635574 Received DATA (on stdin) 09:41:27.635725 > 33 bytes data, server => client 09:41:27.635818 '331 We are happy you popped in!\r\n' 09:41:27.636533 < 22 bytes data, client => server 09:41:27.636689 'PASS ftp@example.com\r\n' 09:41:27.641622 Received DATA (on stdin) 09:41:27.641794 > 30 bytes data, server => client 09:41:27.642004 '230 Welcome you silly person\r\n' 09:41:27.643191 < 5 bytes data, client => server 09:41:27.643405 'PWD\r\n' 09:41:27.644702 Received DATA (on stdin) 09:41:27.644852 > 30 bytes data, server => client 09:41:27.647034 '257 "/" is current directory\r\n' 09:41:27.647831 < 6 bytes data, client => server 09:41:27.647932 'EPSV\r\n' 09:41:27.678591 Received DATA (on stdin) 09:41:27.678762 > 38 bytes data, server => client 09:41:27.678862 '229 Entering Passive Mode (|||40163|)\n' 09:41:27.680187 < 8 bytes data, client => server 09:41:27.680331 'TYPE I\r\n' 09:41:27.687082 Received DATA (on stdin) 09:41:27.687206 > 33 bytes data, server => client 09:41:27.687293 '200 I modify TYPE as you wanted\r\n' 09:41:27.687981 < 21 bytes data, client => server 09:41:27.688134 'SIZE verifiedserver\r\n' 09:41:27.689418 Received DATA (on stdin) 09:41:27.689664 > 8 bytes data, server => client 09:41:27.690348 '213 17\r\n' 09:41:27.691083 < 21 bytes data, client => server 09:41:27.691241 'RETR verifiedserver\r\n' 09:41:27.696573 Received DATA (on stdin) 09:41:27.696747 > 29 bytes data, server => client 09:41:27.696853 '150 Binary junk (17 bytes).\r\n' 09:41:27.704372 Received DATA (on stdin) 09:41:27.704628 > 28 bytes data, server => client 09:41:27.707054 '226 File transfer complete\r\n' 09:41:27.738386 < 6 bytes data, client => server 09:41:27.738696 'QUIT\r\n' 09:41:27.739830 Received DATA (on stdin) 09:41:27.739970 > 18 bytes data, server => client 09:41:27.740245 '221 bye bye baby\r\n' 09:41:27.740875 ====> Client disconnect 09:41:27.746541 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.668208 Running IPv4 version 09:41:27.668811 Listening on port 40163 09:41:27.669151 Wrote pid 142019 to log/22/server/ftp_sockdata.pid 09:41:27.669308 Received PING (on stdin) 09:41:27.672934 Received PORT (on stdin) 09:41:27.680705 ====> Client connect 09:41:27.693150 Received DATA (on stdin) 09:41:27.693303 > 17 bytes data, server => client 09:41:27.698392 'WE ROOLZ: 77494\r\n' 09:41:27.698806 Received DISC (on stdin) 09:41:27.698966 ====> Client forcibly disconnected 09:41:27.700639 Received QUIT (on stdin) 09:41:27.700770 quits 09:41:27.701130 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1359 === End of file server.cmd === Start of file valgrind1359 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1359 test 1370...[HTTP GET -o fname -J and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1370 ../src/curl -q --trace-ascii log/34/trace1370 --trace-config all --trace-time http://127.0.0.1:33117/1370 -J -o log/34/outfile1370 -D log/34/heads1370 > log/34/stdout1370 2> log/34/stderr1370 1370: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 1370 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1370 ../src/curl -q --trace-ascii log/34/trace1370 --trace-config all --trace-time http://127.0.0.1:33117/1370 -J -o log/34/outfile1370 -D log/34/heads1370 > log/34/stdout1370 2> log/34/stderr1370 === End of file commands.log === Start of file http_server.log 09:41:28.025882 ====> Client connect 09:41:28.026218 accept_connection 3 returned 4 09:41:28.026402 accept_connection 3 returned 0 09:41:28.026711 Read 93 bytes 09:41:28.026825 Process 93 bytes request 09:41:28.026915 Got request: GET /verifiedserver HTTP/1.1 09:41:28.026995 Are-we-friendly question received 09:41:28.027222 Wrote request (93 bytes) input to log/34/server.input 09:41:28.027428 Identifying ourselves as friends 09:41:28.036215 Response sent (56 bytes) and written to log/34/server.response 09:41:28.036343 special request received, no persistency 09:41:28.036416 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file server.cmd Testnum 1370 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file valgrind1370 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1370 test 1354...[FTP download, file without C-D inside, using -O -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1354 ../src/curl -q --trace-ascii log/42/trace1354 --trace-config all --trace-time ftp://127.0.0.1:40985/path/file1354 -O -i -D - --output-dir log/42 > log/42/stdout1354 2> log/42/stderr1354 1354: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 1354 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1354 ../src/curl -q --trace-ascii log/42/trace1354 --trace-config all --trace-time ftp://127.0.0.1:40985/path/file1354 -O -i -D - --output-dir log/42 > log/42/stdout1354 2> log/42/stderr1354 === End of file commands.log === Start of file ftp_server.log 09:41:27.444387 ====> Client connect 09:41:27.445801 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.449124 < "USER anonymous" 09:41:27.450288 > "331 We are happy you popped in![CR][LF]" 09:41:27.452011 < "PASS ftp@example.com" 09:41:27.453130 > "230 Welcome you silly person[CR][LF]" 09:41:27.454670 < "PWD" 09:41:27.455454 > "257 "/" is current directory[CR][LF]" 09:41:27.457289 < "EPSV" 09:41:27.457585 ====> Passive DATA channel requested by client 09:41:27.457882 DATA sockfilt for passive data channel starting... 09:41:27.473398 DATA sockfilt for passive data channel started (pid 142123) 09:41:27.474872 DATA sockfilt for passive data channel listens on port 46093 09:41:27.475470 > "229 Entering Passive Mode (|||46093|)[LF]" 09:41:27.475855 Client has been notified that DATA conn will be accepted on port 46093 09:41:27.479068 Client connects to port 46093 09:41:27.479397 ====> Client established passive DATA connection on port 46093 09:41:27.480258 < "TYPE I" 09:41:27.480630 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.482939 < "SIZE verifiedserver" 09:41:27.483398 > "213 17[CR][LF]" 09:41:27.485674 < "RETR verifiedserver" 09:41:27.486192 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.486988 =====> Closing passive DATA connection... 09:41:27.487250 Server disconnects passive DATA connection 09:41:27.490112 Server disconnected passive DATA connection 09:41:27.490467 DATA sockfilt for passive data channel quits (pid 142123) 09:41:27.493125 DATA sockfilt for passive data channel quit (pid 142123) 09:41:27.493462 =====> Closed passive DATA connection 09:41:27.493942 > "226 File transfer complete[CR][LF]" 09:41:27.532153 < "QUIT" 09:41:27.532566 > "221 bye bye baby[CR][LF]" 09:41:27.538009 MAIN sockfilt said DISC 09:41:27.538978 ====> Client disconnected 09:41:27.539531 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.697404 ====> Client connect 09:41:27.700240 Received DATA (on stdin) 09:41:27.700370 > 160 bytes data, server => client 09:41:27.700519 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.700626 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.700708 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.701373 < 16 bytes data, client => server 09:41:27.701589 'USER anonymous\r\n' 09:41:27.703222 Received DATA (on stdin) 09:41:27.703359 > 33 bytes data, server => client 09:41:27.703609 '331 We are happy you popped in!\r\n' 09:41:27.705006 < 22 bytes data, client => server 09:41:27.705173 'PASS ftp@example.com\r\n' 09:41:27.706085 Received DATA (on stdin) 09:41:27.706225 > 30 bytes data, server => client 09:41:27.706393 '230 Welcome you silly person\r\n' 09:41:27.707693 < 5 bytes data, client => server 09:41:27.707840 'PWD\r\n' 09:41:27.708847 Received DATA (on stdin) 09:41:27.708985 > 30 bytes data, server => client 09:41:27.709540 '257 "/" is current directory\r\n' 09:41:27.710247 < 6 bytes data, client => server 09:41:27.710385 'EPSV\r\n' 09:41:27.730042 Received DATA (on stdin) 09:41:27.730246 > 38 bytes data, server => client 09:41:27.730354 '229 Entering Passive Mode (|||46093|)\n' 09:41:27.732036 < 8 bytes data, client => server 09:41:27.732182 'TYPE I\r\n' 09:41:27.734764 Received DATA (on stdin) 09:41:27.734919 > 33 bytes data, server => client 09:41:27.735014 '200 I modify TYPE as you wanted\r\n' 09:41:27.735716 < 21 bytes data, client => server 09:41:27.735864 'SIZE verifiedserver\r\n' 09:41:27.737515 Received DATA (on stdin) 09:41:27.737695 > 8 bytes data, server => client 09:41:27.737787 '213 17\r\n' 09:41:27.738364 < 21 bytes data, client => server 09:41:27.738582 'RETR verifiedserver\r\n' 09:41:27.741243 Received DATA (on stdin) 09:41:27.741393 > 29 bytes data, server => client 09:41:27.741559 '150 Binary junk (17 bytes).\r\n' 09:41:27.748209 Received DATA (on stdin) 09:41:27.748381 > 28 bytes data, server => client 09:41:27.748566 '226 File transfer complete\r\n' 09:41:27.784634 < 6 bytes data, client => server 09:41:27.784917 'QUIT\r\n' 09:41:27.786813 Received DATA (on stdin) 09:41:27.787010 > 18 bytes data, server => client 09:41:27.787116 '221 bye bye baby\r\n' 09:41:27.791333 ====> Client disconnect 09:41:27.792074 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.724733 Running IPv4 version 09:41:27.725693 Listening on port 46093 09:41:27.726365 Wrote pid 142123 to log/42/server/ftp_sockdata.pid 09:41:27.726685 Received PING (on stdin) 09:41:27.727805 Received PORT (on stdin) 09:41:27.732380 ====> Client connect 09:41:27.741906 Received DATA (on stdin) 09:41:27.742058 > 17 bytes data, server => client 09:41:27.742141 'WE ROOLZ: 79706\r\n' 09:41:27.742393 Received DISC (on stdin) 09:41:27.742626 ====> Client forcibly disconnected 09:41:27.744577 Received QUIT (on stdin) 09:41:27.744743 quits 09:41:27.745254 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1354 === End of file server.cmd === Start of file valgrind1354 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1354 test 1362...[FTP download, file with C-D inside, using -O -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1362 ../src/curl -q --trace-ascii log/43/trace1362 --trace-config all --trace-time ftp://127.0.0.1:33177/path/file1362 -O -i -D - --output-dir log/43 > log/43/stdout1362 2> log/43/stderr1362 1362: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 1362 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1362 ../src/curl -q --trace-ascii log/43/trace1362 --trace-config all --trace-time ftp://127.0.0.1:33177/path/file1362 -O -i -D - --output-dir log/43 > log/43/stdout1362 2> log/43/stderr1362 === End of file commands.log === Start of file ftp_server.log 09:41:27.633029 ====> Client connect 09:41:27.634486 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.638978 < "USER anonymous" 09:41:27.639528 > "331 We are happy you popped in![CR][LF]" 09:41:27.643900 < "PASS ftp@example.com" 09:41:27.645964 > "230 Welcome you silly person[CR][LF]" 09:41:27.648066 < "PWD" 09:41:27.649957 > "257 "/" is current directory[CR][LF]" 09:41:27.655031 < "EPSV" 09:41:27.655353 ====> Passive DATA channel requested by client 09:41:27.655565 DATA sockfilt for passive data channel starting... 09:41:27.674868 DATA sockfilt for passive data channel started (pid 142456) 09:41:27.676190 DATA sockfilt for passive data channel listens on port 43153 09:41:27.679710 > "229 Entering Passive Mode (|||43153|)[LF]" 09:41:27.680671 Client has been notified that DATA conn will be accepted on port 43153 09:41:27.685910 Client connects to port 43153 09:41:27.686266 ====> Client established passive DATA connection on port 43153 09:41:27.687170 < "TYPE I" 09:41:27.687617 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.689640 < "SIZE verifiedserver" 09:41:27.693163 > "213 17[CR][LF]" 09:41:27.693940 < "RETR verifiedserver" 09:41:27.695443 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.696309 =====> Closing passive DATA connection... 09:41:27.696549 Server disconnects passive DATA connection 09:41:27.698066 Server disconnected passive DATA connection 09:41:27.698383 DATA sockfilt for passive data channel quits (pid 142456) 09:41:27.703525 DATA sockfilt for passive data channel quit (pid 142456) 09:41:27.703886 =====> Closed passive DATA connection 09:41:27.704339 > "226 File transfer complete[CR][LF]" 09:41:27.737411 < "QUIT" 09:41:27.737932 > "221 bye bye baby[CR][LF]" 09:41:27.743331 MAIN sockfilt said DISC 09:41:27.744262 ====> Client disconnected 09:41:27.747261 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.840271 ====> Client connect 09:41:27.888201 Received DATA (on stdin) 09:41:27.888376 > 160 bytes data, server => client 09:41:27.888593 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.888732 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.888830 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.889751 < 16 bytes data, client => server 09:41:27.889942 'USER anonymous\r\n' 09:41:27.893724 Received DATA (on stdin) 09:41:27.893916 > 33 bytes data, server => client 09:41:27.894027 '331 We are happy you popped in!\r\n' 09:41:27.896713 < 22 bytes data, client => server 09:41:27.896883 'PASS ftp@example.com\r\n' 09:41:27.898027 Received DATA (on stdin) 09:41:27.898171 > 30 bytes data, server => client 09:41:27.900038 '230 Welcome you silly person\r\n' 09:41:27.900895 < 5 bytes data, client => server 09:41:27.901063 'PWD\r\n' 09:41:27.902211 Received DATA (on stdin) 09:41:27.902361 > 30 bytes data, server => client 09:41:27.906589 '257 "/" is current directory\r\n' 09:41:27.907394 < 6 bytes data, client => server 09:41:27.907644 'EPSV\r\n' 09:41:27.930381 Received DATA (on stdin) 09:41:27.930647 > 38 bytes data, server => client 09:41:27.931651 '229 Entering Passive Mode (|||43153|)\n' 09:41:27.935348 < 8 bytes data, client => server 09:41:27.935819 'TYPE I\r\n' 09:41:27.941337 Received DATA (on stdin) 09:41:27.941628 > 33 bytes data, server => client 09:41:27.941763 '200 I modify TYPE as you wanted\r\n' 09:41:27.942595 < 21 bytes data, client => server 09:41:27.942749 'SIZE verifiedserver\r\n' 09:41:27.944118 Received DATA (on stdin) 09:41:27.944275 > 8 bytes data, server => client 09:41:27.944821 '213 17\r\n' 09:41:27.946547 < 21 bytes data, client => server 09:41:27.946712 'RETR verifiedserver\r\n' 09:41:27.948090 Received DATA (on stdin) 09:41:27.948243 > 29 bytes data, server => client 09:41:27.948419 '150 Binary junk (17 bytes).\r\n' 09:41:27.958063 Received DATA (on stdin) 09:41:27.958233 > 28 bytes data, server => client 09:41:27.958329 '226 File transfer complete\r\n' 09:41:27.990602 < 6 bytes data, client => server 09:41:27.990801 'QUIT\r\n' 09:41:27.993429 Received DATA (on stdin) 09:41:27.993710 > 18 bytes data, server => client 09:41:27.993836 '221 bye bye baby\r\n' 09:41:27.996714 ====> Client disconnect 09:41:27.997377 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.926877 Running IPv4 version 09:41:27.927611 Listening on port 43153 09:41:27.928006 Wrote pid 142456 to log/43/server/ftp_sockdata.pid 09:41:27.928178 Received PING (on stdin) 09:41:27.929108 Received PORT (on stdin) 09:41:27.936666 ====> Client connect 09:41:27.949706 Received DATA (on stdin) 09:41:27.949868 > 17 bytes data, server => client 09:41:27.949953 'WE ROOLZ: 94256\r\n' 09:41:27.950701 Received DISC (on stdin) 09:41:27.950888 ====> Client forcibly disconnected 09:41:27.952447 Received QUIT (on stdin) 09:41:27.952663 quits 09:41:27.953070 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1362 === End of file server.cmd === Start of file valgrind1362 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1362 test 1361...[FTP download, file with C-D inside, using -O -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1361 ../src/curl -q --trace-ascii log/45/trace1361 --trace-config all --trace-time ftp://127.0.0.1:41719/path/file1361 -O -i -D log/45/heads1361 --output-dir log/45 > log/45/stdout1361 2> log/45/stderr1361 1361: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 1361 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1361 ../src/curl -q --trace-ascii log/45/trace1361 --trace-config all --trace-time ftp://127.0.0.1:41719/path/file1361 -O -i -D log/45/heads1361 --output-dir log/45 > log/45/stdout1361 2> log/45/stderr1361 === End of file commands.log === Start of file ftp_server.log 09:41:27.561905 ====> Client connect 09:41:27.563061 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:27.567693 < "USER anonymous" 09:41:27.568910 > "331 We are happy you popped in![CR][LF]" 09:41:27.570422 < "PASS ftp@example.com" 09:41:27.571660 > "230 Welcome you silly person[CR][LF]" 09:41:27.572907 < "PWD" 09:41:27.573310 > "257 "/" is current directory[CR][LF]" 09:41:27.575213 < "EPSV" 09:41:27.575456 ====> Passive DATA channel requested by client 09:41:27.575601 DATA sockfilt for passive data channel starting... 09:41:27.652306 DATA sockfilt for passive data channel started (pid 142354) 09:41:27.653373 DATA sockfilt for passive data channel listens on port 43325 09:41:27.653897 > "229 Entering Passive Mode (|||43325|)[LF]" 09:41:27.654168 Client has been notified that DATA conn will be accepted on port 43325 09:41:27.658610 Client connects to port 43325 09:41:27.659016 ====> Client established passive DATA connection on port 43325 09:41:27.659878 < "TYPE I" 09:41:27.660412 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:27.662149 < "SIZE verifiedserver" 09:41:27.663725 > "213 17[CR][LF]" 09:41:27.664460 < "RETR verifiedserver" 09:41:27.665825 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:27.666467 =====> Closing passive DATA connection... 09:41:27.666664 Server disconnects passive DATA connection 09:41:27.668421 Fancy that; client wants to DISC, too 09:41:27.669320 Server disconnected passive DATA connection 09:41:27.669640 DATA sockfilt for passive data channel quits (pid 142354) 09:41:27.671412 DATA sockfilt for passive data channel quit (pid 142354) 09:41:27.671668 =====> Closed passive DATA connection 09:41:27.672020 > "226 File transfer complete[CR][LF]" 09:41:27.707619 < "QUIT" 09:41:27.708532 > "221 bye bye baby[CR][LF]" 09:41:27.710106 MAIN sockfilt said DISC 09:41:27.713372 ====> Client disconnected 09:41:27.713959 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:27.813580 ====> Client connect 09:41:27.817083 Received DATA (on stdin) 09:41:27.817190 > 160 bytes data, server => client 09:41:27.817271 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:27.817343 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:27.817409 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:27.820360 < 16 bytes data, client => server 09:41:27.820582 'USER anonymous\r\n' 09:41:27.821873 Received DATA (on stdin) 09:41:27.822008 > 33 bytes data, server => client 09:41:27.822164 '331 We are happy you popped in!\r\n' 09:41:27.823568 < 22 bytes data, client => server 09:41:27.823727 'PASS ftp@example.com\r\n' 09:41:27.824548 Received DATA (on stdin) 09:41:27.824693 > 30 bytes data, server => client 09:41:27.824850 '230 Welcome you silly person\r\n' 09:41:27.825870 < 5 bytes data, client => server 09:41:27.825994 'PWD\r\n' 09:41:27.827329 Received DATA (on stdin) 09:41:27.827443 > 30 bytes data, server => client 09:41:27.827609 '257 "/" is current directory\r\n' 09:41:27.828148 < 6 bytes data, client => server 09:41:27.828269 'EPSV\r\n' 09:41:27.907611 Received DATA (on stdin) 09:41:27.907760 > 38 bytes data, server => client 09:41:27.907839 '229 Entering Passive Mode (|||43325|)\n' 09:41:27.912265 < 8 bytes data, client => server 09:41:27.912405 'TYPE I\r\n' 09:41:27.914208 Received DATA (on stdin) 09:41:27.914369 > 33 bytes data, server => client 09:41:27.914445 '200 I modify TYPE as you wanted\r\n' 09:41:27.915121 < 21 bytes data, client => server 09:41:27.915255 'SIZE verifiedserver\r\n' 09:41:27.916205 Received DATA (on stdin) 09:41:27.916326 > 8 bytes data, server => client 09:41:27.916512 '213 17\r\n' 09:41:27.917115 < 21 bytes data, client => server 09:41:27.917268 'RETR verifiedserver\r\n' 09:41:27.918572 Received DATA (on stdin) 09:41:27.918700 > 29 bytes data, server => client 09:41:27.918873 '150 Binary junk (17 bytes).\r\n' 09:41:27.926020 Received DATA (on stdin) 09:41:27.926137 > 28 bytes data, server => client 09:41:27.926214 '226 File transfer complete\r\n' 09:41:27.960572 < 6 bytes data, client => server 09:41:27.960733 'QUIT\r\n' 09:41:27.961903 Received DATA (on stdin) 09:41:27.962048 > 18 bytes data, server => client 09:41:27.962582 '221 bye bye baby\r\n' 09:41:27.963573 ====> Client disconnect 09:41:27.964072 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:27.903820 Running IPv4 version 09:41:27.904280 Listening on port 43325 09:41:27.905583 Wrote pid 142354 to log/45/server/ftp_sockdata.pid 09:41:27.905756 Received PING (on stdin) 09:41:27.906442 Received PORT (on stdin) 09:41:27.912054 ====> Client connect 09:41:27.920666 Received DATA (on stdin) 09:41:27.920798 > 17 bytes data, server => client 09:41:27.920867 'WE ROOLZ: 78026\r\n' 09:41:27.921579 ====> Client disconnect 09:41:27.921907 Received DISC (on stdin) 09:41:27.922012 Crikey! Client also wants to disconnect 09:41:27.922354 Received ACKD (on stdin) 09:41:27.923662 Received QUIT (on stdin) 09:41:27.923779 quits 09:41:27.924145 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1361 === End of file server.cmd === Start of file valgrind1361 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1361 test 1375...[HTTP GET -o fname -i and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1375 ../src/curl -q --trace-ascii log/51/trace1375 --trace-config all --trace-time http://127.0.0.1:34903/1375 -i -o log/51/outfile1375 -D - > log/51/stdout1375 2> log/51/stderr1375 1375: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 1375 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1375 ../src/curl -q --trace-ascii log/51/trace1375 --trace-config all --trace-time http://127.0.0.1:34903/1375 -i -o log/51/outfile1375 -D - > log/51/stdout1375 2> log/51/stderr1375 === End of file commands.log === Start of file http_server.log 09:41:28.374736 ====> Client connect 09:41:28.375088 accept_connection 3 returned 4 09:41:28.375253 accept_connection 3 returned 0 09:41:28.375972 Read 93 bytes 09:41:28.376156 Process 93 bytes request 09:41:28.376261 Got request: GET /verifiedserver HTTP/1.1 09:41:28.376362 Are-we-friendly question received 09:41:28.376763 Wrote request (93 bytes) input to log/51/server.input 09:41:28.376982 Identifying ourselves as friends 09:41:28.377655 Response sent (56 bytes) and written to log/51/server.response 09:41:28.377795 special request received, no persistency 09:41:28.377879 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 1375 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind1375 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1375 test 1368...[HTTP GET -o fname -J without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1368 ../src/curl -q --trace-ascii log/52/trace1368 --trace-config all --trace-time http://127.0.0.1:40089/1368 -J -o log/52/outfile1368 -D log/52/heads1368 > log/52/stdout1368 2> log/52/stderr1368 1368: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1368 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1368 ../src/curl -q --trace-ascii log/52/trace1368 --trace-config all --trace-time http://127.0.0.1:40089/1368 -J -o log/52/outfile1368 -D log/52/heads1368 > log/52/stdout1368 2> log/52/stderr1368 === End of file commands.log === Start of file http_server.log 09:41:27.977814 ====> Client connect 09:41:27.978083 accept_connection 3 returned 4 09:41:27.978240 accept_connection 3 returned 0 09:41:27.978373 Read 93 bytes 09:41:27.978552 Process 93 bytes request 09:41:27.978660 Got request: GET /verifiedserver HTTP/1.1 09:41:27.978732 Are-we-friendly question received 09:41:27.978921 Wrote request (93 bytes) input to log/52/server.input 09:41:27.979070 Identifying ourselves as friends 09:41:27.979788 Response sent (56 bytes) and written to log/52/server.response 09:41:27.979887 special request received, no persistency 09:41:27.979946 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 1368 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind1368 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1368 test 1376...[HTTP GET -o fname -i without Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1376 ../src/curl -q --trace-ascii log/53/trace1376 --trace-config all --trace-time http://127.0.0.1:34639/1376 -i -o log/53/outfile1376 > log/53/stdout1376 2> log/53/stderr1376 1376: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 1376 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1376 ../src/curl -q --trace-ascii log/53/trace1376 --trace-config all --trace-time http://127.0.0.1:34639/1376 -i -o log/53/outfile1376 > log/53/stdout1376 2> log/53/stderr1376 === End of file commands.log === Start of file http_server.log 09:41:28.156372 ====> Client connect 09:41:28.156837 accept_connection 3 returned 4 09:41:28.157015 accept_connection 3 returned 0 09:41:28.157150 Read 93 bytes 09:41:28.157254 Process 93 bytes request 09:41:28.157340 Got request: GET /verifiedserver HTTP/1.1 09:41:28.157420 Are-we-friendly question received 09:41:28.157751 Wrote request (93 bytes) input to log/53/server.input 09:41:28.157941 Identifying ourselves as friends 09:41:28.164137 Response sent (56 bytes) and written to log/53/server.response 09:41:28.164267 special request received, no persistency 09:41:28.164355 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 1376 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind1376 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1376 test 1374...[HTTP GET -o fname -i and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1374 ../src/curl -q --trace-ascii log/60/trace1374 --trace-config all --trace-time http://127.0.0.1:38843/1374 -i -o log/60/outfile1374 -D log/60/heads1374 > log/60/stdout1374 2> log/60/stderr1374 1374: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1374 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1374 ../src/curl -q --trace-ascii log/60/trace1374 --trace-config all --trace-time http://127.0.0.1:38843/1374 -i -o log/60/outfile1374 -D log/60/heads1374 > log/60/stdout1374 2> log/60/stderr1374 === End of file commands.log === Start of file http_server.log 09:41:28.266946 ====> Client connect 09:41:28.267271 accept_connection 3 returned 4 09:41:28.267428 accept_connection 3 returned 0 09:41:28.267713 Read 93 bytes 09:41:28.267849 Process 93 bytes request 09:41:28.267947 Got request: GET /verifiedserver HTTP/1.1 09:41:28.268055 Are-we-friendly question received 09:41:28.268355 Wrote request (93 bytes) input to log/60/server.input 09:41:28.268692 Identifying ourselves as friends 09:41:28.269578 Response sent (56 bytes) and written to log/60/server.response 09:41:28.269717 special request received, no persistency 09:41:28.269811 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1374 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1374 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1374 test 1373...[HTTP GET -o fname -i without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1373 ../src/curl -q --trace-ascii log/64/trace1373 --trace-config all --trace-time http://127.0.0.1:33073/1373 -i -o log/64/outfile1373 -D - > log/64/stdout1373 2> log/64/stderr1373 1373: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1373 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1373 ../src/curl -q --trace-ascii log/64/trace1373 --trace-config all --trace-time http://127.0.0.1:33073/1373 -i -o log/64/outfile1373 -D - > log/64/stdout1373 2> log/64/stderr1373 === End of file commands.log === Start of file http_server.log 09:41:27.972332 ====> Client connect 09:41:27.972821 accept_connection 3 returned 4 09:41:27.973004 accept_connection 3 returned 0 09:41:27.973141 Read 93 bytes 09:41:27.973245 Process 93 bytes request 09:41:27.973344 Got request: GET /verifiedserver HTTP/1.1 09:41:27.973430 Are-we-friendly question received 09:41:27.973783 Wrote request (93 bytes) input to log/64/server.input 09:41:27.973986 Identifying ourselves as friends 09:41:27.974866 Response sent (56 bytes) and written to log/64/server.response 09:41:27.974993 special request received, no persistency 09:41:27.975066 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1373 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1373 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1373 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/58/server/http2_server.pid" --logfile "log/58/http2_server.log" --logdir "log/58" --portfile log/58/server/http2_server.port --config log/58/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 141247 port 35605 * pid http-proxy => 141247 141247 test 1320...[SMTP send tunneled through HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1320 ../src/curl -q --output log/58/curl1320.out --include --trace-ascii log/58/trace1320 --trace-config all --trace-time smtp://smtp.1320:45507/1320 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - -p -x 127.0.0.1:35605 log/58/stdout1320 2> log/58/stderr1320 1320: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 1320 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1320 ../src/curl -q --output log/58/curl1320.out --include --trace-ascii log/58/trace1320 --trace-config all --trace-time smtp://smtp.1320:45507/1320 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - -p -x 127.0.0.1:35605 log/58/stdout1320 2> log/58/stderr1320 === End of file commands.log === Start of file http2_server.log 09:41:27.659975 Run as proxy, CONNECT to host 127.0.0.1 09:41:27.660920 Running HTTP IPv4 version on port 35605 09:41:27.661408 Wrote pid 141247 to log/58/server/http2_server.pid 09:41:27.661896 Wrote port 35605 to log/58/server/http2_server.port === End of file http2_server.log === Start of file server.cmd Testnum 1320 === End of file server.cmd === Start of file smtp_server.log 09:41:26.918294 ====> Client connect 09:41:26.919601 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:26.923999 < "EHLO verifiedserver" 09:41:26.924431 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:26.930304 < "HELP" 09:41:26.930721 > "214 WE ROOLZ: 118129[CR][LF]" 09:41:26.931024 return proof we are we 09:41:26.933316 < "QUIT" 09:41:26.934874 > "221 curl ESMTP server signing off[CR][LF]" 09:41:26.939173 MAIN sockfilt said DISC 09:41:26.939491 ====> Client disconnected 09:41:26.940032 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:26.169133 ====> Client connect 09:41:26.174558 Received DATA (on stdin) 09:41:26.174737 > 160 bytes data, server => client 09:41:26.174855 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:26.174955 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:26.175045 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:26.176636 < 21 bytes data, client => server 09:41:26.176758 'EHLO verifiedserver\r\n' 09:41:26.179920 Received DATA (on stdin) 09:41:26.180038 > 53 bytes data, server => client 09:41:26.180116 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:26.180920 < 6 bytes data, client => server 09:41:26.181094 'HELP\r\n' 09:41:26.185008 Received DATA (on stdin) 09:41:26.185149 > 22 bytes data, server => client 09:41:26.185237 '214 WE ROOLZ: 118129\r\n' 09:41:26.186411 < 6 bytes data, client => server 09:41:26.186617 'QUIT\r\n' 09:41:26.187369 Received DATA (on stdin) 09:41:26.187567 > 35 bytes data, server => client 09:41:26.188905 '221 curl ESMTP server signing off\r\n' 09:41:26.190732 ====> Client disconnect 09:41:26.194059 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1320 From: different To: another body === End of file stdin-for-1320 === Start of file valgrind1320 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so isCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1309 ./unit/units unit1309 - > log/57/stdout1309 2> log/57/stderr1309 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1378 ../src/curl -q --trace-ascii log/47/trace1378 --trace-config all --trace-time ftp://127.0.0.1:45575/path/file1378 -o log/47/download1378 > log/47/stdout1378 2> log/47/stderr1378 called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1320 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1319 ../src/curl -q --output log/61/curl1319.out --include --trace-ascii log/61/trace1319 --trace-config all --trace-time pop3://pop.1319:42871/1319 -p -x 127.0.0.1:37801 -u user:secret > log/61/stdout1319 2> log/61/stderr1319 * starts no server test 1309...[splay unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1309 ./unit/units unit1309 - > log/57/stdout1309 2> log/57/stderr1309 1309: stdout FAILED: --- log/57/check-expected 2025-07-18 09:41:29.982583238 +0000 +++ log/57/check-generated 2025-07-18 09:41:29.968583245 +0000 @@ -1,1537 +0,0 @@ -Result:[LF] - 0.1013[3][LF] - 0.1003[2][LF] - 0.954[3][LF] - 0.944[1][LF] -0.934[0][LF] - 0.895[1][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[4][LF] - 0.826[7][LF] - 0.816[6][LF] - 0.777[5][LF] - 0.767[9][LF] - 0.757[8][LF] - 0.718[7][LF] - 0.708[10][LF] - 0.698[9][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[6][LF] - 0.531[9][LF] - 0.521[10][LF] - 0.472[8][LF] - 0.462[9][LF] - 0.413[7][LF] - 0.403[2][LF] - 0.393[3][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.295[7][LF] - 0.285[6][LF] - 0.275[7][LF] - 0.236[9][LF] - 0.226[8][LF] - 0.216[9][LF] - 0.177[11][LF] - 0.167[12][LF] - 0.157[10][LF] - 0.118[11][LF] - 0.108[13][LF] - 0.98[12][LF] - 0.59[13][LF] - 0.49[15][LF] - 0.39[14][LF] - 0.0[15][LF] -Tree look:[LF] - 0.1013[3][LF] - 0.1003[2][LF] - 0.954[3][LF] - 0.944[1][LF] -0.934[0][LF] - 0.895[1][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[4][LF] - 0.826[7][LF] - 0.816[6][LF] - 0.777[5][LF] - 0.767[9][LF] - 0.757[8][LF] - 0.718[7][LF] - 0.708[10][LF] - 0.698[9][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[6][LF] - 0.531[9][LF] - 0.521[10][LF] - 0.472[8][LF] - 0.462[9][LF] - 0.413[7][LF] - 0.403[2][LF] - 0.393[3][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.295[7][LF] - 0.285[6][LF] - 0.275[7][LF] - 0.236[9][LF] - 0.226[8][LF] - 0.216[9][LF] - 0.177[11][LF] - 0.167[12][LF] - 0.157[10][LF] - 0.118[11][LF] - 0.108[13][LF] - 0.98[12][LF] - 0.59[13][LF] - 0.49[15][LF] - 0.39[14][LF] - 0.0[15][LF] -remove pointer 7, payload 718[LF] -Tree look:[LF] - 0.1013[5][LF] - 0.1003[4][LF] - 0.954[5][LF] - 0.944[3][LF] - 0.934[2][LF] - 0.895[1][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[2][LF] - 0.826[5][LF] - 0.816[4][LF] - 0.777[3][LF] - 0.767[5][LF] - 0.757[4][LF] -0.708[0][LF] - 0.698[2][LF] - 0.659[3][LF] - 0.649[4][LF] - 0.639[5][LF] - 0.600[7][LF] - 0.590[8][LF] - 0.580[6][LF] - 0.541[1][LF] - 0.531[5][LF] - 0.521[6][LF] - 0.472[4][LF] - 0.462[5][LF] - 0.413[3][LF] - 0.403[2][LF] - 0.393[3][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.295[7][LF] - 0.285[6][LF] - 0.275[7][LF] - 0.236[9][LF] - 0.226[8][LF] - 0.216[9][LF] - 0.177[11][LF] - 0.167[12][LF] - 0.157[10][LF] - 0.118[11][LF] - 0.108[13][LF] - 0.98[12][LF] - 0.59[13][LF] - 0.49[15][LF] - 0.39[14][LF] - 0.0[15][LF] -remove pointer 8, payload 236[LF] -Tree look:[LF] - 0.1013[7][LF] - 0.1003[6][LF] - 0.954[7][LF] - 0.944[5][LF] - 0.934[4][LF] - 0.895[3][LF] - 0.885[6][LF] - 0.875[5][LF] - 0.836[4][LF] - 0.826[7][LF] - 0.816[6][LF] - 0.777[5][LF] - 0.767[7][LF] - 0.757[6][LF] - 0.708[2][LF] - 0.698[3][LF] - 0.659[4][LF] - 0.649[5][LF] - 0.639[6][LF] - 0.600[8][LF] - 0.590[9][LF] - 0.580[7][LF] - 0.541[1][LF] - 0.531[6][LF] - 0.521[7][LF] - 0.472[5][LF] - 0.462[6][LF] - 0.413[4][LF] - 0.403[3][LF] - 0.393[2][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[3][LF] - 0.295[6][LF] - 0.285[5][LF] - 0.275[4][LF] -0.226[0][LF] - 0.216[1][LF] - 0.177[3][LF] - 0.167[4][LF] - 0.157[2][LF] - 0.118[3][LF] - 0.108[5][LF] - 0.98[4][LF] - 0.59[5][LF] - 0.49[7][LF] - 0.39[6][LF] - 0.0[7][LF] -remove pointer 9, payload 777[LF] -Tree look:[LF] - 0.1013[6][LF] - 0.1003[5][LF] - 0.954[6][LF] - 0.944[4][LF] - 0.934[3][LF] - 0.895[2][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[1][LF] - 0.826[3][LF] - 0.816[2][LF] -0.767[0][LF] - 0.757[2][LF] - 0.708[1][LF] - 0.698[3][LF] - 0.659[4][LF] - 0.649[5][LF] - 0.639[6][LF] - 0.600[8][LF] - 0.590[9][LF] - 0.580[7][LF] - 0.541[2][LF] - 0.531[8][LF] - 0.521[9][LF] - 0.472[7][LF] - 0.462[8][LF] - 0.413[6][LF] - 0.403[5][LF] - 0.393[4][LF] - 0.354[7][LF] - 0.344[6][LF] - 0.334[5][LF] - 0.295[8][LF] - 0.285[7][LF] - 0.275[6][LF] - 0.226[3][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.167[7][LF] - 0.157[5][LF] - 0.118[6][LF] - 0.108[8][LF] - 0.98[7][LF] - 0.59[8][LF] - 0.49[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 10, payload 295[LF] -Tree look:[LF] - 0.1013[8][LF] - 0.1003[7][LF] - 0.954[8][LF] - 0.944[6][LF] - 0.934[5][LF] - 0.895[4][LF] - 0.885[6][LF] - 0.875[5][LF] - 0.836[3][LF] - 0.826[5][LF] - 0.816[4][LF] - 0.767[2][LF] - 0.757[3][LF] - 0.708[1][LF] - 0.698[3][LF] - 0.659[4][LF] - 0.649[5][LF] - 0.639[6][LF] - 0.600[8][LF] - 0.590[9][LF] - 0.580[7][LF] - 0.541[2][LF] - 0.531[8][LF] - 0.521[9][LF] - 0.472[7][LF] - 0.462[8][LF] - 0.413[6][LF] - 0.403[5][LF] - 0.393[4][LF] - 0.354[6][LF] - 0.344[5][LF] - 0.334[3][LF] -0.285[0][LF] - 0.275[2][LF] - 0.226[1][LF] - 0.216[2][LF] - 0.177[4][LF] - 0.167[5][LF] - 0.157[3][LF] - 0.118[4][LF] - 0.108[6][LF] - 0.98[5][LF] - 0.59[6][LF] - 0.49[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 11, payload 836[LF] -Tree look:[LF] - 0.1013[5][LF] - 0.1003[4][LF] - 0.954[5][LF] - 0.944[3][LF] - 0.934[2][LF] - 0.895[1][LF] - 0.885[3][LF] - 0.875[2][LF] -0.826[0][LF] - 0.816[2][LF] - 0.767[1][LF] - 0.757[3][LF] - 0.708[2][LF] - 0.698[5][LF] - 0.659[6][LF] - 0.649[7][LF] - 0.639[8][LF] - 0.600[10][LF] - 0.590[11][LF] - 0.580[9][LF] - 0.541[4][LF] - 0.531[10][LF] - 0.521[11][LF] - 0.472[9][LF] - 0.462[10][LF] - 0.413[8][LF] - 0.403[7][LF] - 0.393[6][LF] - 0.354[8][LF] - 0.344[7][LF] - 0.334[5][LF] - 0.285[3][LF] - 0.275[5][LF] - 0.226[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.108[9][LF] - 0.98[8][LF] - 0.59[9][LF] - 0.49[11][LF] - 0.39[10][LF] - 0.0[11][LF] -remove pointer 12, payload 354[LF] -Tree look:[LF] - 0.1013[7][LF] - 0.1003[6][LF] - 0.954[7][LF] - 0.944[5][LF] - 0.934[4][LF] - 0.895[3][LF] - 0.885[5][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[3][LF] - 0.767[1][LF] - 0.757[3][LF] - 0.708[2][LF] - 0.698[4][LF] - 0.659[5][LF] - 0.649[6][LF] - 0.639[7][LF] - 0.600[9][LF] - 0.590[10][LF] - 0.580[8][LF] - 0.541[3][LF] - 0.531[8][LF] - 0.521[9][LF] - 0.472[7][LF] - 0.462[8][LF] - 0.413[6][LF] - 0.403[5][LF] - 0.393[4][LF] -0.344[0][LF] - 0.334[1][LF] - 0.285[2][LF] - 0.275[4][LF] - 0.226[3][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.167[7][LF] - 0.157[5][LF] - 0.118[6][LF] - 0.108[8][LF] - 0.98[7][LF] - 0.59[8][LF] - 0.49[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 13, payload 895[LF] -Tree look:[LF] - 0.1013[4][LF] - 0.1003[3][LF] - 0.954[4][LF] - 0.944[2][LF] - 0.934[1][LF] -0.885[0][LF] - 0.875[2][LF] - 0.826[1][LF] - 0.816[3][LF] - 0.767[2][LF] - 0.757[5][LF] - 0.708[4][LF] - 0.698[6][LF] - 0.659[7][LF] - 0.649[8][LF] - 0.639[9][LF] - 0.600[11][LF] - 0.590[12][LF] - 0.580[10][LF] - 0.541[5][LF] - 0.531[10][LF] - 0.521[11][LF] - 0.472[9][LF] - 0.462[10][LF] - 0.413[8][LF] - 0.403[7][LF] - 0.393[6][LF] - 0.344[3][LF] - 0.334[4][LF] - 0.285[5][LF] - 0.275[7][LF] - 0.226[6][LF] - 0.216[7][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[9][LF] - 0.108[11][LF] - 0.98[10][LF] - 0.59[11][LF] - 0.49[13][LF] - 0.39[12][LF] - 0.0[13][LF] -remove pointer 14, payload 413[LF] -Tree look:[LF] - 0.1013[6][LF] - 0.1003[5][LF] - 0.954[6][LF] - 0.944[4][LF] - 0.934[3][LF] - 0.885[2][LF] - 0.875[3][LF] - 0.826[1][LF] - 0.816[3][LF] - 0.767[2][LF] - 0.757[5][LF] - 0.708[4][LF] - 0.698[5][LF] - 0.659[6][LF] - 0.649[7][LF] - 0.639[8][LF] - 0.600[10][LF] - 0.590[11][LF] - 0.580[9][LF] - 0.541[3][LF] - 0.531[5][LF] - 0.521[6][LF] - 0.472[4][LF] - 0.462[5][LF] -0.403[0][LF] - 0.393[2][LF] - 0.344[1][LF] - 0.334[2][LF] - 0.285[3][LF] - 0.275[5][LF] - 0.226[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.108[9][LF] - 0.98[8][LF] - 0.59[9][LF] - 0.49[11][LF] - 0.39[10][LF] - 0.0[11][LF] -remove pointer 15, payload 954[LF] -Tree look:[LF] - 0.1013[2][LF] - 0.1003[1][LF] -0.944[0][LF] - 0.934[1][LF] - 0.885[3][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[5][LF] - 0.767[4][LF] - 0.757[7][LF] - 0.708[6][LF] - 0.698[7][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[5][LF] - 0.531[7][LF] - 0.521[8][LF] - 0.472[6][LF] - 0.462[7][LF] - 0.403[3][LF] - 0.393[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.285[6][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[8][LF] - 0.177[10][LF] - 0.167[11][LF] - 0.157[9][LF] - 0.118[10][LF] - 0.108[12][LF] - 0.98[11][LF] - 0.59[12][LF] - 0.49[14][LF] - 0.39[13][LF] - 0.0[14][LF] -remove pointer 16, payload 472[LF] -Tree look:[LF] - 0.1013[4][LF] - 0.1003[3][LF] - 0.944[2][LF] - 0.934[1][LF] - 0.885[3][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[5][LF] - 0.767[4][LF] - 0.757[6][LF] - 0.708[5][LF] - 0.698[6][LF] - 0.659[7][LF] - 0.649[8][LF] - 0.639[9][LF] - 0.600[11][LF] - 0.590[12][LF] - 0.580[10][LF] - 0.541[3][LF] - 0.531[4][LF] - 0.521[5][LF] -0.462[0][LF] - 0.403[1][LF] - 0.393[3][LF] - 0.344[2][LF] - 0.334[3][LF] - 0.285[4][LF] - 0.275[6][LF] - 0.226[5][LF] - 0.216[6][LF] - 0.177[8][LF] - 0.167[9][LF] - 0.157[7][LF] - 0.118[8][LF] - 0.108[10][LF] - 0.98[9][LF] - 0.59[10][LF] - 0.49[12][LF] - 0.39[11][LF] - 0.0[12][LF] -remove pointer 17, payload 1013[LF] -Tree look:[LF] -0.1003[0][LF] - 0.944[2][LF] - 0.934[1][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[6][LF] - 0.767[5][LF] - 0.757[7][LF] - 0.708[6][LF] - 0.698[7][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[4][LF] - 0.531[5][LF] - 0.521[6][LF] - 0.462[2][LF] - 0.403[3][LF] - 0.393[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.285[6][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[8][LF] - 0.177[10][LF] - 0.167[11][LF] - 0.157[9][LF] - 0.118[10][LF] - 0.108[12][LF] - 0.98[11][LF] - 0.59[12][LF] - 0.49[14][LF] - 0.39[13][LF] - 0.0[14][LF] -remove pointer 18, payload 531[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[5][LF] - 0.767[4][LF] - 0.757[6][LF] - 0.708[5][LF] - 0.698[6][LF] - 0.659[7][LF] - 0.649[8][LF] - 0.639[9][LF] - 0.600[11][LF] - 0.590[12][LF] - 0.580[10][LF] - 0.541[2][LF] -0.521[0][LF] - 0.462[1][LF] - 0.403[2][LF] - 0.393[4][LF] - 0.344[3][LF] - 0.334[4][LF] - 0.285[5][LF] - 0.275[7][LF] - 0.226[6][LF] - 0.216[7][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[9][LF] - 0.108[11][LF] - 0.98[10][LF] - 0.59[11][LF] - 0.49[13][LF] - 0.39[12][LF] - 0.0[13][LF] -remove pointer 19, payload 49[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[7][LF] - 0.767[6][LF] - 0.757[8][LF] - 0.708[7][LF] - 0.698[8][LF] - 0.659[9][LF] - 0.649[10][LF] - 0.639[11][LF] - 0.600[13][LF] - 0.590[14][LF] - 0.580[12][LF] - 0.541[4][LF] - 0.521[2][LF] - 0.462[1][LF] - 0.403[3][LF] - 0.393[4][LF] - 0.344[2][LF] - 0.334[4][LF] - 0.285[3][LF] - 0.275[6][LF] - 0.226[5][LF] - 0.216[4][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[5][LF] - 0.108[8][LF] - 0.98[7][LF] - 0.59[6][LF] -0.39[0][LF] - 0.0[1][LF] -remove pointer 20, payload 590[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[4][LF] - 0.767[2][LF] - 0.757[5][LF] - 0.708[4][LF] - 0.698[3][LF] - 0.659[5][LF] - 0.649[4][LF] - 0.639[5][LF] - 0.600[6][LF] -0.580[0][LF] - 0.541[2][LF] - 0.521[1][LF] - 0.462[2][LF] - 0.403[5][LF] - 0.393[6][LF] - 0.344[4][LF] - 0.334[6][LF] - 0.285[5][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[6][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[7][LF] - 0.108[10][LF] - 0.98[9][LF] - 0.59[8][LF] - 0.39[3][LF] - 0.0[4][LF] -remove pointer 21, payload 108[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[6][LF] - 0.767[4][LF] - 0.757[7][LF] - 0.708[6][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.649[6][LF] - 0.639[7][LF] - 0.600[8][LF] - 0.580[2][LF] - 0.541[3][LF] - 0.521[1][LF] - 0.462[2][LF] - 0.403[5][LF] - 0.393[6][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.285[3][LF] - 0.275[7][LF] - 0.226[6][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[4][LF] -0.98[0][LF] - 0.59[2][LF] - 0.39[1][LF] - 0.0[2][LF] -remove pointer 22, payload 649[LF] -Tree look:[LF] - 0.1003[3][LF] - 0.944[4][LF] - 0.934[2][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[4][LF] - 0.767[1][LF] - 0.757[4][LF] - 0.708[3][LF] - 0.698[2][LF] - 0.659[3][LF] -0.639[0][LF] - 0.600[2][LF] - 0.580[1][LF] - 0.541[3][LF] - 0.521[2][LF] - 0.462[4][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.344[6][LF] - 0.334[7][LF] - 0.285[5][LF] - 0.275[9][LF] - 0.226[8][LF] - 0.216[7][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[6][LF] - 0.98[3][LF] - 0.59[5][LF] - 0.39[4][LF] - 0.0[5][LF] -remove pointer 23, payload 167[LF] -Tree look:[LF] - 0.1003[5][LF] - 0.944[6][LF] - 0.934[4][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[6][LF] - 0.767[3][LF] - 0.757[6][LF] - 0.708[5][LF] - 0.698[4][LF] - 0.659[5][LF] - 0.639[2][LF] - 0.600[3][LF] - 0.580[1][LF] - 0.541[3][LF] - 0.521[2][LF] - 0.462[4][LF] - 0.403[6][LF] - 0.393[7][LF] - 0.344[5][LF] - 0.334[6][LF] - 0.285[3][LF] - 0.275[6][LF] - 0.226[5][LF] - 0.216[4][LF] - 0.177[5][LF] -0.157[0][LF] - 0.118[1][LF] - 0.98[2][LF] - 0.59[4][LF] - 0.39[3][LF] - 0.0[4][LF] -remove pointer 24, payload 708[LF] -Tree look:[LF] - 0.1003[3][LF] - 0.944[4][LF] - 0.934[2][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[4][LF] - 0.767[1][LF] - 0.757[2][LF] -0.698[0][LF] - 0.659[2][LF] - 0.639[1][LF] - 0.600[3][LF] - 0.580[2][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.462[6][LF] - 0.403[8][LF] - 0.393[9][LF] - 0.344[7][LF] - 0.334[8][LF] - 0.285[5][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[6][LF] - 0.177[7][LF] - 0.157[3][LF] - 0.118[4][LF] - 0.98[5][LF] - 0.59[7][LF] - 0.39[6][LF] - 0.0[7][LF] -remove pointer 25, payload 226[LF] -Tree look:[LF] - 0.1003[5][LF] - 0.944[6][LF] - 0.934[4][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[6][LF] - 0.767[3][LF] - 0.757[4][LF] - 0.698[2][LF] - 0.659[3][LF] - 0.639[1][LF] - 0.600[3][LF] - 0.580[2][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.462[5][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.344[6][LF] - 0.334[7][LF] - 0.285[3][LF] - 0.275[4][LF] -0.216[0][LF] - 0.177[2][LF] - 0.157[1][LF] - 0.118[2][LF] - 0.98[3][LF] - 0.59[5][LF] - 0.39[4][LF] - 0.0[5][LF] -remove pointer 26, payload 767[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[3][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[3][LF] -0.757[0][LF] - 0.698[1][LF] - 0.659[3][LF] - 0.639[2][LF] - 0.600[5][LF] - 0.580[4][LF] - 0.541[7][LF] - 0.521[6][LF] - 0.462[7][LF] - 0.403[9][LF] - 0.393[10][LF] - 0.344[8][LF] - 0.334[9][LF] - 0.285[5][LF] - 0.275[6][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 27, payload 285[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[5][LF] - 0.875[6][LF] - 0.826[4][LF] - 0.816[5][LF] - 0.757[2][LF] - 0.698[1][LF] - 0.659[3][LF] - 0.639[2][LF] - 0.600[4][LF] - 0.580[3][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.462[5][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.344[6][LF] - 0.334[7][LF] -0.275[0][LF] - 0.216[1][LF] - 0.177[3][LF] - 0.157[2][LF] - 0.118[3][LF] - 0.98[4][LF] - 0.59[6][LF] - 0.39[5][LF] - 0.0[6][LF] -remove pointer 28, payload 826[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[2][LF] - 0.875[3][LF] -0.816[0][LF] - 0.757[1][LF] - 0.698[2][LF] - 0.659[5][LF] - 0.639[4][LF] - 0.600[6][LF] - 0.580[5][LF] - 0.541[7][LF] - 0.521[6][LF] - 0.462[7][LF] - 0.403[9][LF] - 0.393[10][LF] - 0.344[8][LF] - 0.334[9][LF] - 0.275[3][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.157[5][LF] - 0.118[6][LF] - 0.98[7][LF] - 0.59[9][LF] - 0.39[8][LF] - 0.0[9][LF] -remove pointer 29, payload 344[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.816[2][LF] - 0.757[1][LF] - 0.698[2][LF] - 0.659[5][LF] - 0.639[4][LF] - 0.600[5][LF] - 0.580[3][LF] - 0.541[6][LF] - 0.521[5][LF] - 0.462[4][LF] - 0.403[5][LF] - 0.393[6][LF] -0.334[0][LF] - 0.275[1][LF] - 0.216[2][LF] - 0.177[4][LF] - 0.157[3][LF] - 0.118[4][LF] - 0.98[5][LF] - 0.59[7][LF] - 0.39[6][LF] - 0.0[7][LF] -remove pointer 30, payload 885[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] -0.875[0][LF] - 0.816[1][LF] - 0.757[2][LF] - 0.698[4][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.580[5][LF] - 0.541[8][LF] - 0.521[7][LF] - 0.462[6][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.334[3][LF] - 0.275[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.98[8][LF] - 0.59[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 31, payload 403[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.875[2][LF] - 0.816[1][LF] - 0.757[2][LF] - 0.698[4][LF] - 0.659[6][LF] - 0.639[5][LF] - 0.600[6][LF] - 0.580[3][LF] - 0.541[6][LF] - 0.521[5][LF] - 0.462[4][LF] -0.393[0][LF] - 0.334[1][LF] - 0.275[2][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 32, payload 944[LF] -Tree look:[LF] - 0.1003[1][LF] -0.934[0][LF] - 0.875[2][LF] - 0.816[1][LF] - 0.757[3][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.580[4][LF] - 0.541[7][LF] - 0.521[6][LF] - 0.462[5][LF] - 0.393[2][LF] - 0.334[3][LF] - 0.275[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.98[8][LF] - 0.59[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 33, payload 462[LF] -Tree look:[LF] - 0.1003[3][LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] - 0.757[3][LF] - 0.698[4][LF] - 0.659[6][LF] - 0.639[5][LF] - 0.600[6][LF] - 0.580[2][LF] - 0.541[4][LF] - 0.521[3][LF] -0.393[0][LF] - 0.334[1][LF] - 0.275[2][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 34, payload 1003[LF] -Tree look:[LF] -0.934[0][LF] - 0.875[2][LF] - 0.816[1][LF] - 0.757[4][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.580[3][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.393[2][LF] - 0.334[3][LF] - 0.275[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.98[8][LF] - 0.59[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 35, payload 521[LF] -Tree look:[LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] - 0.757[3][LF] - 0.698[4][LF] - 0.659[6][LF] - 0.639[5][LF] - 0.600[6][LF] - 0.580[2][LF] - 0.541[3][LF] -0.393[0][LF] - 0.334[1][LF] - 0.275[2][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 36, payload 39[LF] -Tree look:[LF] - 0.934[4][LF] - 0.875[5][LF] - 0.816[3][LF] - 0.757[5][LF] - 0.698[6][LF] - 0.659[8][LF] - 0.639[7][LF] - 0.600[8][LF] - 0.580[4][LF] - 0.541[5][LF] - 0.393[2][LF] - 0.334[1][LF] - 0.275[3][LF] - 0.216[2][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[3][LF] - 0.98[4][LF] - 0.59[5][LF] -0.0[0][LF] -remove pointer 37, payload 580[LF] -Tree look:[LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] - 0.757[2][LF] - 0.698[3][LF] - 0.659[5][LF] - 0.639[4][LF] - 0.600[5][LF] -0.541[0][LF] - 0.393[1][LF] - 0.334[2][LF] - 0.275[5][LF] - 0.216[4][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[7][LF] - 0.0[3][LF] -remove pointer 38, payload 98[LF] -Tree look:[LF] - 0.934[4][LF] - 0.875[5][LF] - 0.816[3][LF] - 0.757[4][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.541[2][LF] - 0.393[1][LF] - 0.334[2][LF] - 0.275[5][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.157[5][LF] - 0.118[3][LF] -0.59[0][LF] - 0.0[1][LF] -remove pointer 39, payload 639[LF] -Tree look:[LF] - 0.934[3][LF] - 0.875[4][LF] - 0.816[2][LF] - 0.757[1][LF] - 0.698[2][LF] - 0.659[3][LF] -0.600[0][LF] - 0.541[1][LF] - 0.393[2][LF] - 0.334[4][LF] - 0.275[7][LF] - 0.216[6][LF] - 0.177[8][LF] - 0.157[7][LF] - 0.118[5][LF] - 0.59[3][LF] - 0.0[4][LF] -remove pointer 40, payload 157[LF] -Tree look:[LF] - 0.934[5][LF] - 0.875[6][LF] - 0.816[4][LF] - 0.757[3][LF] - 0.698[4][LF] - 0.659[5][LF] - 0.600[2][LF] - 0.541[1][LF] - 0.393[2][LF] - 0.334[3][LF] - 0.275[5][LF] - 0.216[4][LF] - 0.177[5][LF] -0.118[0][LF] - 0.59[1][LF] - 0.0[2][LF] -remove pointer 41, payload 698[LF] -Tree look:[LF] - 0.934[3][LF] - 0.875[4][LF] - 0.816[2][LF] - 0.757[1][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[2][LF] - 0.393[4][LF] - 0.334[5][LF] - 0.275[7][LF] - 0.216[6][LF] - 0.177[7][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 42, payload 216[LF] -Tree look:[LF] - 0.934[5][LF] - 0.875[6][LF] - 0.816[4][LF] - 0.757[3][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[2][LF] - 0.393[4][LF] - 0.334[3][LF] - 0.275[4][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 43, payload 757[LF] -Tree look:[LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.393[5][LF] - 0.334[4][LF] - 0.275[5][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 44, payload 275[LF] -Tree look:[LF] - 0.934[4][LF] - 0.875[5][LF] - 0.816[3][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.393[4][LF] - 0.334[2][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 45, payload 816[LF] -Tree look:[LF] - 0.934[1][LF] - 0.875[2][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[4][LF] - 0.393[5][LF] - 0.334[3][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 46, payload 334[LF] -Tree look:[LF] - 0.934[3][LF] - 0.875[4][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[2][LF] - 0.393[3][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 47, payload 875[LF] -Tree look:[LF] - 0.934[1][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.393[4][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 48, payload 393[LF] -Tree look:[LF] - 0.934[3][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[2][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 49, payload 934[LF] -Tree look:[LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 0, payload 0[LF] -Tree look:[LF] - 0.659[1][LF] -0.600[0][LF] - 0.541[3][LF] - 0.177[2][LF] - 0.118[1][LF] - 0.59[2][LF] -remove pointer 1, payload 541[LF] -Tree look:[LF] - 0.659[2][LF] - 0.600[1][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] -remove pointer 2, payload 59[LF] -Tree look:[LF] - 0.659[3][LF] - 0.600[2][LF] - 0.177[1][LF] -0.118[0][LF] -remove pointer 3, payload 600[LF] -Tree look:[LF] - 0.659[1][LF] -0.177[0][LF] - 0.118[1][LF] -remove pointer 4, payload 118[LF] -Tree look:[LF] - 0.659[1][LF] -0.177[0][LF] -remove pointer 5, payload 659[LF] -Tree look:[LF] -0.177[0][LF] -remove pointer 6, payload 177[LF] -Removing nodes not larger than 0[LF] -removed payload 0[0][LF] -Removing nodes not larger than 100[LF] -removed payload 39[0][LF] -removed payload 49[0][LF] -removed payload 49[1][LF] -removed payload 59[0][LF] -removed payload 59[1][LF] -removed payload 59[2][LF] -removed payload 98[0][LF] -removed payload 98[1][LF] -removed payload 98[2][LF] -Removing nodes not larger than 200[LF] -removed payload 108[0][LF] -removed payload 118[0][LF] -removed payload 118[1][LF] -removed payload 157[0][LF] -removed payload 157[1][LF] -removed payload 167[0][LF] -removed payload 167[1][LF] -removed payload 167[2][LF] -removed payload 177[0][LF] -Removing nodes not larger than 300[LF] -removed payload 216[0][LF] -removed payload 226[0][LF] -removed payload 226[1][LF] -removed payload 236[0][LF] -removed payload 236[1][LF] -removed payload 236[2][LF] -removed payload 275[0][LF] -removed payload 275[1][LF] -removed payload 275[2][LF] -removed payload 285[0][LF] -removed payload 295[0][LF] -removed payload 295[1][LF] -Removing nodes not larger than 400[LF] -removed payload 334[0][LF] -removed payload 334[1][LF] -removed payload 344[0][LF] -removed payload 344[1][LF] -removed payload 344[2][LF] -removed payload 354[0][LF] -removed payload 393[0][LF] -Removing nodes not larger than 500[LF] -removed payload 403[0][LF] -removed payload 403[1][LF] -removed payload 413[0][LF] -removed payload 413[1][LF] -removed payload 413[2][LF] -removed payload 462[0][LF] -removed payload 472[0][LF] -removed payload 472[1][LF] -Removing nodes not larger than 600[LF] -removed payload 521[0][LF] -removed payload 521[1][LF] -removed payload 521[2][LF] -removed payload 531[0][LF] -removed payload 541[0][LF] -removed payload 541[1][LF] -removed payload 580[0][LF] -removed payload 580[1][LF] -removed payload 590[0][LF] -removed payload 590[1][LF] -removed payload 590[2][LF] -removed payload 600[0][LF] -Removing nodes not larger than 700[LF] -removed payload 639[0][LF] -removed payload 649[0][LF] -removed payload 649[1][LF] -removed payload 659[0][LF] -removed payload 659[1][LF] -removed payload 659[2][LF] -removed payload 698[0][LF] -removed payload 698[1][LF] -removed payload 698[2][LF] -Removing nodes not larger than 800[LF] -removed payload 708[0][LF] -removed payload 718[0][LF] -removed payload 718[1][LF] -removed payload 757[0][LF] -removed payload 757[1][LF] -removed payload 767[0][LF] -removed payload 767[1][LF] -removed payload 767[2][LF] -removed payload 777[0][LF] -Removing nodes not larger than 900[LF] -removed payload 816[0][LF] -removed payload 826[0][LF] -removed payload 826[1][LF] -removed payload 836[0][LF] -removed payload 836[1][LF] -removed payload 836[2][LF] -removed payload 875[0][LF] -removed payload 875[1][LF] -removed payload 875[2][LF] -removed payload 885[0][LF] -removed payload 895[0][LF] -removed payload 895[1][LF] -Removing nodes not larger than 1000[LF] -removed payload 934[0][LF] -removed payload 934[1][LF] -removed payload 944[0][LF] -removed payload 944[1][LF] -removed payload 944[2][LF] -removed payload 954[0][LF] -Removing nodes not larger than 1100[LF] -removed payload 1003[0][LF] -removed payload 1003[1][LF] -removed payload 1013[0][LF] -removed payload 1013[1][LF] -removed payload 1013[2][LF] == Contents of files in the log/57/ dir after test 1309 === Start of file check-expected Result:[LF] 0.1013[3][LF] 0.1003[2][LF] 0.954[3][LF] 0.944[1][LF] 0.934[0][LF] 0.895[1][LF] 0.885[4][LF] 0.875[3][LF] 0.836[4][LF] 0.826[7][LF] 0.816[6][LF] 0.777[5][LF] 0.767[9][LF] 0.757[8][LF] 0.718[7][LF] 0.708[10][LF] 0.698[9][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[6][LF] 0.531[9][LF] 0.521[10][LF] 0.472[8][LF] 0.462[9][LF] 0.413[7][LF] 0.403[2][LF] 0.393[3][LF] 0.354[5][LF] 0.344[4][LF] 0.334[5][LF] 0.295[7][LF] 0.285[6][LF] 0.275[7][LF] 0.236[9][LF] 0.226[8][LF] 0.216[9][LF] 0.177[11][LF] 0.167[12][LF] 0.157[10][LF] 0.118[11][LF] 0.108[13][LF] 0.98[12][LF] 0.59[13][LF] 0.49[15][LF] 0.39[14][LF] 0.0[15][LF] Tree look:[LF] 0.1013[3][LF] 0.1003[2][LF] 0.954[3][LF] 0.944[1][LF] 0.934[0][LF] 0.895[1][LF] 0.885[4][LF] 0.875[3][LF] 0.836[4][LF] 0.826[7][LF] 0.816[6][LF] 0.777[5][LF] 0.767[9][LF] 0.757[8][LF] 0.718[7][LF] 0.708[10][LF] 0.698[9][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[6][LF] 0.531[9][LF] 0.521[10][LF] 0.472[8][LF] 0.462[9][LF] 0.413[7][LF] 0.403[2][LF] 0.393[3][LF] 0.354[5][LF] 0.344[4][LF] 0.334[5][LF] 0.295[7][LF] 0.285[6][LF] 0.275[7][LF] 0.236[9][LF] 0.226[8][LF] 0.216[9][LF] 0.177[11][LF] 0.167[12][LF] 0.157[10][LF] 0.118[11][LF] 0.108[13][LF] 0.98[12][LF] 0.59[13][LF] 0.49[15][LF] 0.39[14][LF] 0.0[15][LF] remove pointer 7, payload 718[LF] Tree look:[LF] 0.1013[5][LF] 0.1003[4][LF] 0.954[5][LF] 0.944[3][LF] 0.934[2][LF] 0.895[1][LF] 0.885[4][LF] 0.875[3][LF] 0.836[2][LF] 0.826[5][LF] 0.816[4][LF] 0.777[3][LF] 0.767[5][LF] 0.757[4][LF] 0.708[0][LF] 0.698[2][LF] 0.659[3][LF] 0.649[4][LF] 0.639[5][LF] 0.600[7][LF] 0.590[8][LF] 0.580[6][LF] 0.541[1][LF] 0.531[5][LF] 0.521[6][LF] 0.472[4][LF] 0.462[5][LF] 0.413[3][LF] 0.403[2][LF] 0.393[3][LF] 0.354[5][LF] 0.344[4][LF] 0.334[5][LF] 0.295[7][LF] 0.285[6][LF] 0.275[7][LF] 0.236[9][LF] 0.226[8][LF] 0.216[9][LF] 0.177[11][LF] 0.167[12][LF] 0.157[10][LF] 0.118[11][LF] 0.108[13][LF] 0.98[12][LF] 0.59[13][LF] 0.49[15][LF] 0.39[14][LF] 0.0[15][LF] remove pointer 8, payload 236[LF] Tree look:[LF] 0.1013[7][LF] 0.1003[6][LF] 0.954[7][LF] 0.944[5][LF] 0.934[4][LF] 0.895[3][LF] 0.885[6][LF] 0.875[5][LF] 0.836[4][LF] 0.826[7][LF] 0.816[6][LF] 0.777[5][LF] 0.767[7][LF] 0.757[6][LF] 0.708[2][LF] 0.698[3][LF] 0.659[4][LF] 0.649[5][LF] 0.639[6][LF] 0.600[8][LF] 0.590[9][LF] 0.580[7][LF] 0.541[1][LF] 0.531[6][LF] 0.521[7][LF] 0.472[5][LF] 0.462[6][LF] 0.413[4][LF] 0.403[3][LF] 0.393[2][LF] 0.354[5][LF] 0.344[4][LF] 0.334[3][LF] 0.295[6][LF] 0.285[5][LF] 0.275[4][LF] 0.226[0][LF] 0.216[1][LF] 0.177[3][LF] 0.167[4][LF] 0.157[2][LF] 0.118[3][LF] 0.108[5][LF] 0.98[4][LF] 0.59[5][LF] 0.49[7][LF] 0.39[6][LF] 0.0[7][LF] remove pointer 9, payload 777[LF] Tree look:[LF] 0.1013[6][LF] 0.1003[5][LF] 0.954[6][LF] 0.944[4][LF] 0.934[3][LF] 0.895[2][LF] 0.885[4][LF] 0.875[3][LF] 0.836[1][LF] 0.826[3][LF] 0.816[2][LF] 0.767[0][LF] 0.757[2][LF] 0.708[1][LF] 0.698[3][LF] 0.659[4][LF] 0.649[5][LF] 0.639[6][LF] 0.600[8][LF] 0.590[9][LF] 0.580[7][LF] 0.541[2][LF] 0.531[8][LF] 0.521[9][LF] 0.472[7][LF] 0.462[8][LF] 0.413[6][LF] 0.403[5][LF] 0.393[4][LF] 0.354[7][LF] 0.344[6][LF] 0.334[5][LF] 0.295[8][LF] 0.285[7][LF] 0.275[6][LF] 0.226[3][LF] 0.216[4][LF] 0.177[6][LF] 0.167[7][LF] 0.157[5][LF] 0.118[6][LF] 0.108[8][LF] 0.98[7][LF] 0.59[8][LF] 0.49[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 10, payload 295[LF] Tree look:[LF] 0.1013[8][LF] 0.1003[7][LF] 0.954[8][LF] 0.944[6][LF] 0.934[5][LF] 0.895[4][LF] 0.885[6][LF] 0.875[5][LF] 0.836[3][LF] 0.826[5][LF] 0.816[4][LF] 0.767[2][LF] 0.757[3][LF] 0.708[1][LF] 0.698[3][LF] 0.659[4][LF] 0.649[5][LF] 0.639[6][LF] 0.600[8][LF] 0.590[9][LF] 0.580[7][LF] 0.541[2][LF] 0.531[8][LF] 0.521[9][LF] 0.472[7][LF] 0.462[8][LF] 0.413[6][LF] 0.403[5][LF] 0.393[4][LF] 0.354[6][LF] 0.344[5][LF] 0.334[3][LF] 0.285[0][LF] 0.275[2][LF] 0.226[1][LF] 0.216[2][LF] 0.177[4][LF] 0.167[5][LF] 0.157[3][LF] 0.118[4][LF] 0.108[6][LF] 0.98[5][LF] 0.59[6][LF] 0.49[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 11, payload 836[LF] Tree look:[LF] 0.1013[5][LF] 0.1003[4][LF] 0.954[5][LF] 0.944[3][LF] 0.934[2][LF] 0.895[1][LF] 0.885[3][LF] 0.875[2][LF] 0.826[0][LF] 0.816[2][LF] 0.767[1][LF] 0.757[3][LF] 0.708[2][LF] 0.698[5][LF] 0.659[6][LF] 0.649[7][LF] 0.639[8][LF] 0.600[10][LF] 0.590[11][LF] 0.580[9][LF] 0.541[4][LF] 0.531[10][LF] 0.521[11][LF] 0.472[9][LF] 0.462[10][LF] 0.413[8][LF] 0.403[7][LF] 0.393[6][LF] 0.354[8][LF] 0.344[7][LF] 0.334[5][LF] 0.285[3][LF] 0.275[5][LF] 0.226[4][LF] 0.216[5][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[7][LF] 0.108[9][LF] 0.98[8][LF] 0.59[9][LF] 0.49[11][LF] 0.39[10][LF] 0.0[11][LF] remove pointer 12, payload 354[LF] Tree look:[LF] 0.1013[7][LF] 0.1003[6][LF] 0.954[7][LF] 0.944[5][LF] 0.934[4][LF] 0.895[3][LF] 0.885[5][LF] 0.875[4][LF] 0.826[2][LF] 0.816[3][LF] 0.767[1][LF] 0.757[3][LF] 0.708[2][LF] 0.698[4][LF] 0.659[5][LF] 0.649[6][LF] 0.639[7][LF] 0.600[9][LF] 0.590[10][LF] 0.580[8][LF] 0.541[3][LF] 0.531[8][LF] 0.521[9][LF] 0.472[7][LF] 0.462[8][LF] 0.413[6][LF] 0.403[5][LF] 0.393[4][LF] 0.344[0][LF] 0.334[1][LF] 0.285[2][LF] 0.275[4][LF] 0.226[3][LF] 0.216[4][LF] 0.177[6][LF] 0.167[7][LF] 0.157[5][LF] 0.118[6][LF] 0.108[8][LF] 0.98[7][LF] 0.59[8][LF] 0.49[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 13, payload 895[LF] Tree look:[LF] 0.1013[4][LF] 0.1003[3][LF] 0.954[4][LF] 0.944[2][LF] 0.934[1][LF] 0.885[0][LF] 0.875[2][LF] 0.826[1][LF] 0.816[3][LF] 0.767[2][LF] 0.757[5][LF] 0.708[4][LF] 0.698[6][LF] 0.659[7][LF] 0.649[8][LF] 0.639[9][LF] 0.600[11][LF] 0.590[12][LF] 0.580[10][LF] 0.541[5][LF] 0.531[10][LF] 0.521[11][LF] 0.472[9][LF] 0.462[10][LF] 0.413[8][LF] 0.403[7][LF] 0.393[6][LF] 0.344[3][LF] 0.334[4][LF] 0.285[5][LF] 0.275[7][LF] 0.226[6][LF] 0.216[7][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[9][LF] 0.108[11][LF] 0.98[10][LF] 0.59[11][LF] 0.49[13][LF] 0.39[12][LF] 0.0[13][LF] remove pointer 14, payload 413[LF] Tree look:[LF] 0.1013[6][LF] 0.1003[5][LF] 0.954[6][LF] 0.944[4][LF] 0.934[3][LF] 0.885[2][LF] 0.875[3][LF] 0.826[1][LF] 0.816[3][LF] 0.767[2][LF] 0.757[5][LF] 0.708[4][LF] 0.698[5][LF] 0.659[6][LF] 0.649[7][LF] 0.639[8][LF] 0.600[10][LF] 0.590[11][LF] 0.580[9][LF] 0.541[3][LF] 0.531[5][LF] 0.521[6][LF] 0.472[4][LF] 0.462[5][LF] 0.403[0][LF] 0.393[2][LF] 0.344[1][LF] 0.334[2][LF] 0.285[3][LF] 0.275[5][LF] 0.226[4][LF] 0.216[5][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[7][LF] 0.108[9][LF] 0.98[8][LF] 0.59[9][LF] 0.49[11][LF] 0.39[10][LF] 0.0[11][LF] remove pointer 15, payload 954[LF] Tree look:[LF] 0.1013[2][LF] 0.1003[1][LF] 0.944[0][LF] 0.934[1][LF] 0.885[3][LF] 0.875[4][LF] 0.826[2][LF] 0.816[5][LF] 0.767[4][LF] 0.757[7][LF] 0.708[6][LF] 0.698[7][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[5][LF] 0.531[7][LF] 0.521[8][LF] 0.472[6][LF] 0.462[7][LF] 0.403[3][LF] 0.393[5][LF] 0.344[4][LF] 0.334[5][LF] 0.285[6][LF] 0.275[8][LF] 0.226[7][LF] 0.216[8][LF] 0.177[10][LF] 0.167[11][LF] 0.157[9][LF] 0.118[10][LF] 0.108[12][LF] 0.98[11][LF] 0.59[12][LF] 0.49[14][LF] 0.39[13][LF] 0.0[14][LF] remove pointer 16, payload 472[LF] Tree look:[LF] 0.1013[4][LF] 0.1003[3][LF] 0.944[2][LF] 0.934[1][LF] 0.885[3][LF] 0.875[4][LF] 0.826[2][LF] 0.816[5][LF] 0.767[4][LF] 0.757[6][LF] 0.708[5][LF] 0.698[6][LF] 0.659[7][LF] 0.649[8][LF] 0.639[9][LF] 0.600[11][LF] 0.590[12][LF] 0.580[10][LF] 0.541[3][LF] 0.531[4][LF] 0.521[5][LF] 0.462[0][LF] 0.403[1][LF] 0.393[3][LF] 0.344[2][LF] 0.334[3][LF] 0.285[4][LF] 0.275[6][LF] 0.226[5][LF] 0.216[6][LF] 0.177[8][LF] 0.167[9][LF] 0.157[7][LF] 0.118[8][LF] 0.108[10][LF] 0.98[9][LF] 0.59[10][LF] 0.49[12][LF] 0.39[11][LF] 0.0[12][LF] remove pointer 17, payload 1013[LF] Tree look:[LF] 0.1003[0][LF] 0.944[2][LF] 0.934[1][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[6][LF] 0.767[5][LF] 0.757[7][LF] 0.708[6][LF] 0.698[7][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[4][LF] 0.531[5][LF] 0.521[6][LF] 0.462[2][LF] 0.403[3][LF] 0.393[5][LF] 0.344[4][LF] 0.334[5][LF] 0.285[6][LF] 0.275[8][LF] 0.226[7][LF] 0.216[8][LF] 0.177[10][LF] 0.167[11][LF] 0.157[9][LF] 0.118[10][LF] 0.108[12][LF] 0.98[11][LF] 0.59[12][LF] 0.49[14][LF] 0.39[13][LF] 0.0[14][LF] remove pointer 18, payload 531[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[5][LF] 0.767[4][LF] 0.757[6][LF] 0.708[5][LF] 0.698[6][LF] 0.659[7][LF] 0.649[8][LF] 0.639[9][LF] 0.600[11][LF] 0.590[12][LF] 0.580[10][LF] 0.541[2][LF] 0.521[0][LF] 0.462[1][LF] 0.403[2][LF] 0.393[4][LF] 0.344[3][LF] 0.334[4][LF] 0.285[5][LF] 0.275[7][LF] 0.226[6][LF] 0.216[7][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[9][LF] 0.108[11][LF] 0.98[10][LF] 0.59[11][LF] 0.49[13][LF] 0.39[12][LF] 0.0[13][LF] remove pointer 19, payload 49[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[7][LF] 0.767[6][LF] 0.757[8][LF] 0.708[7][LF] 0.698[8][LF] 0.659[9][LF] 0.649[10][LF] 0.639[11][LF] 0.600[13][LF] 0.590[14][LF] 0.580[12][LF] 0.541[4][LF] 0.521[2][LF] 0.462[1][LF] 0.403[3][LF] 0.393[4][LF] 0.344[2][LF] 0.334[4][LF] 0.285[3][LF] 0.275[6][LF] 0.226[5][LF] 0.216[4][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[5][LF] 0.108[8][LF] 0.98[7][LF] 0.59[6][LF] 0.39[0][LF] 0.0[1][LF] remove pointer 20, payload 590[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[4][LF] 0.767[2][LF] 0.757[5][LF] 0.708[4][LF] 0.698[3][LF] 0.659[5][LF] 0.649[4][LF] 0.639[5][LF] 0.600[6][LF] 0.580[0][LF] 0.541[2][LF] 0.521[1][LF] 0.462[2][LF] 0.403[5][LF] 0.393[6][LF] 0.344[4][LF] 0.334[6][LF] 0.285[5][LF] 0.275[8][LF] 0.226[7][LF] 0.216[6][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[7][LF] 0.108[10][LF] 0.98[9][LF] 0.59[8][LF] 0.39[3][LF] 0.0[4][LF] remove pointer 21, payload 108[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[6][LF] 0.767[4][LF] 0.757[7][LF] 0.708[6][LF] 0.698[5][LF] 0.659[7][LF] 0.649[6][LF] 0.639[7][LF] 0.600[8][LF] 0.580[2][LF] 0.541[3][LF] 0.521[1][LF] 0.462[2][LF] 0.403[5][LF] 0.393[6][LF] 0.344[4][LF] 0.334[5][LF] 0.285[3][LF] 0.275[7][LF] 0.226[6][LF] 0.216[5][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[4][LF] 0.98[0][LF] 0.59[2][LF] 0.39[1][LF] 0.0[2][LF] remove pointer 22, payload 649[LF] Tree look:[LF] 0.1003[3][LF] 0.944[4][LF] 0.934[2][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[4][LF] 0.767[1][LF] 0.757[4][LF] 0.708[3][LF] 0.698[2][LF] 0.659[3][LF] 0.639[0][LF] 0.600[2][LF] 0.580[1][LF] 0.541[3][LF] 0.521[2][LF] 0.462[4][LF] 0.403[7][LF] 0.393[8][LF] 0.344[6][LF] 0.334[7][LF] 0.285[5][LF] 0.275[9][LF] 0.226[8][LF] 0.216[7][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[6][LF] 0.98[3][LF] 0.59[5][LF] 0.39[4][LF] 0.0[5][LF] remove pointer 23, payload 167[LF] Tree look:[LF] 0.1003[5][LF] 0.944[6][LF] 0.934[4][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[6][LF] 0.767[3][LF] 0.757[6][LF] 0.708[5][LF] 0.698[4][LF] 0.659[5][LF] 0.639[2][LF] 0.600[3][LF] 0.580[1][LF] 0.541[3][LF] 0.521[2][LF] 0.462[4][LF] 0.403[6][LF] 0.393[7][LF] 0.344[5][LF] 0.334[6][LF] 0.285[3][LF] 0.275[6][LF] 0.226[5][LF] 0.216[4][LF] 0.177[5][LF] 0.157[0][LF] 0.118[1][LF] 0.98[2][LF] 0.59[4][LF] 0.39[3][LF] 0.0[4][LF] remove pointer 24, payload 708[LF] Tree look:[LF] 0.1003[3][LF] 0.944[4][LF] 0.934[2][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[4][LF] 0.767[1][LF] 0.757[2][LF] 0.698[0][LF] 0.659[2][LF] 0.639[1][LF] 0.600[3][LF] 0.580[2][LF] 0.541[5][LF] 0.521[4][LF] 0.462[6][LF] 0.403[8][LF] 0.393[9][LF] 0.344[7][LF] 0.334[8][LF] 0.285[5][LF] 0.275[8][LF] 0.226[7][LF] 0.216[6][LF] 0.177[7][LF] 0.157[3][LF] 0.118[4][LF] 0.98[5][LF] 0.59[7][LF] 0.39[6][LF] 0.0[7][LF] remove pointer 25, payload 226[LF] Tree look:[LF] 0.1003[5][LF] 0.944[6][LF] 0.934[4][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[6][LF] 0.767[3][LF] 0.757[4][LF] 0.698[2][LF] 0.659[3][LF] 0.639[1][LF] 0.600[3][LF] 0.580[2][LF] 0.541[5][LF] 0.521[4][LF] 0.462[5][LF] 0.403[7][LF] 0.393[8][LF] 0.344[6][LF] 0.334[7][LF] 0.285[3][LF] 0.275[4][LF] 0.216[0][LF] 0.177[2][LF] 0.157[1][LF] 0.118[2][LF] 0.98[3][LF] 0.59[5][LF] 0.39[4][LF] 0.0[5][LF] remove pointer 26, payload 767[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[3][LF] 0.875[4][LF] 0.826[2][LF] 0.816[3][LF] 0.757[0][LF] 0.698[1][LF] 0.659[3][LF] 0.639[2][LF] 0.600[5][LF] 0.580[4][LF] 0.541[7][LF] 0.521[6][LF] 0.462[7][LF] 0.403[9][LF] 0.393[10][LF] 0.344[8][LF] 0.334[9][LF] 0.285[5][LF] 0.275[6][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 27, payload 285[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[5][LF] 0.875[6][LF] 0.826[4][LF] 0.816[5][LF] 0.757[2][LF] 0.698[1][LF] 0.659[3][LF] 0.639[2][LF] 0.600[4][LF] 0.580[3][LF] 0.541[5][LF] 0.521[4][LF] 0.462[5][LF] 0.403[7][LF] 0.393[8][LF] 0.344[6][LF] 0.334[7][LF] 0.275[0][LF] 0.216[1][LF] 0.177[3][LF] 0.157[2][LF] 0.118[3][LF] 0.98[4][LF] 0.59[6][LF] 0.39[5][LF] 0.0[6][LF] remove pointer 28, payload 826[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[2][LF] 0.875[3][LF] 0.816[0][LF] 0.757[1][LF] 0.698[2][LF] 0.659[5][LF] 0.639[4][LF] 0.600[6][LF] 0.580[5][LF] 0.541[7][LF] 0.521[6][LF] 0.462[7][LF] 0.403[9][LF] 0.393[10][LF] 0.344[8][LF] 0.334[9][LF] 0.275[3][LF] 0.216[4][LF] 0.177[6][LF] 0.157[5][LF] 0.118[6][LF] 0.98[7][LF] 0.59[9][LF] 0.39[8][LF] 0.0[9][LF] remove pointer 29, payload 344[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[4][LF] 0.875[5][LF] 0.816[2][LF] 0.757[1][LF] 0.698[2][LF] 0.659[5][LF] 0.639[4][LF] 0.600[5][LF] 0.580[3][LF] 0.541[6][LF] 0.521[5][LF] 0.462[4][LF] 0.403[5][LF] 0.393[6][LF] 0.334[0][LF] 0.275[1][LF] 0.216[2][LF] 0.177[4][LF] 0.157[3][LF] 0.118[4][LF] 0.98[5][LF] 0.59[7][LF] 0.39[6][LF] 0.0[7][LF] remove pointer 30, payload 885[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.875[0][LF] 0.816[1][LF] 0.757[2][LF] 0.698[4][LF] 0.659[7][LF] 0.639[6][LF] 0.600[7][LF] 0.580[5][LF] 0.541[8][LF] 0.521[7][LF] 0.462[6][LF] 0.403[7][LF] 0.393[8][LF] 0.334[3][LF] 0.275[4][LF] 0.216[5][LF] 0.177[7][LF] 0.157[6][LF] 0.118[7][LF] 0.98[8][LF] 0.59[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 31, payload 403[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.875[2][LF] 0.816[1][LF] 0.757[2][LF] 0.698[4][LF] 0.659[6][LF] 0.639[5][LF] 0.600[6][LF] 0.580[3][LF] 0.541[6][LF] 0.521[5][LF] 0.462[4][LF] 0.393[0][LF] 0.334[1][LF] 0.275[2][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 32, payload 944[LF] Tree look:[LF] 0.1003[1][LF] 0.934[0][LF] 0.875[2][LF] 0.816[1][LF] 0.757[3][LF] 0.698[5][LF] 0.659[7][LF] 0.639[6][LF] 0.600[7][LF] 0.580[4][LF] 0.541[7][LF] 0.521[6][LF] 0.462[5][LF] 0.393[2][LF] 0.334[3][LF] 0.275[4][LF] 0.216[5][LF] 0.177[7][LF] 0.157[6][LF] 0.118[7][LF] 0.98[8][LF] 0.59[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 33, payload 462[LF] Tree look:[LF] 0.1003[3][LF] 0.934[2][LF] 0.875[3][LF] 0.816[1][LF] 0.757[3][LF] 0.698[4][LF] 0.659[6][LF] 0.639[5][LF] 0.600[6][LF] 0.580[2][LF] 0.541[4][LF] 0.521[3][LF] 0.393[0][LF] 0.334[1][LF] 0.275[2][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 34, payload 1003[LF] Tree look:[LF] 0.934[0][LF] 0.875[2][LF] 0.816[1][LF] 0.757[4][LF] 0.698[5][LF] 0.659[7][LF] 0.639[6][LF] 0.600[7][LF] 0.580[3][LF] 0.541[5][LF] 0.521[4][LF] 0.393[2][LF] 0.334[3][LF] 0.275[4][LF] 0.216[5][LF] 0.177[7][LF] 0.157[6][LF] 0.118[7][LF] 0.98[8][LF] 0.59[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 35, payload 521[LF] Tree look:[LF] 0.934[2][LF] 0.875[3][LF] 0.816[1][LF] 0.757[3][LF] 0.698[4][LF] 0.659[6][LF] 0.639[5][LF] 0.600[6][LF] 0.580[2][LF] 0.541[3][LF] 0.393[0][LF] 0.334[1][LF] 0.275[2][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 36, payload 39[LF] Tree look:[LF] 0.934[4][LF] 0.875[5][LF] 0.816[3][LF] 0.757[5][LF] 0.698[6][LF] 0.659[8][LF] 0.639[7][LF] 0.600[8][LF] 0.580[4][LF] 0.541[5][LF] 0.393[2][LF] 0.334[1][LF] 0.275[3][LF] 0.216[2][LF] 0.177[5][LF] 0.157[4][LF] 0.118[3][LF] 0.98[4][LF] 0.59[5][LF] 0.0[0][LF] remove pointer 37, payload 580[LF] Tree look:[LF] 0.934[2][LF] 0.875[3][LF] === File too long: 136 lines omitted here remove pointer 45, payload 816[LF] Tree look:[LF] 0.934[1][LF] 0.875[2][LF] 0.659[0][LF] 0.600[1][LF] 0.541[4][LF] 0.393[5][LF] 0.334[3][LF] 0.177[2][LF] 0.118[3][LF] 0.59[4][LF] 0.0[5][LF] remove pointer 46, payload 334[LF] Tree look:[LF] 0.934[3][LF] 0.875[4][LF] 0.659[2][LF] 0.600[1][LF] 0.541[2][LF] 0.393[3][LF] 0.177[0][LF] 0.118[1][LF] 0.59[2][LF] 0.0[3][LF] remove pointer 47, payload 875[LF] Tree look:[LF] 0.934[1][LF] 0.659[0][LF] 0.600[1][LF] 0.541[3][LF] 0.393[4][LF] 0.177[2][LF] 0.118[3][LF] 0.59[4][LF] 0.0[5][LF] remove pointer 48, payload 393[LF] Tree look:[LF] 0.934[3][LF] 0.659[2][LF] 0.600[1][LF] 0.541[2][LF] 0.177[0][LF] 0.118[1][LF] 0.59[2][LF] 0.0[3][LF] remove pointer 49, payload 934[LF] Tree look:[LF] 0.659[0][LF] 0.600[1][LF] 0.541[3][LF] 0.177[2][LF] 0.118[3][LF] 0.59[4][LF] 0.0[5][LF] remove pointer 0, payload 0[LF] Tree look:[LF] 0.659[1][LF] 0.600[0][LF] 0.541[3][LF] 0.177[2][LF] 0.118[1][LF] 0.59[2][LF] remove pointer 1, payload 541[LF] Tree look:[LF] 0.659[2][LF] 0.600[1][LF] 0.177[0][LF] 0.118[1][LF] 0.59[2][LF] remove pointer 2, payload 59[LF] Tree look:[LF] 0.659[3][LF] 0.600[2][LF] 0.177[1][LF] 0.118[0][LF] remove pointer 3, payload 600[LF] Tree look:[LF] 0.659[1][LF] 0.177[0][LF] 0.118[1][LF] remove pointer 4, payload 118[LF] Tree look:[LF] 0.659[1][LF] 0.177[0][LF] remove pointer 5, payload 659[LF] Tree look:[LF] 0.177[0][LF] remove pointer 6, payload 177[LF] Removing nodes not larger than 0[LF] removed payload 0[0][LF] Removing nodes not larger than 100[LF] removed payload 39[0][LF] removed payload 49[0][LF] removed payload 49[1][LF] removed payload 59[0][LF] removed payload 59[1][LF] removed payload 59[2][LF] removed payload 98[0][LF] removed payload 98[1][LF] removed payload 98[2][LF] Removing nodes not larger than 200[LF] removed payload 108[0][LF] removed payload 118[0][LF] removed payload 118[1][LF] removed payload 157[0][LF] removed payload 157[1][LF] removed payload 167[0][LF] removed payload 167[1][LF] removed payload 167[2][LF] removed payload 177[0][LF] Removing nodes not larger than 300[LF] removed payload 216[0][LF] removed payload 226[0][LF] removed payload 226[1][LF] removed payload 236[0][LF] removed payload 236[1][LF] removed payload 236[2][LF] removed payload 275[0][LF] removed payload 275[1][LF] removed payload 275[2][LF] removed payload 285[0][LF] removed payload 295[0][LF] removed payload 295[1][LF] Removing nodes not larger than 400[LF] removed payload 334[0][LF] removed payload 334[1][LF] removed payload 344[0][LF] removed payload 344[1][LF] removed payload 344[2][LF] removed payload 354[0][LF] removed payload 393[0][LF] Removing nodes not larger than 500[LF] removed payload 403[0][LF] removed payload 403[1][LF] removed payload 413[0][LF] removed payload 413[1][LF] removed payload 413[2][LF] removed payload 462[0][LF] removed payload 472[0][LF] removed payload 472[1][LF] Removing nodes not larger than 600[LF] removed payload 521[0][LF] removed payload 521[1][LF] removed payload 521[2][LF] removed payload 531[0][LF] removed payload 541[0][LF] removed payload 541[1][LF] removed payload 580[0][LF] removed payload 580[1][LF] removed payload 590[0][LF] removed payload 590[1][LF] removed payload 590[2][LF] removed payload 600[0][LF] Removing nodes not larger than 700[LF] removed payload 639[0][LF] removed payload 649[0][LF] removed payload 649[1][LF] removed payload 659[0][LF] removed payload 659[1][LF] removed payload 659[2][LF] removed payload 698[0][LF] removed payload 698[1][LF] removed payload 698[2][LF] Removing nodes not larger than 800[LF] removed payload 708[0][LF] removed payload 718[0][LF] removed payload 718[1][LF] removed payload 757[0][LF] removed payload 757[1][LF] removed payload 767[0][LF] removed payload 767[1][LF] removed payload 767[2][LF] removed payload 777[0][LF] Removing nodes not larger than 900[LF] removed payload 816[0][LF] removed payload 826[0][LF] removed payload 826[1][LF] removed payload 836[0][LF] removed payload 836[1][LF] removed payload 836[2][LF] removed payload 875[0][LF] removed payload 875[1][LF] removed payload 875[2][LF] removed payload 885[0][LF] removed payload 895[0][LF] removed payload 895[1][LF] Removing nodes not larger than 1000[LF] removed payload 934[0][LF] removed payload 934[1][LF] removed payload 944[0][LF] removed payload 944[1][LF] removed payload 944[2][LF] removed payload 954[0][LF] Removing nodes not larger than 1100[LF] removed payload 1003[0][LF] removed payload 1003[1][LF] removed payload 1013[0][LF] removed payload 1013[1][LF] removed payload 1013[2][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1309 ./unit/units unit1309 - > log/57/stdout1309 2> log/57/stderr1309 === End of file commands.log === Start of file server.cmd Testnum 1309 === End of file server.cmd === Start of file valgrind1309 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1309 test 1378...[FTP DL, file without Content-Disposition inside, using -o fname] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1378 ../src/curl -q --trace-ascii log/47/trace1378 --trace-config all --trace-time ftp://127.0.0.1:45575/path/file1378 -o log/47/download1378 > log/47/stdout1378 2> log/47/stderr1378 1378: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1378 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1378 ../src/curl -q --trace-ascii log/47/trace1378 --trace-config all --trace-time ftp://127.0.0.1:45575/path/file1378 -o log/47/download1378 > log/47/stdout1378 2> log/47/stderr1378 === End of file commands.log === Start of file ftp_server.log 09:41:28.592200 ====> Client connect 09:41:28.603373 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:28.610074 < "USER anonymous" 09:41:28.611375 > "331 We are happy you popped in![CR][LF]" 09:41:28.614137 < "PASS ftp@example.com" 09:41:28.614525 > "230 Welcome you silly person[CR][LF]" 09:41:28.617108 < "PWD" 09:41:28.617908 > "257 "/" is current directory[CR][LF]" 09:41:28.620568 < "EPSV" 09:41:28.620967 ====> Passive DATA channel requested by client 09:41:28.621192 DATA sockfilt for passive data channel starting... 09:41:28.637357 DATA sockfilt for passive data channel started (pid 144437) 09:41:28.638481 DATA sockfilt for passive data channel listens on port 33595 09:41:28.639201 > "229 Entering Passive Mode (|||33595|)[LF]" 09:41:28.639543 Client has been notified that DATA conn will be accepted on port 33595 09:41:28.645319 Client connects to port 33595 09:41:28.645702 ====> Client established passive DATA connection on port 33595 09:41:28.647098 < "TYPE I" 09:41:28.647960 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:28.651871 < "SIZE verifiedserver" 09:41:28.652372 > "213 17[CR][LF]" 09:41:28.655278 < "RETR verifiedserver" 09:41:28.656198 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:28.657627 =====> Closing passive DATA connection... 09:41:28.661581 Server disconnects passive DATA connection 09:41:28.662306 Fancy that; client wants to DISC, too 09:41:28.663198 Server disconnected passive DATA connection 09:41:28.663468 DATA sockfilt for passive data channel quits (pid 144437) 09:41:28.665525 DATA sockfilt for passive data channel quit (pid 144437) 09:41:28.665870 =====> Closed passive DATA connection 09:41:28.666250 > "226 File transfer complete[CR][LF]" 09:41:28.704314 < "QUIT" 09:41:28.705879 > "221 bye bye baby[CR][LF]" 09:41:28.709202 MAIN sockfilt said DISC 09:41:28.710144 ====> Client disconnected 09:41:28.710688 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:28.843894 ====> Client connect 09:41:28.854767 Received DATA (on stdin) 09:41:28.855131 > 160 bytes data, server => client 09:41:28.855385 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:28.855668 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:28.855793 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:28.860867 < 16 bytes data, client => server 09:41:28.861227 'USER anonymous\r\n' 09:41:28.864580 Received DATA (on stdin) 09:41:28.864762 > 33 bytes data, server => client 09:41:28.865705 '331 We are happy you popped in!\r\n' 09:41:28.866989 < 22 bytes data, client => server 09:41:28.867134 'PASS ftp@example.com\r\n' 09:41:28.868653 Received DATA (on stdin) 09:41:28.868795 > 30 bytes data, server => client 09:41:28.868873 '230 Welcome you silly person\r\n' 09:41:28.869575 < 5 bytes data, client => server 09:41:28.869732 'PWD\r\n' 09:41:28.872048 Received DATA (on stdin) 09:41:28.872262 > 30 bytes data, server => client 09:41:28.872389 '257 "/" is current directory\r\n' 09:41:28.873447 < 6 bytes data, client => server 09:41:28.873670 'EPSV\r\n' 09:41:28.893913 Received DATA (on stdin) 09:41:28.894203 > 38 bytes data, server => client 09:41:28.894425 '229 Entering Passive Mode (|||33595|)\n' 09:41:28.898679 < 8 bytes data, client => server 09:41:28.898831 'TYPE I\r\n' 09:41:28.902282 Received DATA (on stdin) 09:41:28.902532 > 33 bytes data, server => client 09:41:28.902712 '200 I modify TYPE as you wanted\r\n' 09:41:28.903990 < 21 bytes data, client => server 09:41:28.904150 'SIZE verifiedserver\r\n' 09:41:28.906433 Received DATA (on stdin) 09:41:28.906758 > 8 bytes data, server => client 09:41:28.906897 '213 17\r\n' 09:41:28.907733 < 21 bytes data, client => server 09:41:28.907960 'RETR verifiedserver\r\n' 09:41:28.911599 Received DATA (on stdin) 09:41:28.911915 > 29 bytes data, server => client 09:41:28.912125 '150 Binary junk (17 bytes).\r\n' 09:41:28.920337 Received DATA (on stdin) 09:41:28.920579 > 28 bytes data, server => client 09:41:28.920701 '226 File transfer complete\r\n' 09:41:28.954773 < 6 bytes data, client => server 09:41:28.955044 'QUIT\r\n' 09:41:28.958441 Received DATA (on stdin) 09:41:28.958712 > 18 bytes data, server => client 09:41:28.958971 '221 bye bye baby\r\n' 09:41:28.962584 ====> Client disconnect 09:41:28.963284 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:28.889213 Running IPv4 version 09:41:28.890121 Listening on port 33595 09:41:28.890631 Wrote pid 144437 to log/47/server/ftp_sockdata.pid 09:41:28.890801 Received PING (on stdin) 09:41:28.891580 Received PORT (on stdin) 09:41:28.898310 ====> Client connect 09:41:28.913090 Received DATA (on stdin) 09:41:28.913255 > 17 bytes data, server => client 09:41:28.913371 'WE ROOLZ: 77499\r\n' 09:41:28.914842 ====> Client disconnect 09:41:28.915718 Received DISC (on sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1321 ../src/curl -q --output log/56/curl1321.out --include --trace-ascii log/56/trace1321 --trace-config all --trace-time 'imap://imap.1321:33743/1321/;MAILINDEX=1' -u user:secret -p -x 127.0.0.1:38159 > log/56/stdout1321 2> log/56/stderr1321 tdin) 09:41:28.915852 Crikey! Client also wants to disconnect 09:41:28.916309 Received ACKD (on stdin) 09:41:28.917439 Received QUIT (on stdin) 09:41:28.917669 quits 09:41:28.918091 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1378 === End of file server.cmd === Start of file valgrind1378 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1378 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/61/server/pop3_server.pid" --logfile "log/61/pop3_server.log" --logdir "log/61" --portfile "log/61/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42871 (log/61/server/pop3_server.port) RUN: POP3 server is PID 140790 port 42871 * pid pop3 => 140790 140790 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/61/server/http2_server.pid" --logfile "log/61/http2_server.log" --logdir "log/61" --portfile log/61/server/http2_server.port --config log/61/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 142454 port 37801 * pid http-proxy => 142454 142454 test 1319...[POP3 fetch tunneled through HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1319 ../src/curl -q --output log/61/curl1319.out --include --trace-ascii log/61/trace1319 --trace-config all --trace-time pop3://pop.1319:42871/1319 -p -x 127.0.0.1:37801 -u user:secret > log/61/stdout1319 2> log/61/stderr1319 1319: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1319 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1319 ../src/curl -q --output log/61/curl1319.out --include --trace-ascii log/61/trace1319 --trace-config all --trace-time pop3://pop.1319:42871/1319 -p -x 127.0.0.1:37801 -u user:secret > log/61/stdout1319 2> log/61/stderr1319 === End of file commands.log === Start of file http2_server.log 09:41:28.382704 Run as proxy, CONNECT to host 127.0.0.1 09:41:28.383692 Running HTTP IPv4 version on port 37801 09:41:28.384138 Wrote pid 142454 to log/61/server/http2_server.pid 09:41:28.384584 Wrote port 37801 to log/61/server/http2_server.port === End of file http2_server.log === Start of file pop3_server.log 09:41:27.117942 POP3 server listens on port IPv4/42871 09:41:27.118891 logged pid 140790 in log/61/server/pop3_server.pid 09:41:27.119162 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:27.366292 Running IPv4 version 09:41:27.366953 Listening on port 42871 09:41:27.367345 Wrote pid 141474 to log/61/server/pop3_sockfilt.pid 09:41:27.370807 Wrote port 42871 to log/61/server/pop3_server.port 09:41:27.370958 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 1319 === End of file server.cmd === Start of file valgrind1319 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1319 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/56/server/imap_server.pid" --logfile "log/56/imap_server.log" --logdir "log/56" --portfile "log/56/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33743 (log/56/server/imap_server.port) RUN: IMAP server is PID 140801 port 33743 * pid imap => 140801 140801 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/56/server/http2_server.pid" --logfile "log/56/http2_server.log" --logdir "log/56" --portfile log/56/server/http2_server.port --config log/56/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 142476 port 38159 * pid http-proxy => 142476 142476 test 1321...[IMAP FETCH tunneled through HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1321 ../src/curl -q --output log/56/curl1321.out --include --trace-ascii log/56/trace1321 --trace-config all --trace-time 'imap://imap.1321:33743/1321/;MAILINDEX=1' -u user:secret -p -x 127.0.0.1:38159 > log/56/stdout1321 2> log/56/stderr1321 1321: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 1321 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1321 ../src/curl -q --output log/56/curl1321.out --include --trace-ascii log/56/trace1321 --trace-config all --trace-time 'imap://imap.1321:33743/1321/;MAILINDEX=1' -u user:secret -p -x 127.0.0.1:38159 > log/56/stdout1321 2> log/56/stdeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1377 ../src/curl -q --trace-ascii log/62/trace1377 --trace-config all --trace-time http://127.0.0.1:38899/1377 -i -o log/62/outfile1377 > log/62/stdout1377 2> log/62/stderr1377 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1395 ./unit/units unit1395 - > log/55/stdout1395 2> log/55/stderr1395 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1379 ../src/curl -q --trace-ascii log/46/trace1379 --trace-config all --trace-time ftp://127.0.0.1:37853/path/file1379 -o log/46/download1379 -D log/46/heads1379 > log/46/stdout1379 2> log/46/stderr1379 rr1321 === End of file commands.log === Start of file http2_server.log 09:41:28.307286 Run as proxy, CONNECT to host 127.0.0.1 09:41:28.308384 Running HTTP IPv4 version on port 38159 09:41:28.309029 Wrote pid 142476 to log/56/server/http2_server.pid 09:41:28.309398 Wrote port 38159 to log/56/server/http2_server.port === End of file http2_server.log === Start of file imap_server.log 09:41:27.353215 IMAP server listens on port IPv4/33743 09:41:27.354425 logged pid 140801 in log/56/server/imap_server.pid 09:41:27.354720 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:27.599192 Running IPv4 version 09:41:27.603298 Listening on port 33743 09:41:27.603921 Wrote pid 141880 to log/56/server/imap_sockfilt.pid 09:41:27.604254 Wrote port 33743 to log/56/server/imap_server.port 09:41:27.605999 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1321 === End of file server.cmd === Start of file valgrind1321 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1321 * starts no server test 1395...[Curl_dedotdotify] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1395 ./unit/units unit1395 - > log/55/stdout1395 2> log/55/stderr1395 units returned 1, when expecting 0 1395: exit FAILED == Contents of files in the log/55/ dir after test 1395 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1395 ./unit/units unit1395 - > log/55/stdout1395 2> log/55/stderr1395 === End of file commands.log === Start of file server.cmd Testnum 1395 === End of file server.cmd === Start of file valgrind1395 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1395 test 1377...[HTTP GET -o fname -i and Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1377 ../src/curl -q --trace-ascii log/62/trace1377 --trace-config all --trace-time http://127.0.0.1:38899/1377 -i -o log/62/outfile1377 > log/62/stdout1377 2> log/62/stderr1377 1377: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1377 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1377 ../src/curl -q --trace-ascii log/62/trace1377 --trace-config all --trace-time http://127.0.0.1:38899/1377 -i -o log/62/outfile1377 > log/62/stdout1377 2> log/62/stderr1377 === End of file commands.log === Start of file http_server.log 09:41:28.430263 ====> Client connect 09:41:28.430790 accept_connection 3 returned 4 09:41:28.431026 accept_connection 3 returned 0 09:41:28.431209 Read 93 bytes 09:41:28.431336 Process 93 bytes request 09:41:28.431438 Got request: GET /verifiedserver HTTP/1.1 09:41:28.431655 Are-we-friendly question received 09:41:28.431903 Wrote request (93 bytes) input to log/62/server.input 09:41:28.432091 Identifying ourselves as friends 09:41:28.432915 Response sent (56 bytes) and written to log/62/server.response 09:41:28.433038 special request received, no persistency 09:41:28.433107 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1377 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1377 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1399 ./unit/units unit1399 - > log/48/stdout1399 2> log/48/stderr1399 penSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1377 test 1379...[FTP DL, file without C-D inside, using -o fname -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1379 ../src/curl -q --trace-ascii log/46/trace1379 --trace-config all --trace-time ftp://127.0.0.1:37853/path/file1379 -o log/46/download1379 -D log/46/heads1379 > log/46/stdout1379 2> log/46/stderr1379 1379: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 1379 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1379 ../src/curl -q --trace-ascii log/46/trace1379 --trace-config all --trace-time ftp://127.0.0.1:37853/path/file1379 -o log/46/download1379 -D log/46/heads1379 > log/46/stdout1379 2> log/46/stderr1379 === End of file commands.log === Start of file ftp_server.log 09:41:29.098931 ====> Client connect 09:41:29.101594 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.103909 < "USER anonymous" 09:41:29.104310 > "331 We are happy you popped in![CR][LF]" 09:41:29.106306 < "PASS ftp@example.com" 09:41:29.106670 > "230 Welcome you silly person[CR][LF]" 09:41:29.108121 < "PWD" 09:41:29.108467 > "257 "/" is current directory[CR][LF]" 09:41:29.110354 < "EPSV" 09:41:29.110615 ====> Passive DATA channel requested by client 09:41:29.110884 DATA sockfilt for passive data channel starting... 09:41:29.124689 DATA sockfilt for passive data channel started (pid 144755) 09:41:29.125658 DATA sockfilt for passive data channel listens on port 33247 09:41:29.126147 > "229 Entering Passive Mode (|||33247|)[LF]" 09:41:29.126365 Client has been notified that DATA conn will be accepted on port 33247 09:41:29.128145 Client connects to port 33247 09:41:29.128824 ====> Client established passive DATA connection on port 33247 09:41:29.129684 < "TYPE I" 09:41:29.130178 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.132050 < "SIZE verifiedserver" 09:41:29.133302 > "213 17[CR][LF]" 09:41:29.134416 < "RETR verifiedserver" 09:41:29.135684 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.136409 =====> Closing passive DATA connection... 09:41:29.136611 Server disconnects passive DATA connection 09:41:29.138482 Server disconnected passive DATA connection 09:41:29.138735 DATA sockfilt for passive data channel quits (pid 144755) 09:41:29.140596 DATA sockfilt for passive data channel quit (pid 144755) 09:41:29.140897 =====> Closed passive DATA connection 09:41:29.141461 > "226 File transfer complete[CR][LF]" 09:41:29.179969 < "QUIT" 09:41:29.181284 > "221 bye bye baby[CR][LF]" 09:41:29.183156 MAIN sockfilt said DISC 09:41:29.183497 ====> Client disconnected 09:41:29.184018 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:29.351946 ====> Client connect 09:41:29.354134 Received DATA (on stdin) 09:41:29.354324 > 160 bytes data, server => client 09:41:29.354624 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:29.354750 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:29.354830 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:29.356703 < 16 bytes data, client => server 09:41:29.356894 'USER anonymous\r\n' 09:41:29.358303 Received DATA (on stdin) 09:41:29.358424 > 33 bytes data, server => client 09:41:29.358654 '331 We are happy you popped in!\r\n' 09:41:29.359193 < 22 bytes data, client => server 09:41:29.359327 'PASS ftp@example.com\r\n' 09:41:29.360403 Received DATA (on stdin) 09:41:29.360659 > 30 bytes data, server => client 09:41:29.360753 '230 Welcome you silly person\r\n' 09:41:29.361295 < 5 bytes data, client => server 09:41:29.361426 'PWD\r\n' 09:41:29.362437 Received DATA (on stdin) 09:41:29.362617 > 30 bytes data, server => client 09:41:29.362696 '257 "/" is current directory\r\n' 09:41:29.363224 < 6 bytes data, client => server 09:41:29.363353 'EPSV\r\n' 09:41:29.380331 Received DATA (on stdin) 09:41:29.380455 > 38 bytes data, server => client 09:41:29.380614 '229 Entering Passive Mode (|||33247|)\n' 09:41:29.382158 < 8 bytes data, client => server 09:41:29.382266 'TYPE I\r\n' 09:41:29.384160 Received DATA (on stdin) 09:41:29.384267 > 33 bytes data, server => client 09:41:29.384341 '200 I modify TYPE as you wanted\r\n' 09:41:29.384977 < 21 bytes data, client => server 09:41:29.385128 'SIZE verifiedserver\r\n' 09:41:29.386126 Received DATA (on stdin) 09:41:29.386257 > 8 bytes data, server => client 09:41:29.386403 '213 17\r\n' 09:41:29.387430 < 21 bytes data, client => server 09:41:29.387607 'RETR verifiedserver\r\n' 09:41:29.388538 Received DATA (on stdin) 09:41:29.388669 > 29 bytes data, server => client 09:41:29.388823 '150 Binary junk (17 bytes).\r\n' 09:41:29.394880 Received DATA (on stdin) 09:41:29.395002 > 28 bytes data, server => client 09:41:29.395535 '226 File transfer complete\r\n' 09:41:29.432649 < 6 bytes data, client => server 09:41:29.432839 'QUIT\r\n' 09:41:29.434102 Received DATA (on stdin) 09:41:29.434275 > 18 bytes data, server => client 09:41:29.434555 '221 bye bye baby\r\n' 09:41:29.436429 ====> Client disconnect 09:41:29.437262 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.376888 Running IPv4 version 09:41:29.377351 Listening on port 33247 09:41:29.377763 Wrote pid 144755 to log/46/server/ftp_sockdata.pid 09:41:29.378120 Received PING (on stdin) 09:41:29.378869 Received PORT (on stdin) 09:41:29.381571 ====> Client connect 09:41:29.390587 Received DATA (on stdin) 09:41:29.390716 > 17 bytes data, server => client 09:41:29.390789 'WE ROOLZ: 78258\r\n' 09:41:29.391076 Received DISC (on stdin) 09:41:29.391200 ====> Client forcibly disconnected 09:41:29.392846 Received QUIT (on stdin) 09:41:29.392969 quits 09:41:29.393352 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1379 === End of file server.cmd === Start of file valgrind1379 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1379 * starts no server tesCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1398 ./unit/units unit1398 - > log/49/stdout1398 2> log/49/stderr1398 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1396 ./unit/units unit1396 - > log/54/stdout1396 2> log/54/stderr1396 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1380 ../src/curl -q --trace-ascii log/63/trace1380 --trace-config all --trace-time ftp://127.0.0.1:33267/path/file1380 -o log/63/download1380 -D - > log/63/stdout1380 2> log/63/stderr1380 t 1399...[Curl_pgrsTime unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1399 ./unit/units unit1399 - > log/48/stdout1399 2> log/48/stderr1399 units returned 1, when expecting 0 1399: exit FAILED == Contents of files in the log/48/ dir after test 1399 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1399 ./unit/units unit1399 - > log/48/stdout1399 2> log/48/stderr1399 === End of file commands.log === Start of file server.cmd Testnum 1399 === End of file server.cmd === Start of file valgrind1399 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1399 * starts no server test 1398...[curl_msnprintf unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1398 ./unit/units unit1398 - > log/49/stdout1398 2> log/49/stderr1398 units returned 1, when expecting 0 1398: exit FAILED == Contents of files in the log/49/ dir after test 1398 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1398 ./unit/units unit1398 - > log/49/stdout1398 2> log/49/stderr1398 === End of file commands.log === Start of file server.cmd Testnum 1398 === End of file server.cmd === Start of file valgrind1398 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1398 * starts no server test 1396...[curl_easy_escape and curl_easy_unescape] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1396 ./unit/units unit1396 - > log/54/stdout1396 2> log/54/stderr1396 units returned 1, when expecting 0 1396: exit FAILED == Contents of files in the log/54/ dir after test 1396 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1396 ./unit/units unit1396 - > log/54/stdout1396 2> log/54/stderr1396 === End of file commands.log === Start of file server.cmd Testnum 1396 === End of file server.cmd === Start of file valgrind1396 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1396 test 1380...[FTP DL, file without C-D inside, using -o fname -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1380 ../src/curl -q --trace-ascii log/63/trace1380 --trace-config all --trace-time ftp://127.0.0.1:33267/path/file1380 -o log/63/download1380 -D - > log/63/stdout1380 2> log/63/stderr1380 1380: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1380 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1380 ../src/curl -q --trace-ascii log/63/trace1380 --trace-config all --trace-time ftp://127.0.0.1:33267/path/file1380 -o log/63/download1380 -D - > log/63/stdout1380 2> log/63/stderr1380 === End of file commands.log === Start of file ftp_server.log 09:41:29.641417 ====> Client connect 09:41:29.643923 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.645403 < "USER anonymous" 09:41:29.647195 > "331 We are happy you popped in![CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1397 ./unit/units unit1397 - > log/50/stdout1397 2> log/50/stderr1397 CR][LF]" 09:41:29.648006 < "PASS ftp@example.com" 09:41:29.649328 > "230 Welcome you silly person[CR][LF]" 09:41:29.650535 < "PWD" 09:41:29.650988 > "257 "/" is current directory[CR][LF]" 09:41:29.653132 < "EPSV" 09:41:29.653470 ====> Passive DATA channel requested by client 09:41:29.653694 DATA sockfilt for passive data channel starting... 09:41:29.669044 DATA sockfilt for passive data channel started (pid 145012) 09:41:29.670092 DATA sockfilt for passive data channel listens on port 46301 09:41:29.670566 > "229 Entering Passive Mode (|||46301|)[LF]" 09:41:29.672650 Client has been notified that DATA conn will be accepted on port 46301 09:41:29.673256 Client connects to port 46301 09:41:29.673555 ====> Client established passive DATA connection on port 46301 09:41:29.674467 < "TYPE I" 09:41:29.675083 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.677016 < "SIZE verifiedserver" 09:41:29.678279 > "213 17[CR][LF]" 09:41:29.680016 < "RETR verifiedserver" 09:41:29.681200 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.682322 =====> Closing passive DATA connection... 09:41:29.682552 Server disconnects passive DATA connection 09:41:29.683197 Server disconnected passive DATA connection 09:41:29.683474 DATA sockfilt for passive data channel quits (pid 145012) 09:41:29.687077 DATA sockfilt for passive data channel quit (pid 145012) 09:41:29.687337 =====> Closed passive DATA connection 09:41:29.687645 > "226 File transfer complete[CR][LF]" 09:41:29.725399 < "QUIT" 09:41:29.725885 > "221 bye bye baby[CR][LF]" 09:41:29.731441 MAIN sockfilt said DISC 09:41:29.731827 ====> Client disconnected 09:41:29.732335 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:29.894578 ====> Client connect 09:41:29.896413 Received DATA (on stdin) 09:41:29.896662 > 160 bytes data, server => client 09:41:29.896884 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:29.897014 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:29.897092 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:29.898089 < 16 bytes data, client => server 09:41:29.898214 'USER anonymous\r\n' 09:41:29.899514 Received DATA (on stdin) 09:41:29.899663 > 33 bytes data, server => client 09:41:29.899838 '331 We are happy you popped in!\r\n' 09:41:29.900571 < 22 bytes data, client => server 09:41:29.900719 'PASS ftp@example.com\r\n' 09:41:29.902088 Received DATA (on stdin) 09:41:29.902225 > 30 bytes data, server => client 09:41:29.902391 '230 Welcome you silly person\r\n' 09:41:29.903563 < 5 bytes data, client => server 09:41:29.903707 'PWD\r\n' 09:41:29.905009 Received DATA (on stdin) 09:41:29.905130 > 30 bytes data, server => client 09:41:29.905211 '257 "/" is current directory\r\n' 09:41:29.905933 < 6 bytes data, client => server 09:41:29.906085 'EPSV\r\n' 09:41:29.924321 Received DATA (on stdin) 09:41:29.924573 > 38 bytes data, server => client 09:41:29.924690 '229 Entering Passive Mode (|||46301|)\n' 09:41:29.926284 < 8 bytes data, client => server 09:41:29.926454 'TYPE I\r\n' 09:41:29.928818 Received DATA (on stdin) 09:41:29.928983 > 33 bytes data, server => client 09:41:29.929073 '200 I modify TYPE as you wanted\r\n' 09:41:29.929861 < 21 bytes data, client => server 09:41:29.930014 'SIZE verifiedserver\r\n' 09:41:29.931190 Received DATA (on stdin) 09:41:29.931347 > 8 bytes data, server => client 09:41:29.931583 '213 17\r\n' 09:41:29.933039 < 21 bytes data, client => server 09:41:29.933196 'RETR verifiedserver\r\n' 09:41:29.934145 Received DATA (on stdin) 09:41:29.934290 > 29 bytes data, server => client 09:41:29.934453 '150 Binary junk (17 bytes).\r\n' 09:41:29.941819 Received DATA (on stdin) 09:41:29.941990 > 28 bytes data, server => client 09:41:29.942094 '226 File transfer complete\r\n' 09:41:29.977643 < 6 bytes data, client => server 09:41:29.977799 'QUIT\r\n' 09:41:29.979583 Received DATA (on stdin) 09:41:29.979742 > 18 bytes data, server => client 09:41:29.979824 '221 bye bye baby\r\n' 09:41:29.983724 ====> Client disconnect 09:41:29.988547 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.921082 Running IPv4 version 09:41:29.921743 Listening on port 46301 09:41:29.922184 Wrote pid 145012 to log/63/server/ftp_sockdata.pid 09:41:29.922343 Received PING (on stdin) 09:41:29.923162 Received PORT (on stdin) 09:41:29.926045 ====> Client connect 09:41:29.935373 Received DATA (on stdin) 09:41:29.935598 > 17 bytes data, server => client 09:41:29.935713 'WE ROOLZ: 77431\r\n' 09:41:29.936603 Received DISC (on stdin) 09:41:29.936806 ====> Client forcibly disconnected 09:41:29.937659 Received QUIT (on stdin) 09:41:29.937800 quits 09:41:29.938196 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1380 === End of file server.cmd === Start of file valgrind1380 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1380 * starts no server test 1397...[Curl_cert_hostcheck unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1397 ./unit/units unit1397 - > log/50/stdout1397 2> log/50/stderr1397 units returned 1, when expecting 0 1397: exit FAILED == Contents of files in the log/50/ dir after test 1397 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1397 ./unit/units unit1397 - > log/50/stdout1397 2> log/50/stderr1397 === End of file commands.log === Start of file server.cmd Testnum 1397 === End of file server.cmd === Start of file valgrind1397 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1394 ./tunit/tunits tool1394 - > log/59/stdout1394 2> log/59/stderr1394 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1382 ../src/curl -q --trace-ascii log/58/trace1382 --trace-config all --trace-time ftp://127.0.0.1:38901/path/file1382 -o log/58/download1382 -J -D - > log/58/stdout1382 2> log/58/stderr1382 (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1397 * starts no server test 1394...[unit test for parse_cert_parameter()] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1394 ./tunit/tunits tool1394 - > log/59/stdout1394 2> log/59/stderr1394 tunits returned 1, when expecting 0 1394: exit FAILED == Contents of files in the log/59/ dir after test 1394 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1394 ./tunit/tunits tool1394 - > log/59/stdout1394 2> log/59/stderr1394 === End of file commands.log === Start of file server.cmd Testnum 1394 === End of file server.cmd === Start of file valgrind1394 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1394 test 1382...[FTP DL, file without C-D inside, using -o fname -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1382 ../src/curl -q --trace-ascii log/58/trace1382 --trace-config all --trace-time ftp://127.0.0.1:38901/path/file1382 -o log/58/download1382 -J -D - > log/58/stdout1382 2> log/58/stderr1382 1382: protocol FAILED! There was no content at all in the file log/58/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/58/ dir after test 1382 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1382 ../src/curl -q --trace-ascii log/58/trace1382 --trace-config all --trace-time ftp://127.0.0.1:38901/path/file1382 -o log/58/download1382 -J -D - > log/58/stdout1382 2> log/58/stderr1382 === End of file commands.log === Start of file ftp_server.log 09:41:29.877259 ====> Client connect 09:41:29.879426 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.880563 < "USER anonymous" 09:41:29.880959 > "331 We are happy you popped in![CR][LF]" 09:41:29.883060 < "PASS ftp@example.com" 09:41:29.884137 > "230 Welcome you silly person[CR][LF]" 09:41:29.885313 < "PWD" 09:41:29.887011 > "257 "/" is current directory[CR][LF]" 09:41:29.888079 < "EPSV" 09:41:29.888302 ====> Passive DATA channel requested by client 09:41:29.888459 DATA sockfilt for passive data channel starting... 09:41:29.905962 DATA sockfilt for passive data channel started (pid 145327) 09:41:29.907014 DATA sockfilt for passive data channel listens on port 42451 09:41:29.907489 > "229 Entering Passive Mode (|||42451|)[LF]" 09:41:29.908520 Client has been notified that DATA conn will be accepted on port 42451 09:41:29.909943 Client connects to port 42451 09:41:29.910267 ====> Client established passive DATA connection on port 42451 09:41:29.911186 < "TYPE I" 09:41:29.911630 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.913268 < "SIZE verifiedserver" 09:41:29.913713 > "213 17[CR][LF]" 09:41:29.915314 < "RETR verifiedserver" 09:41:29.915854 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.916564 =====> Closing passive DATA connection... 09:41:29.916890 Server disconnects passive DATA connection 09:41:29.918586 Server disconnected passive DATA connection 09:41:29.918937 DATA sockfilt for passive data channel quits (pid 145327) 09:41:29.921123 DATA sockfilt for passive data channel quit (pid 145327) 09:41:29.921357 =====> Closed passive DATA connection 09:41:29.921707 > "226 File transfer complete[CR][LF]" 09:41:29.959104 < "QUIT" 09:41:29.961621 > "221 bye bye baby[CR][LF]" 09:41:29.966286 MAIN sockfilt said DISC 09:41:29.966593 ====> Client disconnected 09:41:29.967172 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.130285 ====> Client connect 09:41:30.132146 Received DATA (on stdin) 09:41:30.132291 > 160 bytes data, server => client 09:41:30.132516 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.132646 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.132727 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.133367 < 16 bytes data, client => server 09:41:30.134962 'USER anonymous\r\n' 09:41:30.135080 Received DATA (on stdin) 09:41:30.135163 > 33 bytes data, server => client 09:41:30.135270 '331 We are happy you popped in!\r\n' 09:41:30.135979 < 22 bytes data, client => server 09:41:30.136124 'PASS ftp@example.com\r\n' 09:41:30.137113 Received DATA (on stdin) 09:41:30.137237 > 30 bytes data, server => client 09:41:30.137405 '230 Welcome you silly person\r\n' 09:41:30.138206 < 5 bytes data, client => server 09:41:30.138321 'PWD\r\n' 09:41:30.139348 Received DATA (on stdin) 09:41:30.139722 > 30 bytes data, server => client 09:41:30.139948 '257 "/" is current directory\r\n' 09:41:30.141082 < 6 bytes data, client => server 09:41:30.141205 'EPSV\r\n' 09:41:30.161574 Received DATA (on stdin) 09:41:30.161718 > 38 bytes data, server => client 09:41:30.161823 '229 Entering Passive Mode (|||42451|)\n' 09:41:30.163802 < 8 bytes data, client => server 09:41:30.163934 'TYPE I\r\n' 09:41:30.165380 Received DATA (on stdin) 09:41:30.165600 > 33 bytes data, server => client 09:41:30.165685 '200 I modify TYPE as you wanted\r\n' 09:41:30.166328 < 21 bytes data, client => server 09:41:30.166535 'SIZE verifiedserver\r\n' 09:41:30.167518 Received DATA (on stdin) 09:41:30.167671 > 8 bytes data, server => client 09:41:30.167752 '213 17\r\n' 09:41:30.168420 < 21 bytes data, client => server 09:41:30.168636 'RETR verifiedserver\r\n' 09:41:30.169581 Received DATA (on stdin) 09:41:30.169750 > 29 bytes data, server => client 09:41:30.169841 '150 Binary junk (17 bytes).\r\n' 09:41:30.175515 Received DATA (on stdin) 09:41:30.175673 > 28 bytes data, server => client 09:41:30.175749 '226 File transfer complete\r\n' 09:41:30.211919 < 6 bytes data, client => server 09:41:30.212094 'QUIT\r\n' 09:41:30.213621 Received DATA (on stdin) 09:41:30.213975 > 18 bytes data, server => client 09:41RUN: Process with pid 135707 forced to die with SIGKILL env: ‘python3’: No such file or directory env: ‘python3’: No such file or directory env: ‘python3’: No such file or directory CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1393 ../src/curl -q --trace-ascii log/9/trace1393 --trace-config all --trace-time ftp://127.0.0.1:36293/path/file1393 -o log/9/download1393 -i > log/9/stdout1393 2> log/9/stderr1393 :30.214574 '221 bye bye baby\r\n' 09:41:30.219660 ====> Client disconnect 09:41:30.221177 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.157903 Running IPv4 version 09:41:29.158568 Listening on port 42451 09:41:29.158980 Wrote pid 145327 to log/58/server/ftp_sockdata.pid 09:41:29.159208 Received PING (on stdin) 09:41:29.160085 Received PORT (on stdin) 09:41:29.163290 ====> Client connect 09:41:29.170909 Received DATA (on stdin) 09:41:29.171049 > 17 bytes data, server => client 09:41:29.171142 'WE ROOLZ: 77973\r\n' 09:41:29.171691 Received DISC (on stdin) 09:41:29.171860 ====> Client forcibly disconnected 09:41:29.172950 Received QUIT (on stdin) 09:41:29.173079 quits 09:41:29.173548 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1382 === End of file server.cmd === Start of file valgrind1382 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1382 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/15/server/tftp_server.pid" --portfile "log/15/server/tftp_server.port" --logfile "log/15/tftp_server.log" --logdir "log/15" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 135707 port 41838 * pid tftp => 135707 135707 test 1238...[slow TFTP retrieve cancel due to -Y and -y] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1238 ../src/curl -q --output log/15/curl1238.out --include --trace-ascii log/15/trace1238 --trace-config all --trace-time tftp://127.0.0.1:41838//1238 -Y1000 -y2 > log/15/stdout1238 2> log/15/stderr1238 1238: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 1238 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1238 ../src/curl -q --output log/15/curl1238.out --include --trace-ascii log/15/trace1238 --trace-config all --trace-time tftp://127.0.0.1:41838//1238 -Y1000 -y2 > log/15/stdout1238 2> log/15/stderr1238 === End of file commands.log === Start of file server.cmd writedelay: 2000 Testnum 1238 === End of file server.cmd === Start of file tftp_server.log 09:41:23.732104 Wrote pid 135707 to log/15/server/tftp_server.pid 09:41:23.732851 Wrote port 41838 to log/15/server/tftp_server.port 09:41:23.732954 Running IPv4 version on port UDP/41838 exit_signal_handler: called === End of file tftp_server.log === Start of file valgrind1238 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1238 test 1393...[FTP DL, file with C-D inside, using -o fname -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1393 ../src/curl -q --trace-ascii log/9/trace1393 --trace-config all --trace-time ftp://127.0.0.1:36293/path/file1393 -o log/9/download1393 -i > log/9/stdout1393 2> log/9/stderr1393 1393: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 1393 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1393 ../src/curl -q --trace-ascii log/9/trace1393 --trace-config all --trace-time ftp://127.0.0.1:36293/path/file1393 -o log/9/download1393 -i > log/9/stdout1393 2> log/9/stderr1393 === End of file commands.log === Start of file ftp_server.log 09:41:29.893210 ====> Client connect 09:41:29.894348 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.897191 < "USER anonymous" 09:41:29.897559 > "331 We are happy you popped in![CR][LF]" 09:41:29.899704 < "PASS ftp@example.com" 09:41:29.900881 > "230 Welcome you silly person[CR][LF]" 09:41:29.902371 < "PWD" 09:41:29.903702 > "257 "/" is current directory[CR][LF]" 09:41:29.904715 < "EPSV" 09:41:29.905012 ====> Passive DATA channel requested by client 09:41:29.905139 DATA sockfilt for passive data channel starting... 09:41:29.919380 DATA sockfilt for passive data channel started (pid 145350) 09:41:29.920431 DATA sockfilt for passive data channel listens on port 35137 09:41:29.921334 > "229 Entering Passive Mode (|||35137|)[LF]" 09:41:29.921608 Client has been notified that DATA conn will be accepted on port 35137 09:41:29.923608 Client connects to port 35137 09:41:29.924010 ====> Client established passive DATA connection on port 35137 09:41:29.925897 < "TYPE I" 09:41:29.926354 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.928558 < "SIZE verifiedserver" 09:41:29.929413 > "213 17[CR][LF]" 09:41:29.931291 < "RETR verifiedserver" 09:41:29.932531 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.933426 =====> Closing passive DATA connection... 09:41:29.933671 Server disconnects passive DATA connectiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1386 ../src/curl -q --trace-ascii log/51/trace1386 --trace-config all --trace-time ftp://127.0.0.1:42737/path/file1386 -o log/51/download1386 > log/51/stdout1386 2> log/51/stderr1386 on 09:41:29.936175 Server disconnected passive DATA connection 09:41:29.936490 DATA sockfilt for passive data channel quits (pid 145350) 09:41:29.938647 DATA sockfilt for passive data channel quit (pid 145350) 09:41:29.938979 =====> Closed passive DATA connection 09:41:29.939328 > "226 File transfer complete[CR][LF]" 09:41:29.975608 < "QUIT" 09:41:29.976028 > "221 bye bye baby[CR][LF]" 09:41:29.977313 MAIN sockfilt said DISC 09:41:29.980847 ====> Client disconnected 09:41:29.981339 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:29.146360 ====> Client connect 09:41:29.148408 Received DATA (on stdin) 09:41:29.148642 > 160 bytes data, server => client 09:41:29.148742 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:29.148833 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:29.148911 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:29.149644 < 16 bytes data, client => server 09:41:29.149781 'USER anonymous\r\n' 09:41:29.151776 Received DATA (on stdin) 09:41:29.151920 > 33 bytes data, server => client 09:41:29.151993 '331 We are happy you popped in!\r\n' 09:41:29.152632 < 22 bytes data, client => server 09:41:29.152797 'PASS ftp@example.com\r\n' 09:41:29.153897 Received DATA (on stdin) 09:41:29.154041 > 30 bytes data, server => client 09:41:29.154190 '230 Welcome you silly person\r\n' 09:41:29.155551 < 5 bytes data, client => server 09:41:29.155655 'PWD\r\n' 09:41:29.156536 Received DATA (on stdin) 09:41:29.156681 > 30 bytes data, server => client 09:41:29.156839 '257 "/" is current directory\r\n' 09:41:29.157821 < 6 bytes data, client => server 09:41:29.157935 'EPSV\r\n' 09:41:29.174657 Received DATA (on stdin) 09:41:29.174820 > 38 bytes data, server => client 09:41:29.175736 '229 Entering Passive Mode (|||35137|)\n' 09:41:29.178605 < 8 bytes data, client => server 09:41:29.178769 'TYPE I\r\n' 09:41:29.180432 Received DATA (on stdin) 09:41:29.180677 > 33 bytes data, server => client 09:41:29.180781 '200 I modify TYPE as you wanted\r\n' 09:41:29.181405 < 21 bytes data, client => server 09:41:29.181642 'SIZE verifiedserver\r\n' 09:41:29.182791 Received DATA (on stdin) 09:41:29.182926 > 8 bytes data, server => client 09:41:29.183443 '213 17\r\n' 09:41:29.184213 < 21 bytes data, client => server 09:41:29.184341 'RETR verifiedserver\r\n' 09:41:29.185445 Received DATA (on stdin) 09:41:29.185665 > 29 bytes data, server => client 09:41:29.185856 '150 Binary junk (17 bytes).\r\n' 09:41:29.193364 Received DATA (on stdin) 09:41:29.193598 > 28 bytes data, server => client 09:41:29.193716 '226 File transfer complete\r\n' 09:41:29.228434 < 6 bytes data, client => server 09:41:29.228677 'QUIT\r\n' 09:41:29.230041 Received DATA (on stdin) 09:41:29.230167 > 18 bytes data, server => client 09:41:29.230255 '221 bye bye baby\r\n' 09:41:29.230806 ====> Client disconnect 09:41:29.231309 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.171633 Running IPv4 version 09:41:29.172179 Listening on port 35137 09:41:29.172644 Wrote pid 145350 to log/9/server/ftp_sockdata.pid 09:41:29.172815 Received PING (on stdin) 09:41:29.173598 Received PORT (on stdin) 09:41:29.177005 ====> Client connect 09:41:29.188092 Received DATA (on stdin) 09:41:29.188270 > 17 bytes data, server => client 09:41:29.188381 'WE ROOLZ: 77386\r\n' 09:41:29.188761 Received DISC (on stdin) 09:41:29.188934 ====> Client forcibly disconnected 09:41:29.190582 Received QUIT (on stdin) 09:41:29.190734 quits 09:41:29.191166 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1393 === End of file server.cmd === Start of file valgrind1393 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1393 test 1386...[FTP DL, file with Content-Disposition inside, using -o fname] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1386 ../src/curl -q --trace-ascii log/51/trace1386 --trace-config all --trace-time ftp://127.0.0.1:42737/path/file1386 -o log/51/download1386 > log/51/stdout1386 2> log/51/stderr1386 1386: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 1386 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1386 ../src/curl -q --trace-ascii log/51/trace1386 --trace-config all --trace-time ftp://127.0.0.1:42737/path/file1386 -o log/51/download1386 > log/51/stdout1386 2> log/51/stderr1386 === End of file commands.log === Start of file ftp_server.log 09:41:29.851989 ====> Client connect 09:41:29.853540 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.855954 < "USER anonymous" 09:41:29.856931 > "331 We are happy you popped in![CR][LF]" 09:41:29.857960 < "PASS ftp@example.com" 09:41:29.859978 > "230 Welcome you silly person[CR][LF]" 09:41:29.861080 < "PWD" 09:41:29.861443 > "257 "/" is current directory[CR][LF]" 09:41:29.863399 < "EPSV" 09:41:29.863644 ====> Passive DATA channel requested by client 09:41:29.863894 DATA sockfilt for passive data channel starting... 09:41:29.881064 DATA sockfilt for passive data channel started (pid 145304) 09:41:29.882156 DATA sockfilt for passive data channel listens on port 39127 09:41:29.882618 > "229 Entering Passive Mode (|||39127|)[LF]" 09:41:29.882927 Client has been notified that DATA conn will be accepted on port 39127 09:41:29.885008 Client connects to port 39127 09:41:29.885317 ====> Client established passive DATA connection on port 39127 09:41:29.886150 < "TYPE I" 09:41:29.886540 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.888141 < "SIZE verifiedserver" 09:41:29.889475 > "213 17[CR][LF]" 09:41:29.890603 < "RETR verifiedserver" 09:41:29.891361 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.892088 =====> Closing passive DATA connection... 09:41:29.892294 Server disconnects passive DATA connection 09:41:29.893581 Server disconnected passive DATA connection 09:41:29.893903 DATA sockfilt for passive data channel quits (pid 145304) 09:41:29.895858 DATA sockfilt for passive data channel quit (pid 145304) 09:41:29.896105 =====> Closed passive DATA connection 09:41:29.897172 > "226 File transfer complete[CR][LF]" 09:41:29.935553 < "QUIT" 09:41:29.936330 > "221 bye bye baby[CCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1388 ../src/curl -q --trace-ascii log/43/trace1388 --trace-config all --trace-time ftp://127.0.0.1:33177/path/file1388 -o log/43/download1388 -D - > log/43/stdout1388 2> log/43/stderr1388 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1384 ../src/curl -q --trace-ascii log/53/trace1384 --trace-config all --trace-time ftp://127.0.0.1:42281/path/file1384 -o log/53/download1384 -i -D - > log/53/stdout1384 2> log/53/stderr1384 R][LF]" 09:41:29.937611 MAIN sockfilt said DISC 09:41:29.938471 ====> Client disconnected 09:41:29.939045 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.105091 ====> Client connect 09:41:30.106855 Received DATA (on stdin) 09:41:30.107002 > 160 bytes data, server => client 09:41:30.107650 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.107792 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.107864 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.108710 < 16 bytes data, client => server 09:41:30.108845 'USER anonymous\r\n' 09:41:30.109965 Received DATA (on stdin) 09:41:30.110094 > 33 bytes data, server => client 09:41:30.110245 '331 We are happy you popped in!\r\n' 09:41:30.110844 < 22 bytes data, client => server 09:41:30.110952 'PASS ftp@example.com\r\n' 09:41:30.112308 Received DATA (on stdin) 09:41:30.112418 > 30 bytes data, server => client 09:41:30.112776 '230 Welcome you silly person\r\n' 09:41:30.113880 < 5 bytes data, client => server 09:41:30.113986 'PWD\r\n' 09:41:30.115420 Received DATA (on stdin) 09:41:30.115592 > 30 bytes data, server => client 09:41:30.115685 '257 "/" is current directory\r\n' 09:41:30.116332 < 6 bytes data, client => server 09:41:30.116554 'EPSV\r\n' 09:41:30.136991 Received DATA (on stdin) 09:41:30.137151 > 38 bytes data, server => client 09:41:30.137251 '229 Entering Passive Mode (|||39127|)\n' 09:41:30.138667 < 8 bytes data, client => server 09:41:30.138811 'TYPE I\r\n' 09:41:30.140267 Received DATA (on stdin) 09:41:30.140421 > 33 bytes data, server => client 09:41:30.140586 '200 I modify TYPE as you wanted\r\n' 09:41:30.141208 < 21 bytes data, client => server 09:41:30.141314 'SIZE verifiedserver\r\n' 09:41:30.142194 Received DATA (on stdin) 09:41:30.142316 > 8 bytes data, server => client 09:41:30.142537 '213 17\r\n' 09:41:30.143650 < 21 bytes data, client => server 09:41:30.143777 'RETR verifiedserver\r\n' 09:41:30.144746 Received DATA (on stdin) 09:41:30.144885 > 29 bytes data, server => client 09:41:30.146259 '150 Binary junk (17 bytes).\r\n' 09:41:30.150131 Received DATA (on stdin) 09:41:30.150279 > 28 bytes data, server => client 09:41:30.150452 '226 File transfer complete\r\n' 09:41:30.188400 < 6 bytes data, client => server 09:41:30.188627 'QUIT\r\n' 09:41:30.189710 Received DATA (on stdin) 09:41:30.189849 > 18 bytes data, server => client 09:41:30.190348 '221 bye bye baby\r\n' 09:41:30.191069 ====> Client disconnect 09:41:30.191739 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.133354 Running IPv4 version 09:41:29.133948 Listening on port 39127 09:41:29.134244 Wrote pid 145304 to log/51/server/ftp_sockdata.pid 09:41:29.134395 Received PING (on stdin) 09:41:29.135193 Received PORT (on stdin) 09:41:29.138345 ====> Client connect 09:41:29.145530 Received DATA (on stdin) 09:41:29.145681 > 17 bytes data, server => client 09:41:29.145759 'WE ROOLZ: 77543\r\n' 09:41:29.146267 Received DISC (on stdin) 09:41:29.146421 ====> Client forcibly disconnected 09:41:29.147943 Received QUIT (on stdin) 09:41:29.148087 quits 09:41:29.148442 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1386 === End of file server.cmd === Start of file valgrind1386 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1386 test 1388...[FTP DL, file with C-D inside, using -o fname -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1388 ../src/curl -q --trace-ascii log/43/trace1388 --trace-config all --trace-time ftp://127.0.0.1:33177/path/file1388 -o log/43/download1388 -D - > log/43/stdout1388 2> log/43/stderr1388 1388: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 1388 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1388 ../src/curl -q --trace-ascii log/43/trace1388 --trace-config all --trace-time ftp://127.0.0.1:33177/path/file1388 -o log/43/download1388 -D - > log/43/stdout1388 2> log/43/stderr1388 === End of file commands.log === Start of file ftp_server.log 09:41:29.890864 ====> Client connect 09:41:29.892201 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.895363 < "USER anonymous" 09:41:29.897415 > "331 We are happy you popped in![CR][LF]" 09:41:29.898246 < "PASS ftp@example.com" 09:41:29.900180 > "230 Welcome you silly person[CR][LF]" 09:41:29.901022 < "PWD" 09:41:29.902502 > "257 "/" is current directory[CR][LF]" 09:41:29.903841 < "EPSV" 09:41:29.904155 ====> Passive DATA channel requested by client 09:41:29.904365 DATA sockfilt for passive data channel starting... 09:41:29.919834 DATA sockfilt for passive data channel started (pid 145348) 09:41:29.921085 DATA sockfilt for passive data channel listens on port 43401 09:41:29.921522 > "229 Entering Passive Mode (|||43401|)[LF]" 09:41:29.921852 Client has been notified that DATA conn will be accepted on port 43401 09:41:29.924538 Client connects to port 43401 09:41:29.924931 ====> Client established passive DATA connection on port 43401 09:41:29.925847 < "TYPE I" 09:41:29.927471 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.928722 < "SIZE verifiedserver" 09:41:29.929626 > "213 17[CR][LF]" 09:41:29.931642 < "RETR verifiedserver" 09:41:29.932168 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.935224 =====> Closing passive DATA connection... 09:41:29.935472 Server disconnects passive DATA connection 09:41:29.936115 Fancy that; client wants to DISC, too 09:41:29.936915 Server disconnected passive DATA connection 09:41:29.937173 DATA sockfilt for passive data channel quits (pid 145348) 09:41:29.939106 DATA sockfilt for passive data channel quit (pid 145348) 09:41:29.939358 =====> Closed passive DATA connection 09:41:29.939690 > "226 File transfer complete[CR][LF]" 09:41:29.975647 < "QUIT" 09:41:29.976492 > "221 bye bye baby[CR][LF]" 09:41:29.978155 MAIN sockfilt said DISC 09:41:29.978497 ====> Client disconnected 09:41:29.979131 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.143928 ====> Client connect 09:41:30.146590 Received DATA (on stdin) 09:41:30.146755 > 160 bytes data, server => client 09:41CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1392 ../src/curl -q --trace-ascii log/16/trace1392 --trace-config all --trace-time ftp://127.0.0.1:44119/path/file1392 -o log/16/download1392 -i -D - > log/16/stdout1392 2> log/16/stderr1392 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1385 ../src/curl -q --trace-ascii log/52/trace1385 --trace-config all --trace-time ftp://127.0.0.1:42589/path/file1385 -o log/52/download1385 -i > log/52/stdout1385 2> log/52/stderr1385 :30.146858 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.146958 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.147048 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.147888 < 16 bytes data, client => server 09:41:30.148039 'USER anonymous\r\n' 09:41:30.149744 Received DATA (on stdin) 09:41:30.149912 > 33 bytes data, server => client 09:41:30.150113 '331 We are happy you popped in!\r\n' 09:41:30.150771 < 22 bytes data, client => server 09:41:30.150920 'PASS ftp@example.com\r\n' 09:41:30.152366 Received DATA (on stdin) 09:41:30.152592 > 30 bytes data, server => client 09:41:30.152818 '230 Welcome you silly person\r\n' 09:41:30.153532 < 5 bytes data, client => server 09:41:30.153693 'PWD\r\n' 09:41:30.155151 Received DATA (on stdin) 09:41:30.155313 > 30 bytes data, server => client 09:41:30.155565 '257 "/" is current directory\r\n' 09:41:30.156670 < 6 bytes data, client => server 09:41:30.156807 'EPSV\r\n' 09:41:30.175888 Received DATA (on stdin) 09:41:30.176104 > 38 bytes data, server => client 09:41:30.176261 '229 Entering Passive Mode (|||43401|)\n' 09:41:30.177582 < 8 bytes data, client => server 09:41:30.177739 'TYPE I\r\n' 09:41:30.180008 Received DATA (on stdin) 09:41:30.180168 > 33 bytes data, server => client 09:41:30.180376 '200 I modify TYPE as you wanted\r\n' 09:41:30.181690 < 21 bytes data, client => server 09:41:30.181843 'SIZE verifiedserver\r\n' 09:41:30.182972 Received DATA (on stdin) 09:41:30.183137 > 8 bytes data, server => client 09:41:30.183769 '213 17\r\n' 09:41:30.184397 < 21 bytes data, client => server 09:41:30.184618 'RETR verifiedserver\r\n' 09:41:30.186580 Received DATA (on stdin) 09:41:30.186735 > 29 bytes data, server => client 09:41:30.186825 '150 Binary junk (17 bytes).\r\n' 09:41:30.193824 Received DATA (on stdin) 09:41:30.193956 > 28 bytes data, server => client 09:41:30.194046 '226 File transfer complete\r\n' 09:41:30.228420 < 6 bytes data, client => server 09:41:30.228692 'QUIT\r\n' 09:41:30.229831 Received DATA (on stdin) 09:41:30.229990 > 18 bytes data, server => client 09:41:30.230608 '221 bye bye baby\r\n' 09:41:30.231586 ====> Client disconnect 09:41:30.234562 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.171962 Running IPv4 version 09:41:29.172449 Listening on port 43401 09:41:29.172928 Wrote pid 145348 to log/43/server/ftp_sockdata.pid 09:41:29.173100 Received PING (on stdin) 09:41:29.174059 Received PORT (on stdin) 09:41:29.177960 ====> Client connect 09:41:29.187135 Received DATA (on stdin) 09:41:29.187285 > 17 bytes data, server => client 09:41:29.187363 'WE ROOLZ: 94256\r\n' 09:41:29.188225 ====> Client disconnect 09:41:29.189524 Received DISC (on stdin) 09:41:29.189661 Crikey! Client also wants to disconnect 09:41:29.190103 Received ACKD (on stdin) 09:41:29.191121 Received QUIT (on stdin) 09:41:29.191242 quits 09:41:29.191708 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1388 === End of file server.cmd === Start of file valgrind1388 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1388 test 1384...[FTP DL, file without C-D inside, using -o fname -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1384 ../src/curl -q --trace-ascii log/53/trace1384 --trace-config all --trace-time ftp://127.0.0.1:42281/path/file1384 -o log/53/download1384 -i -D - > log/53/stdout1384 2> log/53/stderr1384 1384: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 1384 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1384 ../src/curl -q --trace-ascii log/53/trace1384 --trace-config all --trace-time ftp://127.0.0.1:42281/path/file1384 -o log/53/download1384 -i -D - > log/53/stdout1384 2> log/53/stderr1384 === End of file commands.log === Start of file ftp_server.log 09:41:29.871071 ====> Client connect 09:41:29.872867 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.875658 < "USER anonymous" 09:41:29.876719 > "331 We are happy you popped in![CR][LF]" 09:41:29.878411 < "PASS ftp@example.com" 09:41:29.879629 > "230 Welcome you silly person[CR][LF]" 09:41:29.880971 < "PWD" 09:41:29.882374 > "257 "/" is current directory[CR][LF]" 09:41:29.884175 < "EPSV" 09:41:29.884456 ====> Passive DATA channel requested by client 09:41:29.884629 DATA sockfilt for passive data channel starting... 09:41:29.897379 DATA sockfilt for passive data channel started (pid 145323) 09:41:29.898395 DATA sockfilt for passive data channel listens on port 34543 09:41:29.898834 > "229 Entering Passive Mode (|||34543|)[LF]" 09:41:29.899097 Client has been notified that DATA conn will be accepted on port 34543 09:41:29.901875 Client connects to port 34543 09:41:29.902174 ====> Client established passive DATA connection on port 34543 09:41:29.902967 < "TYPE I" 09:41:29.904295 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.905367 < "SIZE verifiedserver" 09:41:29.906989 > "213 17[CR][LF]" 09:41:29.909448 < "RETR verifiedserver" 09:41:29.910033 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.910925 =====> Closing passive DATA connection... 09:41:29.911155 Server disconnects passive DATA connection 09:41:29.913554 Server disconnected passive DATA connection 09:41:29.913941 DATA sockfilt for passive data channel quits (pid 145323) 09:41:29.915738 DATA sockfilt for passive data channel quit (pid 145323) 09:41:29.916074 =====> Closed passive DATA connection 09:41:29.916456 > "226 File transfer complete[CR][LF]" 09:41:29.954383 < "QUIT" 09:41:29.956959 > "221 bye bye baby[CR][LF]" 09:41:29.957652 MAIN sockfilt said DISC 09:41:29.958628 ====> Client disconnected 09:41:29.959176 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.123648 ====> Client connect 09:41:30.127072 Received DATA (on stdin) 09:41:30.127270 > 160 bytes data, server => client 09:41:30.127350 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.127532 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.127643 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.128279 < 16 bytes data, client => server 09:41:3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1389 ../src/curl -q --trace-ascii log/42/trace1389 --trace-config all --trace-time ftp://127.0.0.1:40985/path/file1389 -o log/42/download1389 -J -D log/42/heads1389 > log/42/stdout1389 2> log/42/stderr1389 0.128416 'USER anonymous\r\n' 09:41:30.129811 Received DATA (on stdin) 09:41:30.129937 > 33 bytes data, server => client 09:41:30.130088 '331 We are happy you popped in!\r\n' 09:41:30.131333 < 22 bytes data, client => server 09:41:30.131554 'PASS ftp@example.com\r\n' 09:41:30.132437 Received DATA (on stdin) 09:41:30.132651 > 30 bytes data, server => client 09:41:30.132810 '230 Welcome you silly person\r\n' 09:41:30.133672 < 5 bytes data, client => server 09:41:30.133816 'PWD\r\n' 09:41:30.135167 Received DATA (on stdin) 09:41:30.135332 > 30 bytes data, server => client 09:41:30.135650 '257 "/" is current directory\r\n' 09:41:30.137232 < 6 bytes data, client => server 09:41:30.137392 'EPSV\r\n' 09:41:30.153192 Received DATA (on stdin) 09:41:30.153337 > 38 bytes data, server => client 09:41:30.153414 '229 Entering Passive Mode (|||34543|)\n' 09:41:30.155204 < 8 bytes data, client => server 09:41:30.155333 'TYPE I\r\n' 09:41:30.157061 Received DATA (on stdin) 09:41:30.157178 > 33 bytes data, server => client 09:41:30.157348 '200 I modify TYPE as you wanted\r\n' 09:41:30.158326 < 21 bytes data, client => server 09:41:30.158440 'SIZE verifiedserver\r\n' 09:41:30.161107 Received DATA (on stdin) 09:41:30.161209 > 8 bytes data, server => client 09:41:30.161292 '213 17\r\n' 09:41:30.162016 < 21 bytes data, client => server 09:41:30.162211 'RETR verifiedserver\r\n' 09:41:30.165072 Received DATA (on stdin) 09:41:30.165190 > 29 bytes data, server => client 09:41:30.165270 '150 Binary junk (17 bytes).\r\n' 09:41:30.170422 Received DATA (on stdin) 09:41:30.170636 > 28 bytes data, server => client 09:41:30.170723 '226 File transfer complete\r\n' 09:41:30.207272 < 6 bytes data, client => server 09:41:30.207390 'QUIT\r\n' 09:41:30.208530 Received DATA (on stdin) 09:41:30.208665 > 18 bytes data, server => client 09:41:30.208832 '221 bye bye baby\r\n' 09:41:30.211161 ====> Client disconnect 09:41:30.211795 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.149601 Running IPv4 version 09:41:29.150119 Listening on port 34543 09:41:29.150605 Wrote pid 145323 to log/53/server/ftp_sockdata.pid 09:41:29.150796 Received PING (on stdin) 09:41:29.151595 Received PORT (on stdin) 09:41:29.154892 ====> Client connect 09:41:29.165614 Received DATA (on stdin) 09:41:29.165751 > 17 bytes data, server => client 09:41:29.165828 'WE ROOLZ: 77508\r\n' 09:41:29.166094 Received DISC (on stdin) 09:41:29.166270 ====> Client forcibly disconnected 09:41:29.167913 Received QUIT (on stdin) 09:41:29.168018 quits 09:41:29.168426 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1384 === End of file server.cmd === Start of file valgrind1384 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1384 test 1392...[FTP DL, file with C-D inside, using -o fname -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1392 ../src/curl -q --trace-ascii log/16/trace1392 --trace-config all --trace-time ftp://127.0.0.1:44119/path/file1392 -o log/16/download1392 -i -D - > log/16/stdout1392 2> log/16/stderr1392 1392: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 1392 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1392 ../src/curl -q --trace-ascii log/16/trace1392 --trace-config all --trace-time ftp://127.0.0.1:44119/path/file1392 -o log/16/download1392 -i -D - > log/16/stdout1392 2> log/16/stderr1392 === End of file commands.log === Start of file ftp_server.log 09:41:29.915284 ====> Client connect 09:41:29.916624 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.919021 < "USER anonymous" 09:41:29.919326 > "331 We are happy you popped in![CR][LF]" 09:41:29.921396 < "PASS ftp@example.com" 09:41:29.922179 > "230 Welcome you silly person[CR][LF]" 09:41:29.923634 < "PWD" 09:41:29.924299 > "257 "/" is current directory[CR][LF]" 09:41:29.925709 < "EPSV" 09:41:29.926054 ====> Passive DATA channel requested by client 09:41:29.926200 DATA sockfilt for passive data channel starting... 09:41:29.949463 DATA sockfilt for passive data channel started (pid 145379) 09:41:29.952243 DATA sockfilt for passive data channel listens on port 33465 09:41:29.952694 > "229 Entering Passive Mode (|||33465|)[LF]" 09:41:29.952991 Client has been notified that DATA conn will be accepted on port 33465 09:41:29.955433 Client connects to port 33465 09:41:29.955711 ====> Client established passive DATA connection on port 33465 09:41:29.956952 < "TYPE I" 09:41:29.957493 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.959704 < "SIZE verifiedserver" 09:41:29.960431 > "213 17[CR][LF]" 09:41:29.964007 < "RETR verifiedserver" 09:41:29.966134 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.966936 =====> Closing passive DATA connection... 09:41:29.967202 Server disconnects passive DATA connection 09:41:29.969256 Server disconnected passive DATA connection 09:41:29.969547 DATA sockfilt for passive data channel quits (pid 145379) 09:41:29.971447 DATA sockfilt for passive data channel quit (pid 145379) 09:41:29.971681 =====> Closed passive DATA connection 09:41:29.972371 > "226 File transfer complete[CR][LF]" 09:41:30.013805 < "QUIT" 09:41:30.018665 > "221 bye bye baby[CR][LF]" 09:41:30.019526 MAIN sockfilt said DISC 09:41:30.020470 ====> Client disconnected 09:41:30.021103 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.167635 ====> Client connect 09:41:30.170702 Received DATA (on stdin) 09:41:30.170814 > 160 bytes data, server => client 09:41:30.170890 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.170951 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.171008 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.171695 < 16 bytes data, client => server 09:41:30.171823 'USER anonymous\r\n' 09:41:30.173351 Received DATA (on stdin) 09:41:30.173542 > 33 bytes data, server => client 09:41:30.173639 '331 We are happy you popped in!\r\n' 09:41:30.174321 < 22 bytes data, client => server 09:41:30.174549 'PASS ftp@example.com\r\n' 09:41:30.175415 Received DATA (on stdin) 09:41:30.175622 > 30 bytes data, server => client 09:41:3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1383 ../src/curl -q --trace-ascii log/60/trace1383 --trace-config all --trace-time ftp://127.0.0.1:41385/path/file1383 -o log/60/download1383 -i -D log/60/heads1383 > log/60/stdout1383 2> log/60/stderr1383 0.176155 '230 Welcome you silly person\r\n' 09:41:30.176765 < 5 bytes data, client => server 09:41:30.176888 'PWD\r\n' 09:41:30.177728 Received DATA (on stdin) 09:41:30.177854 > 30 bytes data, server => client 09:41:30.178247 '257 "/" is current directory\r\n' 09:41:30.178842 < 6 bytes data, client => server 09:41:30.178966 'EPSV\r\n' 09:41:30.206984 Received DATA (on stdin) 09:41:30.207113 > 38 bytes data, server => client 09:41:30.207200 '229 Entering Passive Mode (|||33465|)\n' 09:41:30.208859 < 8 bytes data, client => server 09:41:30.208973 'TYPE I\r\n' 09:41:30.211579 Received DATA (on stdin) 09:41:30.211715 > 33 bytes data, server => client 09:41:30.211799 '200 I modify TYPE as you wanted\r\n' 09:41:30.212359 < 21 bytes data, client => server 09:41:30.212574 'SIZE verifiedserver\r\n' 09:41:30.214624 Received DATA (on stdin) 09:41:30.214775 > 8 bytes data, server => client 09:41:30.214967 '213 17\r\n' 09:41:30.216103 < 21 bytes data, client => server 09:41:30.216434 'RETR verifiedserver\r\n' 09:41:30.218798 Received DATA (on stdin) 09:41:30.218960 > 29 bytes data, server => client 09:41:30.219142 '150 Binary junk (17 bytes).\r\n' 09:41:30.225774 Received DATA (on stdin) 09:41:30.225905 > 28 bytes data, server => client 09:41:30.226360 '226 File transfer complete\r\n' 09:41:30.266653 < 6 bytes data, client => server 09:41:30.266819 'QUIT\r\n' 09:41:30.267942 Received DATA (on stdin) 09:41:30.268085 > 18 bytes data, server => client 09:41:30.268379 '221 bye bye baby\r\n' 09:41:30.272933 ====> Client disconnect 09:41:30.273675 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.200266 Running IPv4 version 09:41:29.200946 Listening on port 33465 09:41:29.202398 Wrote pid 145379 to log/16/server/ftp_sockdata.pid 09:41:29.202784 Received PING (on stdin) 09:41:29.203852 Received PORT (on stdin) 09:41:29.208593 ====> Client connect 09:41:29.221185 Received DATA (on stdin) 09:41:29.221354 > 17 bytes data, server => client 09:41:29.221540 'WE ROOLZ: 90762\r\n' 09:41:29.221909 Received DISC (on stdin) 09:41:29.222065 ====> Client forcibly disconnected 09:41:29.223561 Received QUIT (on stdin) 09:41:29.223693 quits 09:41:29.224082 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1392 === End of file server.cmd === Start of file valgrind1392 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1392 test 1385...[FTP DL, file without C-D inside, using -o fname -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1385 ../src/curl -q --trace-ascii log/52/trace1385 --trace-config all --trace-time ftp://127.0.0.1:42589/path/file1385 -o log/52/download1385 -i > log/52/stdout1385 2> log/52/stderr1385 1385: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1385 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1385 ../src/curl -q --trace-ascii log/52/trace1385 --trace-config all --trace-time ftp://127.0.0.1:42589/path/file1385 -o log/52/download1385 -i > log/52/stdout1385 2> log/52/stderr1385 === End of file commands.log === Start of file ftp_server.log 09:41:29.814853 ====> Client connect 09:41:29.817394 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.819467 < "USER anonymous" 09:41:29.820323 > "331 We are happy you popped in![CR][LF]" 09:41:29.822293 < "PASS ftp@example.com" 09:41:29.823626 > "230 Welcome you silly person[CR][LF]" 09:41:29.825361 < "PWD" 09:41:29.826557 > "257 "/" is current directory[CR][LF]" 09:41:29.828215 < "EPSV" 09:41:29.828513 ====> Passive DATA channel requested by client 09:41:29.828730 DATA sockfilt for passive data channel starting... 09:41:29.846533 DATA sockfilt for passive data channel started (pid 145272) 09:41:29.847553 DATA sockfilt for passive data channel listens on port 42347 09:41:29.848150 > "229 Entering Passive Mode (|||42347|)[LF]" 09:41:29.848381 Client has been notified that DATA conn will be accepted on port 42347 09:41:29.850565 Client connects to port 42347 09:41:29.850921 ====> Client established passive DATA connection on port 42347 09:41:29.851642 < "TYPE I" 09:41:29.852128 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.855888 < "SIZE verifiedserver" 09:41:29.856938 > "213 17[CR][LF]" 09:41:29.857598 < "RETR verifiedserver" 09:41:29.858455 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.860613 =====> Closing passive DATA connection... 09:41:29.861312 Server disconnects passive DATA connection 09:41:29.861947 Fancy that; client wants to DISC, too 09:41:29.862622 Server disconnected passive DATA connection 09:41:29.862936 DATA sockfilt for passive data channel quits (pid 145272) 09:41:29.864728 DATA sockfilt for passive data channel quit (pid 145272) 09:41:29.865141 =====> Closed passive DATA connection 09:41:29.865395 > "226 File transfer complete[CR][LF]" 09:41:29.902378 < "QUIT" 09:41:29.902819 > "221 bye bye baby[CR][LF]" 09:41:29.904584 MAIN sockfilt said DISC 09:41:29.904867 ====> Client disconnected 09:41:29.905235 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.067664 ====> Client connect 09:41:30.069935 Received DATA (on stdin) 09:41:30.070107 > 160 bytes data, server => client 09:41:30.070285 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.070410 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.070574 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.072017 < 16 bytes data, client => server 09:41:30.072172 'USER anonymous\r\n' 09:41:30.073662 Received DATA (on stdin) 09:41:30.073820 > 33 bytes data, server => client 09:41:30.074360 '331 We are happy you popped in!\r\n' 09:41:30.075102 < 22 bytes data, client => server 09:41:30.075257 'PASS ftp@example.com\r\n' 09:41:30.076399 Received DATA (on stdin) 09:41:30.076670 > 30 bytes data, server => client 09:41:30.076871 '230 Welcome you silly person\r\n' 09:41:30.078373 < 5 bytes data, client => server 09:41:30.078618 'PWD\r\n' 09:41:30.079547 Received DATA (on stdin) 09:41:30.079701 > 30 bytes data, server => client 09:41:30.079885 '257 "/" is current directory\r\n' 09:41:30.081085 < 6 bytes data, client => server 09:41:30.081235 'EPSV\r\n' 09:41:30.102599 Received DATA (on stdin) 09:41:30.102781 > 38 bytes data, server => client 09:41:30.102873 '229 Entering Passive Mode (|||42347|)\n' 09:41:30.104208 < 8 bytes data, client => server 09:41:30.104357 'TYPE I\r\n' 09:41:30.106166 Received DATA (on stdin) 09:41:30.106286 > 33 bytes data, server => client 09:41:30.106361 '200 I modify TYPE as you wanted\r\n' 09:41:30.109031 < 21 bytes data, client => server 09:41:30.109204 'SIZE verifiedserver\r\n' 09:41:30.110005 Received DATA (on stdin) 09:41:30.110110 > 8 bytes data, server => client 09:41:30.110243 '213 17\r\n' 09:41:30.110902 < 21 bytes data, client => server 09:41:30.111069 'RETR verifiedserver\r\n' 09:41:30.111811 Received DATA (on stdin) 09:41:30.111938 > 29 bytes data, server => client 09:41:30.112569 '150 Binary junk (17 bytes).\r\n' 09:41:30.119519 Received DATA (on stdin) 09:41:30.119692 > 28 bytes data, server => client 09:41:30.119770 '226 File transfer complete\r\n' 09:41:30.155309 < 6 bytes data, client => server 09:41:30.155552 'QUIT\r\n' 09:41:30.157353 Received DATA (on stdin) 09:41:30.157570 > 18 bytes data, server => client 09:41:30.157665 '221 bye bye baby\r\n' 09:41:30.158064 ====> Client disconnect 09:41:30.159171 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.098801 Running IPv4 version 09:41:29.099329 Listening on port 42347 09:41:29.099848 Wrote pid 145272 to log/52/server/ftp_sockdata.pid 09:41:29.100001 Received PING (on stdin) 09:41:29.100744 Received PORT (on stdin) 09:41:29.104013 ====> Client connect 09:41:29.113580 Received DATA (on stdin) 09:41:29.113772 > 17 bytes data, server => client 09:41:29.113858 'WE ROOLZ: 77504\r\n' 09:41:29.114715 ====> Client disconnect 09:41:29.115314 Received DISC (on stdin) 09:41:29.115433 Crikey! Client also wants to disconnect 09:41:29.115909 Received ACKD (on stdin) 09:41:29.116881 Received QUIT (on stdin) 09:41:29.117005 quits 09:41:29.117378 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1385 === End of file server.cmd === Start of file valgrind1385 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1385 test 1389...[FTP DL, file with C-D inside, using -o fname -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1389 ../src/curl -q --trace-ascii log/42/trace1389 --trace-config all --trace-time ftp://127.0.0.1:40985/path/file1389 -o log/42/download1389 -J -D log/42/heads1389 > log/42/stdout1389 2> log/42/stderr1389 1389: protocol FAILED! There was no content at all in the file log/42/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/42/ dir after test 1389 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1389 ../src/curl -q --trace-ascii log/42/trace1389 --trace-config all --trace-time ftp://127.0.0.1:40985/path/file1389 -o log/42/download1389 -J -D log/42/heads1389 > log/42/stdout1389 2> log/42/stderr1389 === End of file commands.log === Start of file ftp_server.log 09:41:29.899870 ====> Client connect 09:41:29.903395 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.906414 < "USER anonymous" 09:41:29.907274 > "331 We are happy you popped in![CR][LF]" 09:41:29.909290 < "PASS ftp@example.com" 09:41:29.910109 > "230 Welcome you silly person[CR][LF]" 09:41:29.911930 < "PWD" 09:41:29.913395 > "257 "/" is current directory[CR][LF]" 09:41:29.915164 < "EPSV" 09:41:29.915427 ====> Passive DATA channel requested by client 09:41:29.915608 DATA sockfilt for passive data channel starting... 09:41:29.935216 DATA sockfilt for passive data channel started (pid 145370) 09:41:29.936450 DATA sockfilt for passive data channel listens on port 34641 09:41:29.937029 > "229 Entering Passive Mode (|||34641|)[LF]" 09:41:29.937308 Client has been notified that DATA conn will be accepted on port 34641 09:41:29.942873 Client connects to port 34641 09:41:29.943170 ====> Client established passive DATA connection on port 34641 09:41:29.944247 < "TYPE I" 09:41:29.944915 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.946411 < "SIZE verifiedserver" 09:41:29.947626 > "213 17[CR][LF]" 09:41:29.948698 < "RETR verifiedserver" 09:41:29.949475 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.950165 =====> Closing passive DATA connection... 09:41:29.950347 Server disconnects passive DATA connection 09:41:29.952384 Server disconnected passive DATA connection 09:41:29.952694 DATA sockfilt for passive data channel quits (pid 145370) 09:41:29.954584 DATA sockfilt for passive data channel quit (pid 145370) 09:41:29.954855 =====> Closed passive DATA connection 09:41:29.955504 > "226 File transfer complete[CR][LF]" 09:41:29.994195 < "QUIT" 09:41:29.995118 > "221 bye bye baby[CR][LF]" 09:41:29.997119 MAIN sockfilt said DISC 09:41:29.997825 ====> Client disconnected 09:41:29.998271 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.152671 ====> Client connect 09:41:30.155183 Received DATA (on stdin) 09:41:30.155332 > 160 bytes data, server => client 09:41:30.155563 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.155691 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.155772 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.156580 < 16 bytes data, client => server 09:41:30.156740 'USER anonymous\r\n' 09:41:30.160581 Received DATA (on stdin) 09:41:30.160734 > 33 bytes data, server => client 09:41:30.161351 '331 We are happy you popped in!\r\n' 09:41:30.162090 < 22 bytes data, client => server 09:41:30.162240 'PASS ftp@example.com\r\n' 09:41:30.163376 Received DATA (on stdin) 09:41:30.163585 > 30 bytes data, server => client 09:41:30.164126 '230 Welcome you silly person\r\n' 09:41:30.164840 < 5 bytes data, client => server 09:41:30.164972 'PWD\r\n' 09:41:30.166075 Received DATA (on stdin) 09:41:30.166262 > 30 bytes data, server => client 09:41:30.166583 '257 "/" is current directory\r\n' 09:41:30.168228 < 6 bytes data, client => server 09:41:30.168374 'EPSV\r\n' 09:41:30.194815 Received DATA (on stdin) 09:41:30.194977 > 38 bytes data, server => client 09:41:30.195061 '229 Entering Passive Mode (|||34641|)\n' 09:41:30.197215 < 8 bytes data, client => server 09:41:30.197328 'TYPE I\r\n' 09:41:30.198267 Received DATA (on stdin) 09:41:30.198386 > 33 bytes data, server => client 09:41:30.198888 '200 I modify TYPE as you wanted\r\n' 09:41:30.199405 < 21 bytes data, client => server 09:41:30.199604 'SIZE verifiedserver\r\n' 09:41:30.200450 Received DATA (on stdin) 09:41:30.200630 > 8 bytes data, server => client 09:41:30.200766 '213 17\r\n' 09:41:30.201800 < 21 bytes data, client => server 09:41:30.201911 'RETR verifiedserver\r\n' 09:41:30.202853 Received DATA (on stdin) 09:41:30.202987 > 29 bytes data, server => client 09:41:30.204237 '150 Binary junk (17 bytes).\r\n' 09:41:30.208794 Received DATA (on stdin) 09:41:30.208903 > 28 bytes data, server => client 09:41:30.209036 '226 File transfer complete\r\n' 09:41:30.247129 < 6 bytes data, client => server 09:41:30.247280 'QUIT\r\n' 09:41:30.248203 Received DATA (on stdin) 09:41:30.248316 > 18 bytes data, server => client 09:41:30.248446 '221 bye bye baby\r\n' 09:41:30.250584 ====> Client disconnect 09:41:30.251072 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.184260 Running IPv4 version 09:41:29.184906 Listening on port 34641 09:41:29.185291 Wrote pid 145370 to log/42/server/ftp_sockdata.pid 09:41:29.188547 Received PING (on stdin) 09:41:29.189418 Received PORT (on stdin) 09:41:29.195987 ====> Client connect 09:41:29.204592 Received DATA (on stdin) 09:41:29.204724 > 17 bytes data, server => client 09:41:29.204799 'WE ROOLZ: 79706\r\n' 09:41:29.205018 Received DISC (on stdin) 09:41:29.205141 ====> Client forcibly disconnected 09:41:29.206843 Received QUIT (on stdin) 09:41:29.206950 quits 09:41:29.207291 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1389 === End of file server.cmd === Start of file valgrind1389 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1389 test 1383...[FTP DL, file without C-D inside, using -o fname -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1383 ../src/curl -q --trace-ascii log/60/trace1383 --trace-config all --trace-time ftp://127.0.0.1:41385/path/file1383 -o log/60/download1383 -i -D log/60/heads1383 > log/60/stdout1383 2> log/60/stderr1383 1383: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1383 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1383 ../src/curl -q --trace-ascii log/60/trace1383 --trace-config all --trace-time ftp://127.0.0.1:41385/path/file1383 -o log/60/download1383 -i -D log/60/heads1383 > log/60/stdout1383 2> log/60/stderr1383 === End of file commands.log === Start of file ftp_server.log 09:41:29.830476 ====> Client connect 09:41:29.834983 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.837439 < "USER anonymous" 09:41:29.837919 > "331 We are happy you popped in![CR][LF]" 09:41:29.840539 < "PASS ftp@example.com" 09:41:29.841031 > "230 Welcome you silly person[CR][LF]" 09:41:29.843167 < "PWD" 09:41:29.843570 > "257 "/" is current directory[CR][LF]" 09:41:29.845863 < "EPSV" 09:41:29.846175 ====> Passive DATA channel requested by client 09:41:29.846323 DATA sockfilt for passive data channel starting... 09:41:29.868235 DATA sockfilt for passive data channel started (pid 145291) 09:41:29.869313 DATA sockfilt for passive data channel listens on port 41737 09:41:29.869829 > "229 Entering Passive Mode (|||41737|)[LF]" 09:41:29.870093 Client has been notified that DATA conn will be accepted on port 41737 09:41:29.872719 Client connects to port 41737 09:41:29.873250 ====> Client established passive DATA connection on port 41737 09:41:29.874283 < "TYPE I" 09:41:29.874710 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.876375 < "SIZE verifiedserver" 09:41:29.876865 > "213 17[CR][LF]" 09:41:29.878631 < "RETR verifiedserver" 09:41:29.879549 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.880392 =====> Closing passive DATA connection... 09:41:29.880624 Server disconnects passive DATA connection 09:41:29.882464 Fancy that; client wants to DISC, too 09:41:29.883399 Server disconnected passive DATA connection 09:41:29.883699 DATA sockfilt for passive data channel quits (pid 145291) 09:41:29.885726 DATA sockfilt for passive data channel quit (pid 145291) 09:41:29.886107 =====> Closed passive DATA connection 09:41:29.887081 > "226 File transfer complete[CR][LF]" 09:41:29.924313 < "QUIT" 09:41:29.924712 > "221 bye bye baby[CR][LF]" 09:41:29.928900 MAIN sockfilt said DISC 09:41:29.929223 ====> Client disconnected 09:41:29.929670 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.083673 ====> Client connect 09:41:30.085562 Received DATA (on stdin) 09:41:30.085725 > 160 bytes data, server => client 09:41:30.089046 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.089180 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.089263 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.090083 < 16 bytes data, client => server 09:41:30.090239 'USER anonymous\r\n' 09:41:30.092101 Received DATA (on stdin) 09:41:30.092250 > 33 bytes data, server => client 09:41:30.092320 '331 We are happy you popped in!\r\n' 09:41:30.092957 < 22 bytes data, client => server 09:41:30.093107 'PASS ftp@example.com\r\n' 09:41:30.095101 Received DATA (on stdin) 09:41:30.095245 > 30 bytes data, server => client 09:41:30.095331 '230 Welcome you silly person\r\n' 09:41:30.095947 < 5 bytes data, client => server 09:41:30.096091 'PWD\r\n' 09:41:30.097676 Received DATA (on stdin) 09:41:30.097818 > 30 bytes data, server => client 09:41:30.097903 '257 "/" is current directory\r\n' 09:41:30.098645 < 6 bytes data, client => server 09:41:30.098796 'EPSV\r\n' 09:41:30.124213 Received DATA (on stdin) 09:41:30.124423 > 38 bytes data, server => client 09:41:30.124631 '229 Entering Passive Mode (|||41737|)\n' 09:41:30.126425 < 8 bytes data, client => server 09:41:30.126671 'TYPE I\r\n' 09:41:30.128524 Received DATA (on stdin) 09:41:30.128723 > 33 bytes data, server => client 09:41:30.128827 '200 I modify TYPE as you wanted\r\n' 09:41:30.129602 < 21 bytes data, client => server 09:41:30.129756 'SIZE verifiedserver\r\n' 09:41:30.130620 Received DATA (on stdin) 09:41:30.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1400 ../src/curl -q --output log/44/curl1400.out --include --trace-ascii log/44/trace1400 --trace-config all --trace-time http://127.0.0.1:34655/we/want/1400 --libcurl log/44/test1400.c > log/44/stdout1400 2> log/44/stderr1400 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1410 ../src/curl -q --output log/35/curl1410.out --include --trace-ascii log/35/trace1410 --trace-config all --trace-time http://127.0.0.1:47/1410 --max-time -4 > log/35/stdout1410 2> log/35/stderr1410 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1402 ../src/curl -q --output log/40/curl1402.out --include --trace-ascii log/40/trace1402 --trace-config all --trace-time http://127.0.0.1:42139/we/want/1402 --libcurl log/40/test1402.c -d "foo=bar" -d "baz=quux" > log/40/stdout1402 2> log/40/stderr1402 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1381 ../src/curl -q --trace-ascii log/64/trace1381 --trace-config all --trace-time ftp://127.0.0.1:37199/path/file1381 -o log/64/download1381 -J -D log/64/heads1381 > log/64/stdout1381 2> log/64/stderr1381 130834 > 8 bytes data, server => client 09:41:30.130908 '213 17\r\n' 09:41:30.131579 < 21 bytes data, client => server 09:41:30.131734 'RETR verifiedserver\r\n' 09:41:30.132886 Received DATA (on stdin) 09:41:30.133049 > 29 bytes data, server => client 09:41:30.134561 '150 Binary junk (17 bytes).\r\n' 09:41:30.140123 Received DATA (on stdin) 09:41:30.140272 > 28 bytes data, server => client 09:41:30.140454 '226 File transfer complete\r\n' 09:41:30.177332 < 6 bytes data, client => server 09:41:30.177575 'QUIT\r\n' 09:41:30.180656 Received DATA (on stdin) 09:41:30.180809 > 18 bytes data, server => client 09:41:30.180893 '221 bye bye baby\r\n' 09:41:30.181637 ====> Client disconnect 09:41:30.183549 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.120582 Running IPv4 version 09:41:29.121112 Listening on port 41737 09:41:29.121448 Wrote pid 145291 to log/60/server/ftp_sockdata.pid 09:41:29.121686 Received PING (on stdin) 09:41:29.122350 Received PORT (on stdin) 09:41:29.126077 ====> Client connect 09:41:29.133792 Received DATA (on stdin) 09:41:29.133921 > 17 bytes data, server => client 09:41:29.133999 'WE ROOLZ: 78622\r\n' 09:41:29.135569 ====> Client disconnect 09:41:29.135861 Received DISC (on stdin) 09:41:29.136003 Crikey! Client also wants to disconnect 09:41:29.136576 Received ACKD (on stdin) 09:41:29.137747 Received QUIT (on stdin) 09:41:29.137866 quits 09:41:29.138251 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1383 === End of file server.cmd === Start of file valgrind1383 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1383 setenv SSL_CERT_FILE = test 1400...[--libcurl for simple HTTP GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1400 ../src/curl -q --output log/44/curl1400.out --include --trace-ascii log/44/trace1400 --trace-config all --trace-time http://127.0.0.1:34655/we/want/1400 --libcurl log/44/test1400.c > log/44/stdout1400 2> log/44/stderr1400 1400: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 1400 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1400 ../src/curl -q --output log/44/curl1400.out --include --trace-ascii log/44/trace1400 --trace-config all --trace-time http://127.0.0.1:34655/we/want/1400 --libcurl log/44/test1400.c > log/44/stdout1400 2> log/44/stderr1400 === End of file commands.log === Start of file http_server.log 09:41:30.284698 ====> Client connect 09:41:30.285050 accept_connection 3 returned 4 09:41:30.285230 accept_connection 3 returned 0 09:41:30.285384 Read 93 bytes 09:41:30.285569 Process 93 bytes request 09:41:30.285685 Got request: GET /verifiedserver HTTP/1.1 09:41:30.285778 Are-we-friendly question received 09:41:30.286029 Wrote request (93 bytes) input to log/44/server.input 09:41:30.286225 Identifying ourselves as friends 09:41:30.287067 Response sent (56 bytes) and written to log/44/server.response 09:41:30.287178 special request received, no persistency 09:41:30.287249 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 1400 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind1400 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1400 * starts no server test 1410...[Pass in negative number to --max-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1410 ../src/curl -q --output log/35/curl1410.out --include --trace-ascii log/35/trace1410 --trace-config all --trace-time http://127.0.0.1:47/1410 --max-time -4 > log/35/stdout1410 2> log/35/stderr1410 curl returned 1, when expecting 2 1410: exit FAILED == Contents of files in the log/35/ dir after test 1410 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1410 ../src/curl -q --output log/35/curl1410.out --include --trace-ascii log/35/trace1410 --trace-config all --trace-time http://127.0.0.1:47/1410 --max-time -4 > log/35/stdout1410 2> log/35/stderr1410 === End of file commands.log === Start of file server.cmd Testnum 1410 === End of file server.cmd === Start of file valgrind1410 valgrind: Fatal error at startup: a function redirection valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1390 ../src/curl -q --trace-ascii log/34/trace1390 --trace-config all --trace-time ftp://127.0.0.1:33001/path/file1390 -o log/34/download1390 -J -D - > log/34/stdout1390 2> log/34/stderr1390 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1409 ../src/curl -q --output log/36/curl1409.out --include --trace-ascii log/36/trace1409 --trace-config all --trace-time http://127.0.0.1:47/1409 -C wrong > log/36/stdout1409 2> log/36/stderr1409 rind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1410 setenv SSL_CERT_FILE = test 1402...[--libcurl for simple POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1402 ../src/curl -q --output log/40/curl1402.out --include --trace-ascii log/40/trace1402 --trace-config all --trace-time http://127.0.0.1:42139/we/want/1402 --libcurl log/40/test1402.c -d "foo=bar" -d "baz=quux" > log/40/stdout1402 2> log/40/stderr1402 1402: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 1402 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1402 ../src/curl -q --output log/40/curl1402.out --include --trace-ascii log/40/trace1402 --trace-config all --trace-time http://127.0.0.1:42139/we/want/1402 --libcurl log/40/test1402.c -d "foo=bar" -d "baz=quux" > log/40/stdout1402 2> log/40/stderr1402 === End of file commands.log === Start of file http_server.log 09:41:30.329704 ====> Client connect 09:41:30.330035 accept_connection 3 returned 4 09:41:30.330207 accept_connection 3 returned 0 09:41:30.330374 Read 93 bytes 09:41:30.330571 Process 93 bytes request 09:41:30.330699 Got request: GET /verifiedserver HTTP/1.1 09:41:30.330784 Are-we-friendly question received 09:41:30.330982 Wrote request (93 bytes) input to log/40/server.input 09:41:30.331132 Identifying ourselves as friends 09:41:30.335731 Response sent (56 bytes) and written to log/40/server.response 09:41:30.335841 special request received, no persistency 09:41:30.335902 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd Testnum 1402 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file valgrind1402 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1402 test 1390...[FTP DL, file with C-D inside, using -o fname -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1390 ../src/curl -q --trace-ascii log/34/trace1390 --trace-config all --trace-time ftp://127.0.0.1:33001/path/file1390 -o log/34/download1390 -J -D - > log/34/stdout1390 2> log/34/stderr1390 1390: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 1390 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1390 ../src/curl -q --trace-ascii log/34/trace1390 --trace-config all --trace-time ftp://127.0.0.1:33001/path/file1390 -o log/34/download1390 -J -D - > log/34/stdout1390 2> log/34/stderr1390 === End of file commands.log === Start of file ftp_server.log 09:41:29.861618 ====> Client connect 09:41:29.864724 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.867479 < "USER anonymous" 09:41:29.867907 > "331 We are happy you popped in![CR][LF]" 09:41:29.869930 < "PASS ftp@example.com" 09:41:29.871301 > "230 Welcome you silly person[CR][LF]" 09:41:29.873361 < "PWD" 09:41:29.875127 > "257 "/" is current directory[CR][LF]" 09:41:29.875868 < "EPSV" 09:41:29.876127 ====> Passive DATA channel requested by client 09:41:29.876282 DATA sockfilt for passive data channel starting... 09:41:29.889554 DATA sockfilt for passive data channel started (pid 145314) 09:41:29.890605 DATA sockfilt for passive data channel listens on port 46299 09:41:29.891084 > "229 Entering Passive Mode (|||46299|)[LF]" 09:41:29.891331 Client has been notified that DATA conn will be accepted on port 46299 09:41:29.893828 Client connects to port 46299 09:41:29.894136 ====> Client established passive DATA connection on port 46299 09:41:29.894957 < "TYPE I" 09:41:29.895678 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.897537 < "SIZE verifiedserver" 09:41:29.897985 > "213 17[CR][LF]" 09:41:29.899842 < "RETR verifiedserver" 09:41:29.900261 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.901110 =====> Closing passive DATA connection... 09:41:29.901358 Server disconnects passive DATA connection 09:41:29.904209 Server disconnected passive DATA connection 09:41:29.904470 DATA sockfilt for passive data channel quits (pid 145314) 09:41:29.906273 DATA sockfilt for passive data channel quit (pid 145314) 09:41:29.906502 =====> Closed passive DATA connection 09:41:29.906855 > "226 File transfer complete[CR][LF]" 09:41:29.946302 < "QUIT" 09:41:29.947902 > "221 bye bye baby[CR][LF]" 09:41:29.951118 MAIN sockfilt said DISC 09:41:29.951382 ====> Client disconnected 09:41:29.951863 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.114750 ====> Client connect 09:41:30.116926 Received DATA (on stdin) 09:41:30.117094 > 160 bytes data, server => client 09:41:30.117285 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.117400 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.117600 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.119909 < 16 bytes data, client => server 09:41:30.120100 'USER anonymous\r\n' 09:41:30.121933 Received DATA (on stdin) 09:41:30.122046 > 33 bytes data, server => client 09:41:30.122119 '331 We are happy you popped in!\r\n' 09:41:30.122794 < 22 bytes data, client => server 09:41:30.122942 'PASS ftp@example.com\r\n' 09:41:30.124080 Received DATA (on stdin) 09:41:30.124284 > 30 bytes data, server => client 09:41:30.124564 '230 Welcome you silly person\r\n' 09:41:30.125941 < 5 bytes data, client => server 09:41:30.126158 'PWD\r\n' 09:41:30.127561 Received DATA (on stdin) 09:41:30.127676 > 30 bytes data, server => client 09:41:30.127833 '257 "/" is current directory\r\n' 09:41:30.128517 < 6 bytes data, client => server 09:41:30.128645 'EPSV\r\n' 09:41:30.145405 Received DATA (on stdin) 09:41:30.145622 > 38 bytes data, server => client 09:41:30.145727 '229 Entering Passive Mode (|||46299|)\n' 09:41:30.147200 < 8 bytes data, client => server 09:41:30.147310 'TYPE I\r\n' 09:41:30.149065 Received DATA (on stdin) 09:41:30.149191 > 33 bytes data, server => client 09:41:30.149790 '200 I modify TYPE as you wanted\r\n' 09:41:30.150360 < 21 bytes data, client => server 09:41:30.150564 'SIZE verifiedserver\r\n' 09:41:30.151998 Received DATA (on stdin) 09:41:30.152122 > 8 bytes data, server => client 09:41:30.152203 '213 17\r\n' 09:41:30.152802 < 21 bytes data, client => server 09:41:30.152938 'RETR verifiedserver\r\n' 09:41:30.155445 Received DATA (on stdin) 09:41:30.155649 > 29 bytes data, server => client 09:41:30.155745 '150 Binary junk (17 bytes).\r\n' 09:41:30.160890 Received DATA (on stdin) 09:41:30.161015 > 28 bytes data, server => client 09:41:30.161111 '226 File transfer complete\r\n' 09:41:30.199185 < 6 bytes data, client => server 09:41:30.199338 'QUIT\r\n' 09:41:30.200346 Received DATA (on stdin) 09:41:30.200545 > 18 bytes data, server => client 09:41:30.200743 '221 bye bye baby\r\n' 09:41:30.204582 ====> Client disconnect 09:41:30.207582 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.141864 Running IPv4 version 09:41:29.142416 Listening on port 46299 09:41:29.142851 Wrote pid 145314 to log/34/server/ftp_sockdata.pid 09:41:29.143028 Received PING (on stdin) 09:41:29.143746 Received PORT (on stdin) 09:41:29.146942 ====> Client connect 09:41:29.156248 Received DATA (on stdin) 09:41:29.156401 > 17 bytes data, server => client 09:41:29.156574 'WE ROOLZ: 80544\r\n' 09:41:29.156931 Received DISC (on stdin) 09:41:29.157083 ====> Client forcibly disconnected 09:41:29.158400 Received QUIT (on stdin) 09:41:29.158587 quits 09:41:29.158948 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1390 === End of file server.cmd === Start of file valgrind1390 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1390 test 1381...[FTP DL, file without C-D inside, using -o fname -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1381 ../src/curl -q --trace-ascii log/64/trace1381 --trace-config all --trace-time ftp://127.0.0.1:37199/path/file1381 -o log/64/download1381 -J -D log/64/heads1381 > log/64/stdout1381 2> log/64/stderr1381 1381: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1381 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1381 ../src/curl -q --trace-ascii log/64/trace1381 --trace-config all --trace-time ftp://127.0.0.1:37199/path/file1381 -o log/64/download1381 -J -D log/64/heads1381 > log/64/stdout1381 2> log/64/stderr1381 === End of file commands.log === Start of file ftp_server.log 09:41:29.837892 ====> Client connect 09:41:29.840494 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.843522 < "USER anonymous" 09:41:29.844381 > "331 We are happy you popped in![CR][LF]" 09:41:29.846206 < "PASS ftp@example.com" 09:41:29.847598 > "230 Welcome you silly person[CR][LF]" 09:41:29.848978 < "PWD" 09:41:29.849373 > "257 "/" is current directory[CR][LF]" 09:41:29.851460 < "EPSV" 09:41:29.851712 ====> Passive DATA channel requested by client 09:41:29.852022 DATA sockfilt for passive data channel starting... 09:41:29.866101 DATA sockfilt for passive data channel started (pid 145290) 09:41:29.867360 DATA sockfilt for passive data channel listens on port 37077 09:41:29.867885 > "229 Entering Passive Mode (|||37077|)[LF]" 09:41:29.868138 Client has been notified that DATA conn will be accepted on port 37077 09:41:29.869548 Client connects to port 37077 09:41:29.869946 ====> Client established passive DATA connection on port 37077 09:41:29.871025 < "TYPE I" 09:41:29.871557 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.878338 < "SIZE verifiedserver" 09:41:29.878887 > "213 17[CR][LF]" 09:41:29.880411 < "RETR verifiedserver" 09:41:29.880896 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.881647 =====> Closing passive DATA connection... 09:41:29.882166 Server disconnects passive DATA connection 09:41:29.884370 Server disconnected passive DATA connection 09:41:29.884688 DATA sockfilt for passive data channel quits (pid 145290) 09:41:29.886641 DATA sockfilt for passive data channel quit (pid 145290) 09:41:29.886963 =====> Closed passive DATA connection 09:41:29.887241 > "226 File transfer complete[CR][LF]" 09:41:29.924130 < "QUIT" 09:41:29.924532 > "221 bye bye baby[CR][LF]" 09:41:29.929900 MAIN sockfilt said DISC 09:41:29.930317 ====> Client disconnected 09:41:29.930992 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1391 ../src/curl -q --trace-ascii log/22/trace1391 --trace-config all --trace-time ftp://127.0.0.1:41867/path/file1391 -o log/22/download1391 -i -D log/22/heads1391 > log/22/stdout1391 2> log/22/stderr1391 l.log 09:41:30.091053 ====> Client connect 09:41:30.092967 Received DATA (on stdin) 09:41:30.093168 > 160 bytes data, server => client 09:41:30.093381 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.093638 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.093743 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.095960 < 16 bytes data, client => server 09:41:30.096141 'USER anonymous\r\n' 09:41:30.097757 Received DATA (on stdin) 09:41:30.097905 > 33 bytes data, server => client 09:41:30.098399 '331 We are happy you popped in!\r\n' 09:41:30.099137 < 22 bytes data, client => server 09:41:30.099282 'PASS ftp@example.com\r\n' 09:41:30.100279 Received DATA (on stdin) 09:41:30.100426 > 30 bytes data, server => client 09:41:30.100709 '230 Welcome you silly person\r\n' 09:41:30.101834 < 5 bytes data, client => server 09:41:30.101996 'PWD\r\n' 09:41:30.103393 Received DATA (on stdin) 09:41:30.103584 > 30 bytes data, server => client 09:41:30.103713 '257 "/" is current directory\r\n' 09:41:30.104330 < 6 bytes data, client => server 09:41:30.104550 'EPSV\r\n' 09:41:30.121577 Received DATA (on stdin) 09:41:30.121753 > 38 bytes data, server => client 09:41:30.121836 '229 Entering Passive Mode (|||37077|)\n' 09:41:30.123234 < 8 bytes data, client => server 09:41:30.123365 'TYPE I\r\n' 09:41:30.125281 Received DATA (on stdin) 09:41:30.130396 > 33 bytes data, server => client 09:41:30.130641 '200 I modify TYPE as you wanted\r\n' 09:41:30.131431 < 21 bytes data, client => server 09:41:30.131692 'SIZE verifiedserver\r\n' 09:41:30.132623 Received DATA (on stdin) 09:41:30.132792 > 8 bytes data, server => client 09:41:30.132870 '213 17\r\n' 09:41:30.133619 < 21 bytes data, client => server 09:41:30.133762 'RETR verifiedserver\r\n' 09:41:30.134600 Received DATA (on stdin) 09:41:30.134742 > 29 bytes data, server => client 09:41:30.134823 '150 Binary junk (17 bytes).\r\n' 09:41:30.141572 Received DATA (on stdin) 09:41:30.141733 > 28 bytes data, server => client 09:41:30.141811 '226 File transfer complete\r\n' 09:41:30.176737 < 6 bytes data, client => server 09:41:30.176925 'QUIT\r\n' 09:41:30.178696 Received DATA (on stdin) 09:41:30.178862 > 18 bytes data, server => client 09:41:30.178963 '221 bye bye baby\r\n' 09:41:30.179644 ====> Client disconnect 09:41:30.187184 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.118128 Running IPv4 version 09:41:29.118818 Listening on port 37077 09:41:29.119182 Wrote pid 145290 to log/64/server/ftp_sockdata.pid 09:41:29.119400 Received PING (on stdin) 09:41:29.120415 Received PORT (on stdin) 09:41:29.122986 ====> Client connect 09:41:29.136189 Received DATA (on stdin) 09:41:29.136358 > 17 bytes data, server => client 09:41:29.136446 'WE ROOLZ: 78009\r\n' 09:41:29.136954 Received DISC (on stdin) 09:41:29.137134 ====> Client forcibly disconnected 09:41:29.138788 Received QUIT (on stdin) 09:41:29.138911 quits 09:41:29.139296 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1381 === End of file server.cmd === Start of file valgrind1381 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1381 * starts no server test 1409...[Pass in string to -C] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1409 ../src/curl -q --output log/36/curl1409.out --include --trace-ascii log/36/trace1409 --trace-config all --trace-time http://127.0.0.1:47/1409 -C wrong > log/36/stdout1409 2> log/36/stderr1409 curl returned 1, when expecting 2 1409: exit FAILED == Contents of files in the log/36/ dir after test 1409 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1409 ../src/curl -q --output log/36/curl1409.out --include --trace-ascii log/36/trace1409 --trace-config all --trace-time http://127.0.0.1:47/1409 -C wrong > log/36/stdout1409 2> log/36/stderr1409 === End of file commands.log === Start of file server.cmd Testnum 1409 === End of file server.cmd === Start of file valgrind1409 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1409 test 1391...[FTP DL, file with C-D inside, using -o fname -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1391 ../src/curl -q --trace-ascii log/22/trace1391 --trace-config all --trace-time ftp://127.0.0.1:41867/path/file1391 -o log/22/download1391 -i -D log/22/heads1391 > log/22/stdout1391 2> log/22/stderr1391 1391: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 1391 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1391 ../src/curl -q --trace-ascii log/22/trace1391 --trace-config all --trace-time ftp://127.0.0.1:41867/path/file1391 -o log/22/download1391 -i -D log/22/heads1391 > log/22/stdout139CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1387 ../src/curl -q --trace-ascii log/45/trace1387 --trace-config all --trace-time ftp://127.0.0.1:41719/path/file1387 -o log/45/download1387 -D log/45/heads1387 > log/45/stdout1387 2> log/45/stderr1387 1 2> log/22/stderr1391 === End of file commands.log === Start of file ftp_server.log 09:41:29.895248 ====> Client connect 09:41:29.896595 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.899606 < "USER anonymous" 09:41:29.900501 > "331 We are happy you popped in![CR][LF]" 09:41:29.902505 < "PASS ftp@example.com" 09:41:29.903347 > "230 Welcome you silly person[CR][LF]" 09:41:29.905227 < "PWD" 09:41:29.907207 > "257 "/" is current directory[CR][LF]" 09:41:29.908015 < "EPSV" 09:41:29.908304 ====> Passive DATA channel requested by client 09:41:29.908495 DATA sockfilt for passive data channel starting... 09:41:29.929431 DATA sockfilt for passive data channel started (pid 145361) 09:41:29.930350 DATA sockfilt for passive data channel listens on port 42145 09:41:29.930868 > "229 Entering Passive Mode (|||42145|)[LF]" 09:41:29.931135 Client has been notified that DATA conn will be accepted on port 42145 09:41:29.936261 Client connects to port 42145 09:41:29.936619 ====> Client established passive DATA connection on port 42145 09:41:29.938093 < "TYPE I" 09:41:29.938924 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.940838 < "SIZE verifiedserver" 09:41:29.941288 > "213 17[CR][LF]" 09:41:29.946658 < "RETR verifiedserver" 09:41:29.949627 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.950530 =====> Closing passive DATA connection... 09:41:29.950870 Server disconnects passive DATA connection 09:41:29.957463 Server disconnected passive DATA connection 09:41:29.957827 DATA sockfilt for passive data channel quits (pid 145361) 09:41:29.964225 DATA sockfilt for passive data channel quit (pid 145361) 09:41:29.964629 =====> Closed passive DATA connection 09:41:29.965253 > "226 File transfer complete[CR][LF]" 09:41:29.991425 < "QUIT" 09:41:29.992569 > "221 bye bye baby[CR][LF]" 09:41:29.998160 MAIN sockfilt said DISC 09:41:29.999117 ====> Client disconnected 09:41:29.999631 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.148257 ====> Client connect 09:41:30.150960 Received DATA (on stdin) 09:41:30.151123 > 160 bytes data, server => client 09:41:30.151231 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.151332 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.151428 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.152254 < 16 bytes data, client => server 09:41:30.152397 'USER anonymous\r\n' 09:41:30.153843 Received DATA (on stdin) 09:41:30.153988 > 33 bytes data, server => client 09:41:30.154631 '331 We are happy you popped in!\r\n' 09:41:30.155588 < 22 bytes data, client => server 09:41:30.155759 'PASS ftp@example.com\r\n' 09:41:30.156697 Received DATA (on stdin) 09:41:30.156851 > 30 bytes data, server => client 09:41:30.157397 '230 Welcome you silly person\r\n' 09:41:30.158115 < 5 bytes data, client => server 09:41:30.158246 'PWD\r\n' 09:41:30.159352 Received DATA (on stdin) 09:41:30.159595 > 30 bytes data, server => client 09:41:30.159801 '257 "/" is current directory\r\n' 09:41:30.160452 < 6 bytes data, client => server 09:41:30.160709 'EPSV\r\n' 09:41:30.184774 Received DATA (on stdin) 09:41:30.184955 > 38 bytes data, server => client 09:41:30.185047 '229 Entering Passive Mode (|||42145|)\n' 09:41:30.190888 < 8 bytes data, client => server 09:41:30.191034 'TYPE I\r\n' 09:41:30.192220 Received DATA (on stdin) 09:41:30.192362 > 33 bytes data, server => client 09:41:30.192970 '200 I modify TYPE as you wanted\r\n' 09:41:30.193735 < 21 bytes data, client => server 09:41:30.193890 'SIZE verifiedserver\r\n' 09:41:30.198593 Received DATA (on stdin) 09:41:30.198758 > 8 bytes data, server => client 09:41:30.198848 '213 17\r\n' 09:41:30.199580 < 21 bytes data, client => server 09:41:30.199737 'RETR verifiedserver\r\n' 09:41:30.201124 Received DATA (on stdin) 09:41:30.201366 > 29 bytes data, server => client 09:41:30.201709 '150 Binary junk (17 bytes).\r\n' 09:41:30.219327 Received DATA (on stdin) 09:41:30.219558 > 28 bytes data, server => client 09:41:30.219687 '226 File transfer complete\r\n' 09:41:30.244227 < 6 bytes data, client => server 09:41:30.244395 'QUIT\r\n' 09:41:30.245573 Received DATA (on stdin) 09:41:30.245729 > 18 bytes data, server => client 09:41:30.245906 '221 bye bye baby\r\n' 09:41:30.251423 ====> Client disconnect 09:41:30.252230 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.181636 Running IPv4 version 09:41:29.182181 Listening on port 42145 09:41:29.182641 Wrote pid 145361 to log/22/server/ftp_sockdata.pid 09:41:29.182862 Received PING (on stdin) 09:41:29.183516 Received PORT (on stdin) 09:41:29.186069 ====> Client connect 09:41:29.208598 Received DATA (on stdin) 09:41:29.208775 > 17 bytes data, server => client 09:41:29.208888 'WE ROOLZ: 77494\r\n' 09:41:29.209217 Received DISC (on stdin) 09:41:29.209387 ====> Client forcibly disconnected 09:41:29.211858 Received QUIT (on stdin) 09:41:29.212010 quits 09:41:29.212421 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1391 === End of file server.cmd === Start of file valgrind1391 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1391 test 1387...[FTP DL, file with C-D inside, using -o fname -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1387 ../src/curl -q --trace-ascii log/45/trace1387 --trace-config all --trace-time ftp://127.0.0.1:41719/path/file1387 -o log/45/download1387 -D log/45/heads1387 > log/45/stdout1387 2> log/45/stderr1387 1387: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 1387 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1387 ../src/curl -q --trace-ascii log/45/trace1387 --trace-config all --trace-time ftp://127.0.0.1:41719/path/file1387 -o log/45/download1387 -D log/45/heads1387 > log/45/stdout1387 2> log/45/stderr1387 === End of file commands.log === Start of file ftp_server.log 09:41:29.907417 ====> Client connect 09:41:29.909266 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:29.912183 < "CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1447 ../src/curl -q --output log/17/curl1447.out --include --trace-ascii log/17/trace1447 --trace-config all --trace-time --proxy "http://a:b@/x" http://127.0.0.1:47 > log/17/stdout1447 2> log/17/stderr1447 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1427 ../src/curl -q --output log/18/curl1427.out --include --trace-ascii log/18/trace1427 --trace-config all --trace-time http://127.0.0.1:47/1427 -m 184467440737095510 > log/18/stdout1427 2> log/18/stderr1427 USER anonymous" 09:41:29.913720 > "331 We are happy you popped in![CR][LF]" 09:41:29.914955 < "PASS ftp@example.com" 09:41:29.915632 > "230 Welcome you silly person[CR][LF]" 09:41:29.917410 < "PWD" 09:41:29.917976 > "257 "/" is current directory[CR][LF]" 09:41:29.919498 < "EPSV" 09:41:29.919863 ====> Passive DATA channel requested by client 09:41:29.920081 DATA sockfilt for passive data channel starting... 09:41:29.930692 DATA sockfilt for passive data channel started (pid 145372) 09:41:29.931872 DATA sockfilt for passive data channel listens on port 38679 09:41:29.932308 > "229 Entering Passive Mode (|||38679|)[LF]" 09:41:29.932563 Client has been notified that DATA conn will be accepted on port 38679 09:41:29.936425 Client connects to port 38679 09:41:29.936839 ====> Client established passive DATA connection on port 38679 09:41:29.937615 < "TYPE I" 09:41:29.938147 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:29.940231 < "SIZE verifiedserver" 09:41:29.941056 > "213 17[CR][LF]" 09:41:29.942953 < "RETR verifiedserver" 09:41:29.943377 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:29.944158 =====> Closing passive DATA connection... 09:41:29.944392 Server disconnects passive DATA connection 09:41:29.951975 Server disconnected passive DATA connection 09:41:29.952230 DATA sockfilt for passive data channel quits (pid 145372) 09:41:29.954544 DATA sockfilt for passive data channel quit (pid 145372) 09:41:29.954821 =====> Closed passive DATA connection 09:41:29.955154 > "226 File transfer complete[CR][LF]" 09:41:29.993482 < "QUIT" 09:41:29.993940 > "221 bye bye baby[CR][LF]" 09:41:30.006163 MAIN sockfilt said DISC 09:41:30.006442 ====> Client disconnected 09:41:30.006992 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.160622 ====> Client connect 09:41:30.162449 Received DATA (on stdin) 09:41:30.162755 > 160 bytes data, server => client 09:41:30.163431 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.163675 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.163775 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.164614 < 16 bytes data, client => server 09:41:30.164758 'USER anonymous\r\n' 09:41:30.166331 Received DATA (on stdin) 09:41:30.166566 > 33 bytes data, server => client 09:41:30.166774 '331 We are happy you popped in!\r\n' 09:41:30.167902 < 22 bytes data, client => server 09:41:30.168026 'PASS ftp@example.com\r\n' 09:41:30.169045 Received DATA (on stdin) 09:41:30.169177 > 30 bytes data, server => client 09:41:30.169711 '230 Welcome you silly person\r\n' 09:41:30.170277 < 5 bytes data, client => server 09:41:30.170409 'PWD\r\n' 09:41:30.171748 Received DATA (on stdin) 09:41:30.171909 > 30 bytes data, server => client 09:41:30.171983 '257 "/" is current directory\r\n' 09:41:30.172717 < 6 bytes data, client => server 09:41:30.172854 'EPSV\r\n' 09:41:30.186673 Received DATA (on stdin) 09:41:30.186830 > 38 bytes data, server => client 09:41:30.186917 '229 Entering Passive Mode (|||38679|)\n' 09:41:30.188220 < 8 bytes data, client => server 09:41:30.188350 'TYPE I\r\n' 09:41:30.192180 Received DATA (on stdin) 09:41:30.192311 > 33 bytes data, server => client 09:41:30.192395 '200 I modify TYPE as you wanted\r\n' 09:41:30.193060 < 21 bytes data, client => server 09:41:30.193191 'SIZE verifiedserver\r\n' 09:41:30.194336 Received DATA (on stdin) 09:41:30.194551 > 8 bytes data, server => client 09:41:30.195101 '213 17\r\n' 09:41:30.195843 < 21 bytes data, client => server 09:41:30.195990 'RETR verifiedserver\r\n' 09:41:30.198426 Received DATA (on stdin) 09:41:30.198658 > 29 bytes data, server => client 09:41:30.198755 '150 Binary junk (17 bytes).\r\n' 09:41:30.208894 Received DATA (on stdin) 09:41:30.209017 > 28 bytes data, server => client 09:41:30.209096 '226 File transfer complete\r\n' 09:41:30.241433 < 6 bytes data, client => server 09:41:30.241652 'QUIT\r\n' 09:41:30.247976 Received DATA (on stdin) 09:41:30.248116 > 18 bytes data, server => client 09:41:30.248204 '221 bye bye baby\r\n' 09:41:30.259597 ====> Client disconnect 09:41:30.261064 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:29.183051 Running IPv4 version 09:41:29.183580 Listening on port 38679 09:41:29.183968 Wrote pid 145372 to log/45/server/ftp_sockdata.pid 09:41:29.184111 Received PING (on stdin) 09:41:29.184964 Received PORT (on stdin) 09:41:29.189831 ====> Client connect 09:41:29.197666 Received DATA (on stdin) 09:41:29.197821 > 17 bytes data, server => client 09:41:29.197900 'WE ROOLZ: 78026\r\n' 09:41:29.201569 Received DISC (on stdin) 09:41:29.201788 ====> Client forcibly disconnected 09:41:29.206231 Received QUIT (on stdin) 09:41:29.206359 quits 09:41:29.207242 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1387 === End of file server.cmd === Start of file valgrind1387 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1387 * starts no server test 1447...[Provide illegal proxy name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1447 ../src/curl -q --output log/17/curl1447.out --include --trace-ascii log/17/trace1447 --trace-config all --trace-time --proxy "http://a:b@/x" http://127.0.0.1:47 > log/17/stdout1447 2> log/17/stderr1447 curl returned 1, when expecting 5 1447: exit FAILED == Contents of files in the log/17/ dir after test 1447 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1447 ../src/curl -q --output log/17/curl1447.out --include --trace-ascii log/17/trace1447 --trace-config all --trace-time --proxy "http://a:b@/x" http://127.0.0.1:47 > log/17/stdout1447 2> log/17/stderr1447 === End of file commands.log === Start of file server.cmd Testnum 1447 === End of file server.cmd === Start of file valgrind1447 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term)CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1440 ../src/curl -q --include --trace-ascii log/2/trace1440 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/2/non-existent-file.txt --write-out '%{' > log/2/stdout1440 2> log/2/stderr1440 : ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1447 * starts no server test 1427...[too large -m timeout value] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1427 ../src/curl -q --output log/18/curl1427.out --include --trace-ascii log/18/trace1427 --trace-config all --trace-time http://127.0.0.1:47/1427 -m 184467440737095510 > log/18/stdout1427 2> log/18/stderr1427 curl returned 1, when expecting 2 1427: exit FAILED == Contents of files in the log/18/ dir after test 1427 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1427 ../src/curl -q --output log/18/curl1427.out --include --trace-ascii log/18/trace1427 --trace-config all --trace-time http://127.0.0.1:47/1427 -m 184467440737095510 > log/18/stdout1427 2> log/18/stderr1427 === End of file commands.log === Start of file server.cmd Testnum 1427 === End of file server.cmd === Start of file valgrind1427 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1427 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1411 ../src/curl -q --output log/56/curl1411.out --include --trace-ascii log/56/trace1411 --trace-config all --trace-time http://127.0.0.1:43265/1411 -T log/56/empty1411 > log/56/stdout1411 2> log/56/stderr1411 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1405 ../src/curl -q --output log/37/curl1405.out --include --trace-ascii log/37/trace1405 --trace-config all --trace-time ftp://127.0.0.1:40443/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/37/test1405.c > log/37/stdout1405 2> log/37/stderr1405 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1416 ../src/curl -q --output log/55/curl1416.out --include --trace-ascii log/55/trace1416 --trace-config all --trace-time http://127.0.0.1:33071/1416 > log/55/stdout1416 2> log/55/stderr1416 test 1440...[Check --write-out with trailing %{] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1440 ../src/curl -q --include --trace-ascii log/2/trace1440 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/2/non-existent-file.txt --write-out '%{' > log/2/stdout1440 2> log/2/stderr1440 1440: stdout FAILED: --- log/2/check-expected 2025-07-18 09:41:31.686549575 +0000 +++ log/2/check-generated 2025-07-18 09:41:31.685582376 +0000 @@ -1 +0,0 @@ -%{ == Contents of files in the log/2/ dir after test 1440 === Start of file check-expected %{ === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1440 ../src/curl -q --include --trace-ascii log/2/trace1440 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/2/non-existent-file.txt --write-out '%{' > log/2/stdout1440 2> log/2/stderr1440 === End of file commands.log === Start of file server.cmd Testnum 1440 === End of file server.cmd === Start of file valgrind1440 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1440 setenv SSL_CERT_FILE = test 1405...[--libcurl for FTP with quote ops] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1405 ../src/curl -q --output log/37/curl1405.out --include --trace-ascii log/37/trace1405 --trace-config all --trace-time ftp://127.0.0.1:40443/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/37/test1405.c > log/37/stdout1405 2> log/37/stderr1405 1405: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 1405 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1405 ../src/curl -q --output log/37/curl1405.out --include --trace-ascii log/37/trace1405 --trace-config all --trace-time ftp://127.0.0.1:40443/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/37/test1405.c > log/37/stdout1405 2> log/37/stderr1405 === End of file commands.log === Start of file ftp_server.log 09:41:30.111078 ====> Client connect 09:41:30.114592 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:30.115737 < "USER anonymous" 09:41:30.116822 > "331 We are happy you popped in![CR][LF]" 09:41:30.118693 < "PASS ftp@example.com" 09:41:30.120177 > "230 Welcome you silly person[CR][LF]" 09:41:30.121481 < "PWD" 09:41:30.122311 > "257 "/" is current directory[CR][LF]" 09:41:30.124229 < "EPSV" 09:41:30.124543 ====> Passive DATA channel requested by client 09:41:30.124738 DATA sockfilt for passive data channel starting... 09:41:30.150335 DATA sockfilt for passive data channel started (pid 145600) 09:41:30.151445 DATA sockfilt for passive data channel listens on port 46647 09:41:30.151959 > "229 Entering Passive Mode (|||46647|)[LF]" 09:41:30.152216 Client has been notified that DATA conn will be accepted on port 46647 09:41:30.156651 Client connects to port 46647 09:41:30.157042 ====> Client established passive DATA connection on port 46647 09:41:30.157862 < "TYPE I" 09:41:30.158301 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:30.161028 < "SIZE verifiedserver" 09:41:30.161692 > "213 17[CR][LF]" 09:41:30.164633 < "RETR verifiedserver" 09:41:30.165156 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:30.168441 =====> Closing passive DATA connection... 09:41:30.168657 Server disconnects passive DATA connection 09:41:30.169218 Fancy that; client wants to DISC, too 09:41:30.170222 Server disconnected passive DATA connection 09:41:30.170504 DATA sockfilt for passive data channel quits (pid 145600) 09:41:30.172637 DATA sockfilt for passive data channel quit (pid 145600) 09:41:30.173001 =====> Closed passive DATA connection 09:41:30.173501 > "226 File transfer complete[CR][LF]" 09:41:30.208667 < "QUIT" 09:41:30.209915 > "221 bye bye baby[CR][LF]" 09:41:30.210878 MAIN sockfilt said DISC 09:41:30.211155 ====> Client disconnected 09:41:30.211611 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.364086 ====> Client connect 09:41:30.366393 Received DATA (on stdin) 09:41:30.366636 > 160 bytes data, server => client 09:41:30.366860 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.367000 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.367091 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.367912 < 16 bytes data, client => server 09:41:30.368074 'USER anonymous\r\n' 09:41:30.370129 Received DATA (on stdin) 09:41:30.370270 > 33 bytes data, server => client 09:41:30.370879 '331 We are happy you popped in!\r\n' 09:41:30.371664 < 22 bytes data, client => server 09:41:30.371812 'PASS ftp@example.com\r\n' 09:41:30.372903 Received DATA (on stdin) 09:41:30.373057 > 30 bytes data, server => client 09:41:30.373231 '230 Welcome you silly person\r\n' 09:41:30.374400 < 5 bytes data, client => server 09:41:30.374624 'PWD\r\n' 09:41:30.375674 Received DATA (on stdin) 09:41:30.375852 > 30 bytes data, server => client 09:41:30.376327 '257 "/" is current directory\r\n' 09:41:30.377076 < 6 bytes data, client => server 09:41:30.377230 'EPSV\r\n' 09:41:30.406257 Received DATA (on stdin) 09:41:30.406414 > 38 bytes data, server => client 09:41:30.406621 '229 Entering Passive Mode (|||46647|)\n' 09:41:30.410041 < 8 bytes data, client => server 09:41:30.410190 'TYPE I\r\n' 09:41:30.412329 Received DATA (on stdin) 09:41:30.412524 > 33 bytes data, server => client 09:41:30.412646 '200 I modify TYPE as you wanted\r\n' 09:41:30.413306 < 21 bytes data, client => server 09:41:30.413523 'SIZE verifiedserver\r\n' 09:41:30.415576 Received DATA (on stdin) 09:41:30.416048 > 8 bytes data, server => client 09:41:30.416181 '213 17\r\n' 09:41:30.417209 < 21 bytes data, client => server 09:41:30.417352 'RETR verifiedserver\r\n' 09:41:30.419323 Received DATA (on stdin) 09:41:30.419582 > 29 bytes data, server => client 09:41:30.419688 '150 Binary junk (17 bytes).\r\n' 09:41:30.427773 Received DATA (on stdin) 09:41:30.427959 > CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1404 ../src/curl -q --output log/38/curl1404.out --include --trace-ascii log/38/trace1404 --trace-config all --trace-time http://127.0.0.1:33511/we/want/1404 -F name=value -F 'file=@log/38/test1404.txt,log/38/test1404.txt;type=magic/content;encoder=8bit,log/38/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/38/test1404.c > log/38/stdout1404 2> log/38/stderr1404 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1413 ../src/curl -q --output log/31/curl1413.out --include --trace-ascii log/31/trace1413 --trace-config all --trace-time http://127.0.0.1:45557/this/1413 -L > log/31/stdout1413 2> log/31/stderr1413 28 bytes data, server => client 09:41:30.428067 '226 File transfer complete\r\n' 09:41:30.461533 < 6 bytes data, client => server 09:41:30.461715 'QUIT\r\n' 09:41:30.462864 Received DATA (on stdin) 09:41:30.462998 > 18 bytes data, server => client 09:41:30.463165 '221 bye bye baby\r\n' 09:41:30.464216 ====> Client disconnect 09:41:30.465732 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:30.395005 Running IPv4 version 09:41:30.402973 Listening on port 46647 09:41:30.403416 Wrote pid 145600 to log/37/server/ftp_sockdata.pid 09:41:30.403699 Received PING (on stdin) 09:41:30.404638 Received PORT (on stdin) 09:41:30.409728 ====> Client connect 09:41:30.420248 Received DATA (on stdin) 09:41:30.420399 > 17 bytes data, server => client 09:41:30.420652 'WE ROOLZ: 87603\r\n' 09:41:30.421417 ====> Client disconnect 09:41:30.423178 Received DISC (on stdin) 09:41:30.423321 Crikey! Client also wants to disconnect 09:41:30.423420 Received ACKD (on stdin) 09:41:30.424450 Received QUIT (on stdin) 09:41:30.424656 quits 09:41:30.425133 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY FAIL 500 this might not be a failure Testnum 1405 === End of file server.cmd === Start of file valgrind1405 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1405 test 1416...[HTTP GET with chunked Transfer-Encoding overflowed chunked size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1416 ../src/curl -q --output log/55/curl1416.out --include --trace-ascii log/55/trace1416 --trace-config all --trace-time http://127.0.0.1:33071/1416 > log/55/stdout1416 2> log/55/stderr1416 1416: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 1416 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1416 ../src/curl -q --output log/55/curl1416.out --include --trace-ascii log/55/trace1416 --trace-config all --trace-time http://127.0.0.1:33071/1416 > log/55/stdout1416 2> log/55/stderr1416 === End of file commands.log === Start of file http_server.log 09:41:30.924450 ====> Client connect 09:41:30.924860 accept_connection 3 returned 4 09:41:30.925008 accept_connection 3 returned 0 09:41:30.925134 Read 93 bytes 09:41:30.925219 Process 93 bytes request 09:41:30.925298 Got request: GET /verifiedserver HTTP/1.1 09:41:30.925366 Are-we-friendly question received 09:41:30.927743 Wrote request (93 bytes) input to log/55/server.input 09:41:30.927962 Identifying ourselves as friends 09:41:30.928745 Response sent (56 bytes) and written to log/55/server.response 09:41:30.928851 special request received, no persistency 09:41:30.928910 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 1416 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind1416 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1416 test 1411...[HTTP with zero size file PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1411 ../src/curl -q --output log/56/curl1411.out --include --trace-ascii log/56/trace1411 --trace-config all --trace-time http://127.0.0.1:43265/1411 -T log/56/empty1411 > log/56/stdout1411 2> log/56/stderr1411 1411: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 1411 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1411 ../src/curl -q --output log/56/curl1411.out --include --trace-ascii log/56/trace1411 --trace-config all --trace-time http://127.0.0.1:43265/1411 -T log/56/empty1411 > log/56/stdout1411 2> log/56/stderr1411 === End of file commands.log === Start of file http_server.log 09:41:30.690043 ====> Client connect 09:41:30.690332 accept_connection 3 returned 4 09:41:30.690600 accept_connection 3 returned 0 09:41:30.692137 Read 93 bytes 09:41:30.692280 Process 93 bytes request 09:41:30.692368 Got request: GET /verifiedserver HTTP/1.1 09:41:30.692451 Are-we-friendly question received 09:41:30.692795 Wrote request (93 bytes) input to log/56/server.input 09:41:30.692983 IdentifyinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1442 ../src/curl -q --include --trace-ascii log/1/trace1442 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/1/non-existent-file.txt --write-out '\' > log/1/stdout1442 2> log/1/stderr1442 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1414 ../src/curl -q --output log/62/curl1414.out --include --trace-ascii log/62/trace1414 --trace-config all --trace-time ftp://127.0.0.1:38963/1414 -P - > log/62/stdout1414 2> log/62/stderr1414 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1441 ../src/curl -q --include --trace-ascii log/54/trace1441 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/54/non-existent-file.txt --write-out '%' > log/54/stdout1441 2> log/54/stderr1441 g ourselves as friends 09:41:30.693590 Response sent (56 bytes) and written to log/56/server.response 09:41:30.693700 special request received, no persistency 09:41:30.693788 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 1411 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind1411 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1411 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1419 ../src/curl -q --output log/26/curl1419.out --include --trace-ascii log/26/trace1419 --trace-config all --trace-time http://127.0.0.1:46481/1419 --anyauth http://127.0.0.1:46481/14190003 > log/26/stdout1419 2> log/26/stderr1419 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1453 ../src/curl -q --output log/58/curl1453.out --include --trace-ascii log/58/trace1453 --trace-config all --trace-time tftp://127.0.0.1:47/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz > log/58/stdout1453 2> log/58/stderr1453 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1412 ../src/curl -q --output log/32/curl1412.out --include --trace-ascii log/32/trace1412 --trace-config all --trace-time http://127.0.0.1:45607/1412 -u testuser:testpass --anyauth http://127.0.0.1:45607/14120001 > log/32/stdout1412 2> log/32/stderr1412 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1401 ../src/curl -q --output log/41/curl1401.out --include --trace-ascii log/41/trace1401 --trace-config all --trace-time http://127.0.0.1:35093/we/want/1401 --libcurl log/41/test1401.c --basic -u fake:user -H "X-Files: Mulder" -H "X-Men: cyclops, iceman" -A MyUA -b chocolate=chip --proto "=http,ftp,file" > log/41/stdout1401 2> log/41/stderr1401 test 1442...[Check --write-out with trailing \] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1442 ../src/curl -q --include --trace-ascii log/1/trace1442 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/1/non-existent-file.txt --write-out '\' > log/1/stdout1442 2> log/1/stderr1442 1442: stdout FAILED: --- log/1/check-expected 2025-07-18 09:41:31.859182548 +0000 +++ log/1/check-generated 2025-07-18 09:41:31.857582289 +0000 @@ -1 +0,0 @@ -\ == Contents of files in the log/1/ dir after test 1442 === Start of file check-expected \ === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1442 ../src/curl -q --include --trace-ascii log/1/trace1442 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/1/non-existent-file.txt --write-out '\' > log/1/stdout1442 2> log/1/stderr1442 === End of file commands.log === Start of file server.cmd Testnum 1442 === End of file server.cmd === Start of file valgrind1442 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1442 test 1413...[HTTP redirect with fragment in new URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1413 ../src/curl -q --output log/31/curl1413.out --include --trace-ascii log/31/trace1413 --trace-config all --trace-time http://127.0.0.1:45557/this/1413 -L > log/31/stdout1413 2> log/31/stderr1413 1413: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1413 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1413 ../src/curl -q --output log/31/curl1413.out --include --trace-ascii log/31/trace1413 --trace-config all --trace-time http://127.0.0.1:45557/this/1413 -L > log/31/stdout1413 2> log/31/stderr1413 === End of file commands.log === Start of file http_server.log 09:41:30.796309 ====> Client connect 09:41:30.796770 accept_connection 3 returned 4 09:41:30.796941 accept_connection 3 returned 0 09:41:30.797076 Read 93 bytes 09:41:30.797182 Process 93 bytes request 09:41:30.797279 Got request: GET /verifiedserver HTTP/1.1 09:41:30.797365 Are-we-friendly question received 09:41:30.797688 Wrote request (93 bytes) input to log/31/server.input 09:41:30.797898 Identifying ourselves as friends 09:41:30.798784 Response sent (56 bytes) and written to log/31/server.response 09:41:30.798916 special request received, no persistency 09:41:30.799004 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 1413 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1413 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1413 setenv SSL_CERT_FILE = test 1404...[--libcurl plus -F with 3 files, one with explicit type & encoder] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1404 ../src/curl -q --output log/38/curl1404.out --include --trace-ascii log/38/trace1404 --trace-config all --trace-time http://127.0.0.1:33511/we/want/1404 -F name=value -F 'file=@log/38/test1404.txt,log/38/test1404.txt;type=magic/content;encoder=8bit,log/38/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/38/test1404.c > log/38/stdout1404 2> log/38/stderr1404 1404: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1404 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1404 ../src/curl -q --output log/38/curl1404.out --include --trace-ascii log/38/trace1404 --trace-config all --trace-time http://127.0.0.1:33511/we/want/1404 -F name=value -F 'file=@log/38/test1404.txt,log/38/test1404.txt;type=magic/content;encoder=8bit,log/38/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/38/test1404.c > log/38/stdout1404 2> log/38/stderr1404 === End of file commands.log === Start of file http_server.log 09CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1445 ../src/curl -q --output log/27/curl1445.out --include --trace-ascii log/27/trace1445 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/27/test1445.dir/plainfile.txt --remote-time > log/27/stdout1445 2> log/27/stderr1445 :41:30.428367 ====> Client connect 09:41:30.428892 accept_connection 3 returned 4 09:41:30.429060 accept_connection 3 returned 0 09:41:30.429189 Read 93 bytes 09:41:30.429289 Process 93 bytes request 09:41:30.432734 Got request: GET /verifiedserver HTTP/1.1 09:41:30.432842 Are-we-friendly question received 09:41:30.433158 Wrote request (93 bytes) input to log/38/server.input 09:41:30.433432 Identifying ourselves as friends 09:41:30.434567 Response sent (56 bytes) and written to log/38/server.response 09:41:30.434705 special request received, no persistency 09:41:30.434801 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1404 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file test1404.txt dummy data === End of file test1404.txt === Start of file valgrind1404 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1404 test 1419...[HTTP with --anyauth (but no auth!) and connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1419 ../src/curl -q --output log/26/curl1419.out --include --trace-ascii log/26/trace1419 --trace-config all --trace-time http://127.0.0.1:46481/1419 --anyauth http://127.0.0.1:46481/14190003 > log/26/stdout1419 2> log/26/stderr1419 1419: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 1419 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1419 ../src/curl -q --output log/26/curl1419.out --include --trace-ascii log/26/trace1419 --trace-config all --trace-time http://127.0.0.1:46481/1419 --anyauth http://127.0.0.1:46481/14190003 > log/26/stdout1419 2> log/26/stderr1419 === End of file commands.log === Start of file http_server.log 09:41:30.859880 ====> Client connect 09:41:30.860167 accept_connection 3 returned 4 09:41:30.860311 accept_connection 3 returned 0 09:41:30.860434 Read 93 bytes 09:41:30.860727 Process 93 bytes request 09:41:30.860822 Got request: GET /verifiedserver HTTP/1.1 09:41:30.860913 Are-we-friendly question received 09:41:30.861183 Wrote request (93 bytes) input to log/26/server.input 09:41:30.861382 Identifying ourselves as friends 09:41:30.864723 Response sent (56 bytes) and written to log/26/server.response 09:41:30.864840 special request received, no persistency 09:41:30.864907 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1419 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1419 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1419 test 1412...[HTTP GET with --anyauth with two URLs (picking Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1412 ../src/curl -q --output log/32/curl1412.out --include --trace-ascii log/32/trace1412 --trace-config all --trace-time http://127.0.0.1:45607/1412 -u testuser:testpass --anyauth http://127.0.0.1:45607/14120001 > log/32/stdout1412 2> log/32/stderr1412 1412: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 1412 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1412 ../src/curl -q --output log/32/curl1412.out --include --trace-ascii log/32/trace1412 --trace-config all --trace-time http://127.0.0.1:45607/1412 -u testuser:testpass --anyauth http://127.0.0.1:45607/14120001 > log/32/stdout1412 2> log/32/stderr1412 === End of file commands.log === Start of file http_server.log 09:41:30.791282 ====> Client connect 09:41:30.791720 accept_connection 3 returned 4 09:41:30.791893 accept_connection 3 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1421 ../src/curl -q --include --trace-ascii log/24/trace1421 --trace-config all --trace-time --proxy http://127.0.0.1:39259 http://test.remote.haxx.se.1421:8990/ http://different.remote.haxx.se.1421:8990 > log/24/stdout1421 2> log/24/stderr1421 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1423 ../src/curl -q --trace-ascii log/21/trace1423 --trace-config all --trace-time http://127.0.0.1:34827/1423 -o log/21/outfile1423 file:///build/curl/src/build-curl/tests/log/21/outfile1423 > log/21/stdout1423 2> log/21/stderr1423 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1418 ../src/curl -q --output log/28/curl1418.out --include --trace-ascii log/28/trace1418 --trace-config all --trace-time http://127.0.0.1:37545/1418 -u testuser:testpass --anyauth http://127.0.0.1:37545/14180003 > log/28/stdout1418 2> log/28/stderr1418 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1415 ../src/curl -q --output log/46/curl1415.out --include --trace-ascii log/46/trace1415 --trace-config all --trace-time http://example.com/we/want/1415 -b none -c log/46/jar1415.txt -x 127.0.0.1:46523 > log/46/stdout1415 2> log/46/stderr1415 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1403 ../src/curl -q --output log/39/curl1403.out --include --trace-ascii log/39/trace1403 --trace-config all --trace-time http://127.0.0.1:42899/we/want/1403 --libcurl log/39/test1403.c -G -d "foo=bar" -d "baz=quux" > log/39/stdout1403 2> log/39/stderr1403 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1430 ../src/curl -q --output log/12/curl1430.out --include --trace-ascii log/12/trace1430 --trace-config all --trace-time http://127.0.0.1:45579/1430 > log/12/stdout1430 2> log/12/stderr1430 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1407 ../src/curl -q --output log/61/curl1407.out --include --trace-ascii log/61/trace1407 --trace-config all --trace-time pop3://127.0.0.1:42871/1407 -l -u user:secret --libcurl log/61/test1407.c > log/61/stdout1407 2> log/61/stderr1407 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1432 ../src/curl -q --output log/10/curl1432.out --include --trace-ascii log/10/trace1432 --trace-config all --trace-time http://127.0.0.1:36913/1432 > log/10/stdout1432 2> log/10/stderr1432 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1424 ../src/curl -q --trace-ascii log/19/trace1424 --trace-config all --trace-time http://127.0.0.1:35697/1424 -z "dec 12 11:00:00 1999 GMT" -o log/19/outfile1424 > log/19/stdout1424 2> log/19/stderr1424 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1417 ../src/curl -q --output log/29/curl1417.out --include --trace-ascii log/29/trace1417 --trace-config all --trace-time http://127.0.0.1:36877/1417 -D log/29/heads1417 > log/29/stdout1417 2> log/29/stderr1417 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1439 ../src/curl -q --include --trace-ascii log/3/trace1439 --trace-config all --trace-time http://127.0.0.1:42107/1439 --write-out '%{http_version}' > log/3/stdout1439 2> log/3/stderr1439 returned 0 09:41:30.792582 Read 93 bytes 09:41:30.792729 Process 93 bytes request 09:41:30.792819 Got request: GET /verifiedserver HTTP/1.1 09:41:30.792968 Are-we-friendly question received 09:41:30.793267 Wrote request (93 bytes) input to log/32/server.input 09:41:30.793668 Identifying ourselves as friends 09:41:30.794227 Response sent (56 bytes) and written to log/32/server.response 09:41:30.794328 special request received, no persistency 09:41:30.794390 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd auth_required Testnum 1412 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind1412 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1412 setenv SSL_CERT_FILE = test 1401...[--libcurl for GET with various options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1401 ../src/curl -q --output log/41/curl1401.out --include --trace-ascii log/41/trace1401 --trace-config all --trace-time http://127.0.0.1:35093/we/want/1401 --libcurl log/41/test1401.c --basic -u fake:user -H "X-Files: Mulder" -H "X-Men: cyclops, iceman" -A MyUA -b chocolate=chip --proto "=http,ftp,file" > log/41/stdout1401 2> log/41/stderr1401 1401: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 1401 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1401 ../src/curl -q --output log/41/curl1401.out --include --trace-ascii log/41/trace1401 --trace-config all --trace-time http://127.0.0.1:35093/we/want/1401 --libcurl log/41/test1401.c --basic -u fake:user -H "X-Files: Mulder" -H "X-Men: cyclops, iceman" -A MyUA -b chocolate=chip --proto "=http,ftp,file" > log/41/stdout1401 2> log/41/stderr1401 === End of file commands.log === Start of file http_server.log 09:41:30.330917 ====> Client connect 09:41:30.331226 accept_connection 3 returned 4 09:41:30.331389 accept_connection 3 returned 0 09:41:30.331658 Read 93 bytes 09:41:30.331774 Process 93 bytes request 09:41:30.331855 Got request: GET /verifiedserver HTTP/1.1 09:41:30.331927 Are-we-friendly question received 09:41:30.332146 Wrote request (93 bytes) input to log/41/server.input 09:41:30.332324 Identifying ourselves as friends 09:41:30.333099 Response sent (56 bytes) and written to log/41/server.response 09:41:30.333218 special request received, no persistency 09:41:30.333291 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 1401 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind1401 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1401 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1433 ../src/curl -q --output log/8/curl1433.out --include --trace-ascii log/8/trace1433 --trace-config all --trace-time http://127.0.0.1:46129/1433 > log/8/stdout1433 2> log/8/stderr1433 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1422 ../src/curl -q --trace-ascii log/23/trace1422 --trace-config all --trace-time http://127.0.0.1:42467/1422 -J -O file:///build/curl/src/build-curl/tests/log/23/name1422 --output-dir log/23 > log/23/stdout1422 2> log/23/stderr1422 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1443 ../src/curl -q --trace-ascii log/33/trace1443 --trace-config all --trace-time http://127.0.0.1:36559/1443 -O --remote-time --output-dir log/33 > log/33/stdout1443 2> log/33/stderr1443 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1477.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/2/stdout1477 2> log/2/stderr1477 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1444 ../src/curl -q --output log/30/curl1444.out --include --trace-ascii log/30/trace1444 --trace-config all --trace-time ftp://127.0.0.1:42901/1444 --remote-time > log/30/stdout1444 2> log/30/stderr1444 CMD (256): /usr/bin/perl -e 'exit((stat("log/33/1443"))[9] != 960898200)' CMD (256): /usr/bin/perl /build/curl/src/curl/tests/libtest/test613.pl postprocess /build/curl/src/build-curl/tests/log/27/test1445.dir && \ /usr/bin/perl -e 'exit((stat("log/27/curl1445.out"))[9] != 946728000)' test 1441...[Check --write-out with trailing %] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1441 ../src/curl -q --include --trace-ascii log/54/trace1441 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/54/non-existent-file.txt --write-out '%' > log/54/stdout1441 2> log/54/stderr1441 1441: stdout FAILED: --- log/54/check-expected 2025-07-18 09:41:32.083577674 +0000 +++ log/54/check-generated 2025-07-18 09:41:32.082582175 +0000 @@ -1 +0,0 @@ -% == Contents of files in the log/54/ dir after test 1441 === Start of file check-expected % === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1441 ../src/curl -q --include --trace-ascii log/54/trace1441 --trace-config all --trace-time file://localhost//build/curl/src/build-curl/tests/log/54/non-existent-file.txt --write-out '%' > log/54/stdout1441 2> log/54/stderr1441 === End of file commands.log === Start of file server.cmd Testnum 1441 === End of file server.cmd === Start of file valgrind1441 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1441 * starts no server test 1453...[Too long tftp filename] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1453 ../src/curl -q --output log/58/curl1453.out --include --trace-ascii log/58/trace1453 --trace-config all --trace-time tftp://127.0.0.1:47/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz > log/58/stdout1453 2> log/58/stderr1453 curl returned 1, when expecting 71 1453: exit FAILED == Contents of files in the log/58/ dir after test 1453 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1453 ../src/curl -q --output log/58/curl1453.out --include --trace-ascii log/58/trace1453 --trace-config all --trace-time tftp://127.0.0.1:47/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz > log/58/stdout1453 2> log/58/stderr1453 === End of file commands.log === Start of file server.cmd Testnum 1453 === End of file server.cmd === Start of file valgrind1453 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1453 test 1414...[FTP PORT without SIZE or EPRT support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1414 ../src/curl -q --output log/62/curl1414.out --include --trace-ascii log/62/trace1414 --trace-config all --trace-time ftp://127.0.0.1:38963/1414 -P - > log/62/stdout1414 2> log/62/stderr1414 1414: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1414 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1414 ../src/curl -q --output log/62/curl1414.out --include --trace-ascii log/62/trace1414 --trace-config all --trace-time ftp://127.0.0.1:38963/1414 -P - > log/62/stdout1414 2> log/62/stderr1414 === End of file commands.log === Start of file ftp_server.log 09:41:30.556325 ====> Client connect 09:41:30.558647 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:30.566589 < "USER anonymous" 09:41:30.567066 > "331 We are happy you popped in![CR][LF]" 09:41:30.569558 < "PASS ftp@example.com" 09:41:30.569949 > "230 Welcome you silly person[CR][LF]" 09:41:30.573606 < "PWD" 09:41:30.576076 > "257 "/" is current directory[CR][LF]" 09:41:30.578043 < "EPSV" 09:41:30.578321 ====> Passive DATA channel requested by client 09:41:30.578499 DATA sockfilt for passive data channel starting... 09:41:30.600929 DATA sockfilt for passive data channel started (pid 146410) 09:41:30.601904 DATA sockfilt for passive data channel listens on port 43189 09:41:30.602339 > "229 ECMD (256): /usr/bin/perl -e 'exit((stat("log/30/curl1444.out"))[9] != 1234567890)' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1437 ../src/curl -q --output log/5/curl1437.out --include --trace-ascii log/5/trace1437 --trace-config all --trace-time http://127.0.0.1:33413/1437 -u testuser:testpass --digest > log/5/stdout1437 2> log/5/stderr1437 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1429 ../src/curl -q --include --trace-ascii log/13/trace1429 --trace-config all --trace-time http://127.0.0.1:44087/1429 --write-out '%{response_code}' > log/13/stdout1429 2> log/13/stderr1429 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1463 ../src/curl -q --include --trace-ascii log/44/trace1463 --trace-config all --trace-time --help file > log/44/stdout1463 2> log/44/stderr1463 ntering Passive Mode (|||43189|)[LF]" 09:41:30.602575 Client has been notified that DATA conn will be accepted on port 43189 09:41:30.604879 Client connects to port 43189 09:41:30.605627 ====> Client established passive DATA connection on port 43189 09:41:30.606563 < "TYPE I" 09:41:30.607404 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:30.609544 < "SIZE verifiedserver" 09:41:30.610015 > "213 17[CR][LF]" 09:41:30.611847 < "RETR verifiedserver" 09:41:30.612262 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:30.613055 =====> Closing passive DATA connection... 09:41:30.613275 Server disconnects passive DATA connection 09:41:30.614991 Server disconnected passive DATA connection 09:41:30.615234 DATA sockfilt for passive data channel quits (pid 146410) 09:41:30.617077 DATA sockfilt for passive data channel quit (pid 146410) 09:41:30.617315 =====> Closed passive DATA connection 09:41:30.617653 > "226 File transfer complete[CR][LF]" 09:41:30.657320 < "QUIT" 09:41:30.657828 > "221 bye bye baby[CR][LF]" 09:41:30.661904 MAIN sockfilt said DISC 09:41:30.662273 ====> Client disconnected 09:41:30.662817 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.809423 ====> Client connect 09:41:30.811274 Received DATA (on stdin) 09:41:30.811419 > 160 bytes data, server => client 09:41:30.811665 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.811813 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.811897 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.815260 < 16 bytes data, client => server 09:41:30.815434 'USER anonymous\r\n' 09:41:30.821607 Received DATA (on stdin) 09:41:30.821927 > 33 bytes data, server => client 09:41:30.822016 '331 We are happy you popped in!\r\n' 09:41:30.823938 < 22 bytes data, client => server 09:41:30.824059 'PASS ftp@example.com\r\n' 09:41:30.824156 Received DATA (on stdin) 09:41:30.824236 > 30 bytes data, server => client 09:41:30.824312 '230 Welcome you silly person\r\n' 09:41:30.826623 < 5 bytes data, client => server 09:41:30.826754 'PWD\r\n' 09:41:30.827763 Received DATA (on stdin) 09:41:30.827893 > 30 bytes data, server => client 09:41:30.830141 '257 "/" is current directory\r\n' 09:41:30.830954 < 6 bytes data, client => server 09:41:30.831085 'EPSV\r\n' 09:41:30.856675 Received DATA (on stdin) 09:41:30.856838 > 38 bytes data, server => client 09:41:30.856929 '229 Entering Passive Mode (|||43189|)\n' 09:41:30.858966 < 8 bytes data, client => server 09:41:30.859100 'TYPE I\r\n' 09:41:30.860752 Received DATA (on stdin) 09:41:30.860894 > 33 bytes data, server => client 09:41:30.861537 '200 I modify TYPE as you wanted\r\n' 09:41:30.862331 < 21 bytes data, client => server 09:41:30.862573 'SIZE verifiedserver\r\n' 09:41:30.864042 Received DATA (on stdin) 09:41:30.864159 > 8 bytes data, server => client 09:41:30.864233 '213 17\r\n' 09:41:30.864838 < 21 bytes data, client => server 09:41:30.864960 'RETR verifiedserver\r\n' 09:41:30.867395 Received DATA (on stdin) 09:41:30.867572 > 29 bytes data, server => client 09:41:30.867672 '150 Binary junk (17 bytes).\r\n' 09:41:30.871364 Received DATA (on stdin) 09:41:30.871592 > 28 bytes data, server => client 09:41:30.871702 '226 File transfer complete\r\n' 09:41:30.910436 < 6 bytes data, client => server 09:41:30.910715 'QUIT\r\n' 09:41:30.911528 Received DATA (on stdin) 09:41:30.911666 > 18 bytes data, server => client 09:41:30.911749 '221 bye bye baby\r\n' 09:41:30.915298 ====> Client disconnect 09:41:30.915997 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:30.853230 Running IPv4 version 09:41:30.853791 Listening on port 43189 09:41:30.854148 Wrote pid 146410 to log/62/server/ftp_sockdata.pid 09:41:30.854291 Received PING (on stdin) 09:41:30.855032 Received PORT (on stdin) 09:41:30.858201 ====> Client connect 09:41:30.866374 Received DATA (on stdin) 09:41:30.866605 > 17 bytes data, server => client 09:41:30.866696 'WE ROOLZ: 78462\r\n' 09:41:30.867273 Received DISC (on stdin) 09:41:30.867415 ====> Client forcibly disconnected 09:41:30.869225 Received QUIT (on stdin) 09:41:30.869360 quits 09:41:30.869796 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 502 no such command REPLY EPRT 502 no such command Testnum 1414 === End of file server.cmd === Start of file valgrind1414 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1414 * starts no server test 1477...[Verify that error codes in headers and libcurl-errors.3 are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1477.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/2/stdout1477 2> log/2/stderr1477 valgrind SKIPPED s------e--- OK (1379 out of 1707, remaining: 00:15, took 0.477s, duration: 01:06) CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1438 ../src/curl -q --include --trace-ascii log/4/trace1438 --trace-config all --trace-time http://127.0.0.1:43013/1438 --write-out '%{scheme}' > log/4/stdout1438 2> log/4/stderr1438 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1448 ../src/curl -q --include --trace-ascii log/63/trace1448 --trace-config all --trace-time http://åäö.se:38797/1448 --resolve xn--4cab6c.se:38797:127.0.0.1 -L --connect-to 127.0.0.1:38797:127.0.0.1:38797 > log/63/stdout1448 2> log/63/stderr1448 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1408 ../src/curl -q --output log/47/curl1408.out --include --trace-ascii log/47/trace1408 --trace-config all --trace-time -c log/47/jar1408 -g http://[::1]:45391/path/14080001 http://[::1]:45391/path/14080002 > log/47/stdout1408 2> log/47/stderr1408 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1434 ../src/curl -q --output log/7/curl1434.out --include --trace-ascii log/7/trace1434 --trace-config all --trace-time http://127.0.0.1:44647/1434 -C 100 > log/7/stdout1434 2> log/7/stderr1434 test 1439...[Check if %{http_version} returns 1.1] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1439 ../src/curl -q --include --trace-ascii log/3/trace1439 --trace-config all --trace-time http://127.0.0.1:42107/1439 --write-out '%{http_version}' > log/3/stdout1439 2> log/3/stderr1439 1439: stdout FAILED: --- log/3/check-expected 2025-07-18 09:41:32.260592705 +0000 +++ log/3/check-generated 2025-07-18 09:41:32.259582085 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -1.1 == Contents of files in the log/3/ dir after test 1439 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] 1.1 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1439 ../src/curl -q --include --trace-ascii log/3/trace1439 --trace-config all --trace-time http://127.0.0.1:42107/1439 --write-out '%{http_version}' > log/3/stdout1439 2> log/3/stderr1439 === End of file commands.log === Start of file http_server.log 09:41:31.175257 ====> Client connect 09:41:31.175850 accept_connection 3 returned 4 09:41:31.176109 accept_connection 3 returned 0 09:41:31.177245 Read 93 bytes 09:41:31.177374 Process 93 bytes request 09:41:31.177547 Got request: GET /verifiedserver HTTP/1.1 09:41:31.177687 Are-we-friendly question received 09:41:31.177961 Wrote request (93 bytes) input to log/3/server.input 09:41:31.178150 Identifying ourselves as friends 09:41:31.179837 Response sent (56 bytes) and written to log/3/server.response 09:41:31.179968 special request received, no persistency 09:41:31.180042 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 1439 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind1439 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1439 test 1437...[HTTP with duplicated WWW-Authenticate parameters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1437 ../src/curl -q --output log/5/curl1437.out --include --trace-ascii log/5/trace1437 --trace-config all --trace-time http://127.0.0.1:33413/1437 -u testuser:testpass --digest > log/5/stdout1437 2> log/5/stderr1437 1437: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1437 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1437 ../src/curl -q --output log/5/curl1437.out --include --trace-ascii log/5/trace1437 --trace-config all --trace-time http://127.0.0.1:33413/1437 -u testuser:testpass --digest > log/5/stdout1437 2> log/5/stderr1437 === End of file commands.log === Start of file http_server.log 09:41:31.123839 ====> Client connect 09:41:31.124117 accept_connection 3 returned 4 09:41:31.124260 accept_connection 3 returned 0 09:41:31.125001 Read 93 bytes 09:41:31.125376 Process 93 bytes request 09:41:31.125663 Got request: GET /verifiedserver HTTP/1.1 09:41:31.125800 Are-we-friendly question received 09:41:31.126082 Wrote request (93 bytes) input to log/5/server.input 09:41:31.126309 Identifying ourselves as friends 09:41:31.131334 Response sent (56 bytes) and written to log/5/server.response 09:41:31.131450 special request received, no persistency 09:41:31.131750 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1437 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind1437 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1437 test 1433...[HTTP GET with 100-digit subversion number in response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1433 ../src/curl -q --output log/8/curl1433.out --include --trace-ascii log/8/trace1433 --trace-config all --trace-time http://127.0.0.1:46129/1433 > log/8/stdout1433 2> log/8/stderr1433 1433: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1433 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1433 ../src/curl -q --output log/8/curl1433.out --include --trace-ascii log/8/trace1433 --trace-config all --trace-time http://127.0.0.1:46129/1433 > log/8/stdout1433 2> log/8/stderr1433 === End of file commands.log === Start of file http_server.log 09:41:31.121075 ====> Client connect 09:41:31.121370 accept_connection 3 returned 4 09:41:31.121681 accept_connection 3 returned 0 09:41:31.121838 Read 93 bytes 09:41:31.121928 Process 93 bytes request 09:41:31.122010 Got request: GET /verifiedserver HTTP/1.1 09:41:31.122076 Are-we-friendly question received 09:41:31.122278 Wrote request (93 bytes) input to log/8/server.input 09:41:31.122450 Identifying ourselves as friends 09:41:31.123295 Response sent (56 bytes) and written to log/8/server.response 09:41:31.123417 special request received, no persistency 09:41:31.123589 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 1433 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind1433 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1433 test 1432...[HTTP GET with 100-digit response code and survive] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1432 ../src/curl -q --output log/10/curl1432.out --include --trace-ascii log/10/trace1432 --trace-config all --trace-time http://127.0.0.1:36913/1432 > log/10/stdout1432 2> log/10/stderr1432 1432: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 1432 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1432 ../src/curl -q --output log/10/curl1432.out --include --trace-ascii log/10/trace1432 --trace-config all --trace-time http://127.0.0.1:36913/1432 > log/10/stdout1432 2> log/10/stderr1432 === End of file commands.log === Start of file http_server.log 09:41:31.112393 ====> Client connect 09:41:31.112852 accept_connection 3 returned 4 09:41:31.113015 accept_connection 3 returned 0 09:41:31.113142 Read 93 bytes 09:41:31.113228 Process 93 bytes request 09:41:31.113323 Got request: GET /verifiedserver HTTP/1.1 09:41:31.113400 Are-we-friendly question received 09:41:31.113736 Wrote request (93 bytes) input to log/10/server.input 09:41:31.113930 Identifying ourselves as friends 09:41:31.114823 Response sent (56 bytes) and written to log/10/server.response 09:41:31.114938 special request received, no persistency 09:41:31.115006 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 1432 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind1432 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1432 test 1430...[HTTP GET with negative response code] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1430 ../src/curl -q --output log/12/curl1430.out --include --trace-ascii log/12/trace1430 --trace-config all --trace-time http://127.0.0.1:45579/1430 > log/12/stdout1430 2> log/12/stderr1430 1430: proCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1460 ../src/curl -q --trace-ascii log/52/trace1460 --trace-config all --trace-time http://127.0.0.1:40089/1460 -Ji -O --output-dir log/52 > log/52/stdout1460 2> log/52/stderr1460 tocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 1430 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1430 ../src/curl -q --output log/12/curl1430.out --include --trace-ascii log/12/trace1430 --trace-config all --trace-time http://127.0.0.1:45579/1430 > log/12/stdout1430 2> log/12/stderr1430 === End of file commands.log === Start of file http_server.log 09:41:31.181823 ====> Client connect 09:41:31.182076 accept_connection 3 returned 4 09:41:31.182211 accept_connection 3 returned 0 09:41:31.182327 Read 93 bytes 09:41:31.182401 Process 93 bytes request 09:41:31.182559 Got request: GET /verifiedserver HTTP/1.1 09:41:31.182655 Are-we-friendly question received 09:41:31.182858 Wrote request (93 bytes) input to log/12/server.input 09:41:31.183018 Identifying ourselves as friends 09:41:31.183736 Response sent (56 bytes) and written to log/12/server.response 09:41:31.183835 special request received, no persistency 09:41:31.183897 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 1430 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind1430 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1430 test 1424...[HTTP GET -o fname without Content-Disposition (unmet time condition)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1424 ../src/curl -q --trace-ascii log/19/trace1424 --trace-config all --trace-time http://127.0.0.1:35697/1424 -z "dec 12 11:00:00 1999 GMT" -o log/19/outfile1424 > log/19/stdout1424 2> log/19/stderr1424 1424: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 1424 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1424 ../src/curl -q --trace-ascii log/19/trace1424 --trace-config all --trace-time http://127.0.0.1:35697/1424 -z "dec 12 11:00:00 1999 GMT" -o log/19/outfile1424 > log/19/stdout1424 2> log/19/stderr1424 === End of file commands.log === Start of file http_server.log 09:41:31.064679 ====> Client connect 09:41:31.065008 accept_connection 3 returned 4 09:41:31.065166 accept_connection 3 returned 0 09:41:31.065294 Read 93 bytes 09:41:31.065388 Process 93 bytes request 09:41:31.065578 Got request: GET /verifiedserver HTTP/1.1 09:41:31.065691 Are-we-friendly question received 09:41:31.065910 Wrote request (93 bytes) input to log/19/server.input 09:41:31.066085 Identifying ourselves as friends 09:41:31.066855 Response sent (56 bytes) and written to log/19/server.response 09:41:31.066963 special request received, no persistency 09:41:31.067030 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file outfile1424 original contents === End of file outfile1424 === Start of file server.cmd Testnum 1424 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind1424 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1424 test 1423...[HTTP GET -o fname without Content-Disposition (empty file)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1423 ../src/curl -q --trace-ascii log/21/trace1423 --trace-config all --trace-time http://127.0.0.1:34827/1423 -o log/21/outfile1423 file:///build/curl/src/build-curl/tests/log/21/outfile1423 > log/21/stdout1423 2> log/21/stderr1423 1423: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 1423 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --toolCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1406 ../src/curl -q --output log/57/curl1406.out --include --trace-ascii log/57/trace1406 --trace-config all --trace-time smtp://127.0.0.1:36183/1406 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/57/test1406.eml --libcurl log/57/test1406.c > log/57/stdout1406 2> log/57/stderr1406 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1469 ../src/curl -q --output log/35/curl1469.out --include --trace-ascii log/35/trace1469 --trace-config all --trace-time "ftp://127.0.0.1:47/1469%/with space/" -T log/35/irrelevant-file > log/35/stdout1469 2> log/35/stderr1469 =memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1423 ../src/curl -q --trace-ascii log/21/trace1423 --trace-config all --trace-time http://127.0.0.1:34827/1423 -o log/21/outfile1423 file:///build/curl/src/build-curl/tests/log/21/outfile1423 > log/21/stdout1423 2> log/21/stderr1423 === End of file commands.log === Start of file http_server.log 09:41:30.977697 ====> Client connect 09:41:30.977978 accept_connection 3 returned 4 09:41:30.978122 accept_connection 3 returned 0 09:41:30.978234 Read 93 bytes 09:41:30.978307 Process 93 bytes request 09:41:30.978378 Got request: GET /verifiedserver HTTP/1.1 09:41:30.978445 Are-we-friendly question received 09:41:30.978775 Wrote request (93 bytes) input to log/21/server.input 09:41:30.978945 Identifying ourselves as friends 09:41:30.979778 Response sent (56 bytes) and written to log/21/server.response 09:41:30.979879 special request received, no persistency 09:41:30.979931 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 1423 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind1423 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1423 test 1422...[HTTP GET with -O -J and Content-Disposition (empty file)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1422 ../src/curl -q --trace-ascii log/23/trace1422 --trace-config all --trace-time http://127.0.0.1:42467/1422 -J -O file:///build/curl/src/build-curl/tests/log/23/name1422 --output-dir log/23 > log/23/stdout1422 2> log/23/stderr1422 1422: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 1422 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1422 ../src/curl -q --trace-ascii log/23/trace1422 --trace-config all --trace-time http://127.0.0.1:42467/1422 -J -O file:///build/curl/src/build-curl/tests/log/23/name1422 --output-dir log/23 > log/23/stdout1422 2> log/23/stderr1422 === End of file commands.log === Start of file http_server.log 09:41:30.973927 ====> Client connect 09:41:30.974291 accept_connection 3 returned 4 09:41:30.974559 accept_connection 3 returned 0 09:41:30.976201 Read 93 bytes 09:41:30.976366 Process 93 bytes request 09:41:30.976640 Got request: GET /verifiedserver HTTP/1.1 09:41:30.976759 Are-we-friendly question received 09:41:30.976993 Wrote request (93 bytes) input to log/23/server.input 09:41:30.977207 Identifying ourselves as friends 09:41:30.977807 Response sent (56 bytes) and written to log/23/server.response 09:41:30.977912 special request received, no persistency 09:41:30.977969 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 1422 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind1422 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1422 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1455 ../src/curl -q --output log/15/curl1455.out --include --trace-ascii log/15/trace1455 --trace-config all --trace-time http://127.0.0.1:35435/1455 --haproxy-protocol -H "Testno: 1455" > log/15/stdout1455 2> log/15/stderr1455 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d /build/curl/src/curl/tests/../docs/cmdline-opts -I /build/curl/src/curl/tests/../include listhelp /build/curl/src/curl/tests/../docs/cmdline-opts/*.md > log/56/stdout1478 2> log/56/stderr1478 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1462 ../src/curl -q --include --trace-ascii log/60/trace1462 --trace-config all --trace-time --help sdfafdsfadsfsd > log/60/stdout1462 2> log/60/stderr1462 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1431 ../src/curl -q --output log/11/curl1431.out --include --trace-ascii log/11/trace1431 --trace-config all --trace-time http://127.0.0.1:32871/1431 > log/11/stdout1431 2> log/11/stderr1431 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1435 ../src/curl -q --output log/49/curl1435.out --include --trace-ascii log/49/trace1435 --trace-config all --trace-time --unix-socket /tmp/curl-http-3yyEMH6l http://server-interpreted.example.com/1435 > log/49/stdout1435 2> log/49/stderr1435 test 1421...[Re-using HTTP proxy connection for two different host names] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1421 ../src/curl -q --include --trace-ascii log/24/trace1421 --trace-config all --trace-time --proxy http://127.0.0.1:39259 http://test.remote.haxx.se.1421:8990/ http://different.remote.haxx.se.1421:8990 > log/24/stdout1421 2> log/24/stderr1421 1421: stdout FAILED: --- log/24/check-expected 2025-07-18 09:41:32.450581988 +0000 +++ log/24/check-generated 2025-07-18 09:41:32.449581989 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 200 OK[LF] -Unknown-header: blrub[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] -HTTP/1.1 200 OK[LF] -Unknown-header: blrub[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] == Contents of files in the log/24/ dir after test 1421 === Start of file check-expected HTTP/1.1 200 OK[LF] Unknown-header: blrub[LF] Content-Length: 6[LF] [LF] -foo-[LF] HTTP/1.1 200 OK[LF] Unknown-header: blrub[LF] Content-Length: 6[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1421 ../src/curl -q --include --trace-ascii log/24/trace1421 --trace-config all --trace-time --proxy http://127.0.0.1:39259 http://test.remote.haxx.se.1421:8990/ http://different.remote.haxx.se.1421:8990 > log/24/stdout1421 2> log/24/stderr1421 === End of file commands.log === Start of file http_server.log 09:41:30.961018 ====> Client connect 09:41:30.961309 accept_connection 3 returned 4 09:41:30.961592 accept_connection 3 returned 0 09:41:30.965292 Read 93 bytes 09:41:30.965543 Process 93 bytes request 09:41:30.965680 Got request: GET /verifiedserver HTTP/1.1 09:41:30.965794 Are-we-friendly question received 09:41:30.966051 Wrote request (93 bytes) input to log/24/server.input 09:41:30.966294 Identifying ourselves as friends 09:41:30.967288 Response sent (56 bytes) and written to log/24/server.response 09:41:30.967401 special request received, no persistency 09:41:30.967559 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1421 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind1421 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1421 prechecked /usr/bin/perl /build/curl/src/curl/tests/libtest/test613.pl prepare /build/curl/src/build-curl/tests/log/27/test1445.dir test 1445...[file:// with --remote-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1445 ../src/curl -q --output log/27/curl1445.out --include --trace-ascii log/27/trace1445 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/27/test1445.dir/plainfile.txt --remote-time > log/27/stdout1445 2> log/27/stderr1445 postcheck /usr/bin/perl /build/curl/src/curl/tests/libtest/test613.pl postprocess /build/curl/src/build-curl/tests/log/27/test1445.dir && \ /usr/bin/perl -e 'exit((stat("log/27/curl1445.out"))[9] != 946728000)' 1445: postcheck FAILED == Contents of files in the log/27/ dir after test 1445 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1445 ../src/curl -q --output log/27/curl1445.out --include --trace-ascii log/27/trace1445 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/27/test1445.dir/plainfile.txt --remote-time > log/27/stdout1445 2> log/27/stderr1445 === End of file commands.log === Start of file server.cmd Testnum 1445 === End of file server.cmd === Start of file valgrind1445 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1445 test 1418...[HTTP with --anyauth and connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1418 ../src/curl -q --output log/28/curl1418.out --include --trace-ascii log/28/trace1418 --trace-config all --trace-time http://127.0.0.1:37545/1418 -u testuser:testpass --anyauth http://127.0.0.1:37545/14180003 > log/28/stdout1418 2> log/28/stderr1418 1418: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 1418 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1457 ../src/curl -q --include --trace-ascii log/51/trace1457 --trace-config all --trace-time http://127.0.0.1:34903/1457 --silent --write-out 'line1%{stderr}line2%{stdout}line3' > log/51/stdout1457 2> log/51/stderr1457 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1420 ../src/curl -q --output log/25/curl1420.out --include --trace-ascii log/25/trace1420 --trace-config all --trace-time 'imap://127.0.0.1:45779/1420/;MAILINDEX=1' -u user:secret --libcurl log/25/test1420.c > log/25/stdout1420 2> log/25/stderr1420 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1449 ../src/curl -q --output log/50/curl1449.out --include --trace-ascii log/50/trace1449 --trace-config all --trace-time ftp://127.0.0.1:36567/1449 -r 36893488147419103232- > log/50/stdout1449 2> log/50/stderr1449 s --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1418 ../src/curl -q --output log/28/curl1418.out --include --trace-ascii log/28/trace1418 --trace-config all --trace-time http://127.0.0.1:37545/1418 -u testuser:testpass --anyauth http://127.0.0.1:37545/14180003 > log/28/stdout1418 2> log/28/stderr1418 === End of file commands.log === Start of file http_server.log 09:41:31.015929 ====> Client connect 09:41:31.016227 accept_connection 3 returned 4 09:41:31.016390 accept_connection 3 returned 0 09:41:31.017077 Read 93 bytes 09:41:31.017215 Process 93 bytes request 09:41:31.017298 Got request: GET /verifiedserver HTTP/1.1 09:41:31.017368 Are-we-friendly question received 09:41:31.017680 Wrote request (93 bytes) input to log/28/server.input 09:41:31.017882 Identifying ourselves as friends 09:41:31.018414 Response sent (56 bytes) and written to log/28/server.response 09:41:31.021669 special request received, no persistency 09:41:31.021762 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1418 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind1418 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1418 test 1417...[HTTP GET with chunked encoding and chunked trailer without CRs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1417 ../src/curl -q --output log/29/curl1417.out --include --trace-ascii log/29/trace1417 --trace-config all --trace-time http://127.0.0.1:36877/1417 -D log/29/heads1417 > log/29/stdout1417 2> log/29/stderr1417 1417: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 1417 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1417 ../src/curl -q --output log/29/curl1417.out --include --trace-ascii log/29/trace1417 --trace-config all --trace-time http://127.0.0.1:36877/1417 -D log/29/heads1417 > log/29/stdout1417 2> log/29/stderr1417 === End of file commands.log === Start of file http_server.log 09:41:31.101761 ====> Client connect 09:41:31.102090 accept_connection 3 returned 4 09:41:31.102245 accept_connection 3 returned 0 09:41:31.102641 Read 93 bytes 09:41:31.102747 Process 93 bytes request 09:41:31.102823 Got request: GET /verifiedserver HTTP/1.1 09:41:31.102892 Are-we-friendly question received 09:41:31.103090 Wrote request (93 bytes) input to log/29/server.input 09:41:31.103255 Identifying ourselves as friends 09:41:31.103979 Response sent (56 bytes) and written to log/29/server.response 09:41:31.104089 special request received, no persistency 09:41:31.104148 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd Testnum 1417 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind1417 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1417 test 1444...[FTP with --remote-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1444 ../src/curl -q --output log/30/curl1444.out --include --trace-ascii log/30/trace1444 --trace-config all --trace-time ftp://127.0.0.1:42901/1444 --remote-time > log/30/stdout1444 2> log/30/stderr1444 postcheck /usr/bin/perl -e 'exit((stat("log/30/curl1444.out"))[9] != 1234567890)' 1444: postcheck FAILED == Contents of files in the log/30/ dir after test 1444 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1444 ../src/curl -q --output log/30/curl1444.out --include --trace-ascii log/30/trace1444 --trace-config all --trace-time ftp://127.0.0.1:42901/1444 --remote-time > log/30/stdout1444 2> log/30/stderr1444 === End of file commands.log === Start of file ftp_server.log 0CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1474 ../src/curl -q --output log/16/curl1474.out --include --trace-ascii log/16/trace1474 --trace-config all --trace-time --proto -all http://127.0.0.1:47/1474 > log/16/stdout1474 2> log/16/stderr1474 9:41:30.899102 ====> Client connect 09:41:30.900394 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:30.903157 < "USER anonymous" 09:41:30.903888 > "331 We are happy you popped in![CR][LF]" 09:41:30.909996 < "PASS ftp@example.com" 09:41:30.910387 > "230 Welcome you silly person[CR][LF]" 09:41:30.919411 < "PWD" 09:41:30.920010 > "257 "/" is current directory[CR][LF]" 09:41:30.926118 < "EPSV" 09:41:30.926398 ====> Passive DATA channel requested by client 09:41:30.926584 DATA sockfilt for passive data channel starting... 09:41:30.956362 DATA sockfilt for passive data channel started (pid 147036) 09:41:30.959421 DATA sockfilt for passive data channel listens on port 41585 09:41:30.959891 > "229 Entering Passive Mode (|||41585|)[LF]" 09:41:30.960370 Client has been notified that DATA conn will be accepted on port 41585 09:41:30.968708 Client connects to port 41585 09:41:30.969539 ====> Client established passive DATA connection on port 41585 09:41:30.971208 < "TYPE I" 09:41:30.976552 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:30.977365 < "SIZE verifiedserver" 09:41:30.981920 > "213 17[CR][LF]" 09:41:30.987490 < "RETR verifiedserver" 09:41:30.989930 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:30.990602 =====> Closing passive DATA connection... 09:41:30.990869 Server disconnects passive DATA connection 09:41:30.993410 Server disconnected passive DATA connection 09:41:30.993668 DATA sockfilt for passive data channel quits (pid 147036) 09:41:30.997294 DATA sockfilt for passive data channel quit (pid 147036) 09:41:30.997509 =====> Closed passive DATA connection 09:41:30.999944 > "226 File transfer complete[CR][LF]" 09:41:31.034509 < "QUIT" 09:41:31.036329 > "221 bye bye baby[CR][LF]" 09:41:31.039811 MAIN sockfilt said DISC 09:41:31.041064 ====> Client disconnected 09:41:31.041578 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:30.148001 ====> Client connect 09:41:30.154595 Received DATA (on stdin) 09:41:30.154766 > 160 bytes data, server => client 09:41:30.154896 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:30.154995 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:30.155072 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:30.155857 < 16 bytes data, client => server 09:41:30.155994 'USER anonymous\r\n' 09:41:30.157217 Received DATA (on stdin) 09:41:30.157341 > 33 bytes data, server => client 09:41:30.159394 '331 We are happy you popped in!\r\n' 09:41:30.161898 < 22 bytes data, client => server 09:41:30.162054 'PASS ftp@example.com\r\n' 09:41:30.166737 Received DATA (on stdin) 09:41:30.166913 > 30 bytes data, server => client 09:41:30.166994 '230 Welcome you silly person\r\n' 09:41:30.167825 < 5 bytes data, client => server 09:41:30.168023 'PWD\r\n' 09:41:30.175583 Received DATA (on stdin) 09:41:30.175738 > 30 bytes data, server => client 09:41:30.175846 '257 "/" is current directory\r\n' 09:41:30.176886 < 6 bytes data, client => server 09:41:30.177095 'EPSV\r\n' 09:41:30.214698 Received DATA (on stdin) 09:41:30.215136 > 38 bytes data, server => client 09:41:30.215332 '229 Entering Passive Mode (|||41585|)\n' 09:41:30.221677 < 8 bytes data, client => server 09:41:30.221836 'TYPE I\r\n' 09:41:30.228577 Received DATA (on stdin) 09:41:30.228743 > 33 bytes data, server => client 09:41:30.228979 '200 I modify TYPE as you wanted\r\n' 09:41:30.229793 < 21 bytes data, client => server 09:41:30.229945 'SIZE verifiedserver\r\n' 09:41:30.231629 Received DATA (on stdin) 09:41:30.231769 > 8 bytes data, server => client 09:41:30.239575 '213 17\r\n' 09:41:30.240392 < 21 bytes data, client => server 09:41:30.240610 'RETR verifiedserver\r\n' 09:41:30.241668 Received DATA (on stdin) 09:41:30.241807 > 29 bytes data, server => client 09:41:30.244851 '150 Binary junk (17 bytes).\r\n' 09:41:30.251454 Received DATA (on stdin) 09:41:30.251643 > 28 bytes data, server => client 09:41:30.253966 '226 File transfer complete\r\n' 09:41:30.287305 < 6 bytes data, client => server 09:41:30.287583 'QUIT\r\n' 09:41:30.289691 Received DATA (on stdin) 09:41:30.289845 > 18 bytes data, server => client 09:41:30.290413 '221 bye bye baby\r\n' 09:41:30.292585 ====> Client disconnect 09:41:30.293853 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:30.207619 Running IPv4 version 09:41:30.208192 Listening on port 41585 09:41:30.209691 Wrote pid 147036 to log/30/server/ftp_sockdata.pid 09:41:30.209848 Received PING (on stdin) 09:41:30.212568 Received PORT (on stdin) 09:41:30.220556 ====> Client connect 09:41:30.245232 Received DATA (on stdin) 09:41:30.245389 > 17 bytes data, server => client 09:41:30.245535 'WE ROOLZ: 77429\r\n' 09:41:30.245853 Received DISC (on stdin) 09:41:30.246024 ====> Client forcibly disconnected 09:41:30.249569 Received QUIT (on stdin) 09:41:30.249712 quits 09:41:30.250113 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1444 === End of file server.cmd === Start of file valgrind1444 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1444 test 1443...[HTTP GET with -O and --remote-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1443 ../src/curl -q --trace-ascii log/33/trace1443 --trace-config all --trace-time http://127.0.0.1:36559/1443 -O --remote-time --output-dir log/33 > log/33/stdout1443 2> log/33/stderr1443 postcheck /usr/bin/perl -e 'exit((stat("log/33/1443"))[9] != 960898200)' 1443: postcheck FAILED == Contents of files in the log/33/ dir after test 1443 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1443 ../src/curl -q --trace-ascii log/33/trace1443 --trace-config all --trace-time http://127.0.0.1:36559/1443 -O --remote-time --output-dir log/33 > log/33/stdout1443 2> log/33/stderr1443 === End of file commands.log === Start of file http_server.log 09:41:31.324451 ====> Client connect 09:41:31.325125 accept_connection 3 returned 4 09:41:31.325433 accept_connection 3 returned 0 09:41:31.325762 Read 93 bytes 09:41:31.325883 Process 93 bytes request 09:41:31.326071 Got request: GET /verifiedserver HTTP/1.1 09:41:31.326276 Are-we-friendly question received 09:41:31.326934 Wrote request (93 bytes) input to log/33/server.input 09:41:31.327230 Identifying ourselves as friends 0CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1464 ../src/curl -q --include --trace-ascii log/40/trace1464 --trace-config all --trace-time --help fIlE > log/40/stdout1464 2> log/40/stderr1464 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1471 ../src/curl -q --output log/53/curl1471.out --include --trace-ascii log/53/trace1471 --trace-config all --trace-time red.onion > log/53/stdout1471 2> log/53/stderr1471 9:41:31.327993 Response sent (56 bytes) and written to log/33/server.response 09:41:31.328093 special request received, no persistency 09:41:31.328164 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 1443 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind1443 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1443 setenv SSL_CERT_FILE = test 1403...[--libcurl for GET with query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1403 ../src/curl -q --output log/39/curl1403.out --include --trace-ascii log/39/trace1403 --trace-config all --trace-time http://127.0.0.1:42899/we/want/1403 --libcurl log/39/test1403.c -G -d "foo=bar" -d "baz=quux" > log/39/stdout1403 2> log/39/stderr1403 1403: protocol FAILED! There was no content at all in the file log/39/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/39/ dir after test 1403 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/39/valgrind1403 ../src/curl -q --output log/39/curl1403.out --include --trace-ascii log/39/trace1403 --trace-config all --trace-time http://127.0.0.1:42899/we/want/1403 --libcurl log/39/test1403.c -G -d "foo=bar" -d "baz=quux" > log/39/stdout1403 2> log/39/stderr1403 === End of file commands.log === Start of file http_server.log 09:41:30.427221 ====> Client connect 09:41:30.427830 accept_connection 3 returned 4 09:41:30.428024 accept_connection 3 returned 0 09:41:30.428873 Read 93 bytes 09:41:30.429022 Process 93 bytes request 09:41:30.429110 Got request: GET /verifiedserver HTTP/1.1 09:41:30.429179 Are-we-friendly question received 09:41:30.429402 Wrote request (93 bytes) input to log/39/server.input 09:41:30.429743 Identifying ourselves as friends 09:41:30.430289 Response sent (56 bytes) and written to log/39/server.response 09:41:30.430400 special request received, no persistency 09:41:30.433593 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42899... * Connected to 127.0.0.1 (127.0.0.1) port 42899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42899 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73769 === End of file http_verify.out === Start of file server.cmd Testnum 1403 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73769 === End of file server.response === Start of file valgrind1403 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1403 setenv TZ = GMT test 1415...[Delete expired cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1415 ../src/curl -q --output log/46/curl1415.out --include --trace-ascii log/46/trace1415 --trace-config all --trace-time http://example.com/we/want/1415 -b none -c log/46/jar1415.txt -x 127.0.0.1:46523 > log/46/stdout1415 2> log/46/stderr1415 1415: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 1415 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1415 ../src/curl -q --output log/46/curl1415.out --include --trace-ascii log/46/trace1415 --trace-config all --trace-time http://example.com/we/want/1415 -b none -c log/46/jar1415.txt -x 127.0.0.1:46523 > log/46/stdout1415 2> log/46/stderr1415 === End of file commands.log === Start of file http_server.log 09:41:30.950365 ====> Client connect 09:41:30.950924 accept_connection 3 returned 4 09:41:30.951131 accept_connection 3 returned 0 09:41:30.957790 Read 93 bytes 09:41:30.958059 Process 93 bytes request 09:41:30.958181 Got request: GET /verifiedserver HTTP/1.1 09:41:30.958314 Are-we-friendly question received 09:41:30.958692 Wrote request (93 bytes) input to log/46/server.input 09:41:30.958922 Identifying ourselves as friends 09:41:30.959855 Response sent (56 bytes) and written to log/46/server.response 09:41:30.969675 special request received, no persistency 09:41:30.969797 ====> Client disconnect 0 === End of file http_server.log === Start of file httpCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1458 ../src/curl -q --output log/43/curl1458.out --include --trace-ascii log/43/trace1458 --trace-config all --trace-time --resolve *:41267:127.0.0.1 http://example.com:41267/1458 > log/43/stdout1458 2> log/43/stderr1458 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1472 ../src/curl -q --output log/42/curl1472.out --include --trace-ascii log/42/trace1472 --trace-config all --trace-time tasty.onion. > log/42/stdout1472 2> log/42/stderr1472 _verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 1415 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind1415 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1415 setenv SSL_CERT_FILE = test 1407...[--libcurl for POP3 LIST one message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1407 ../src/curl -q --output log/61/curl1407.out --include --trace-ascii log/61/trace1407 --trace-config all --trace-time pop3://127.0.0.1:42871/1407 -l -u user:secret --libcurl log/61/test1407.c > log/61/stdout1407 2> log/61/stderr1407 1407: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1407 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1407 ../src/curl -q --output log/61/curl1407.out --include --trace-ascii log/61/trace1407 --trace-config all --trace-time pop3://127.0.0.1:42871/1407 -l -u user:secret --libcurl log/61/test1407.c > log/61/stdout1407 2> log/61/stderr1407 === End of file commands.log === Start of file pop3_server.log 09:41:30.320409 ====> Client connect 09:41:30.321910 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 09:41:30.325870 < "CAPA" 09:41:30.326964 > "-ERR Unrecognized command[CR][LF]" 09:41:30.328861 < "RETR verifiedserver" 09:41:30.329199 return proof we are we 09:41:30.329488 > "+OK Mail transfer starts[CR][LF]" 09:41:30.329844 > "WE ROOLZ: 140790[CR][LF]" 09:41:30.330459 > ".[CR][LF]" 09:41:30.375868 < "QUIT" 09:41:30.376369 > "+OK curl POP3 server signing off[CR][LF]" 09:41:30.381923 MAIN sockfilt said DISC 09:41:30.382388 ====> Client disconnected 09:41:30.383038 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 09:41:30.573267 ====> Client connect 09:41:30.576034 Received DATA (on stdin) 09:41:30.576194 > 178 bytes data, server => client 09:41:30.576307 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 09:41:30.576413 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 09:41:30.576728 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 09:41:30.576977 've \r\n' 09:41:30.578383 < 6 bytes data, client => server 09:41:30.578590 'CAPA\r\n' 09:41:30.580023 Received DATA (on stdin) 09:41:30.580165 > 27 bytes data, server => client 09:41:30.580336 '-ERR Unrecognized command\r\n' 09:41:30.581688 < 21 bytes data, client => server 09:41:30.581831 'RETR verifiedserver\r\n' 09:41:30.584700 Received DATA (on stdin) 09:41:30.584965 > 26 bytes data, server => client 09:41:30.585054 '+OK Mail transfer starts\r\n' 09:41:30.585453 Received DATA (on stdin) 09:41:30.585659 > 18 bytes data, server => client 09:41:30.585737 'WE ROOLZ: 140790\r\n' 09:41:30.585851 Received DATA (on stdin) 09:41:30.585957 > 3 bytes data, server => client 09:41:30.586045 '.\r\n' 09:41:30.627398 < 6 bytes data, client => server 09:41:30.627641 'QUIT\r\n' 09:41:30.631594 Received DATA (on stdin) 09:41:30.631761 > 34 bytes data, server => client 09:41:30.631856 '+OK curl POP3 server signing off\r\n' 09:41:30.632917 ====> Client disconnect 09:41:30.638634 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY LIST +OK 1407 100\r\n. Testnum 1407 === End of file server.cmd === Start of file valgrind1407 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1407 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1466 ../src/curl -q --output log/36/curl1466.out --include --trace-ascii log/36/trace1466 --trace-config all --trace-time http://127.0.0.1:44255/1466 > log/36/stdout1466 2> log/36/stderr1466 test 1438...[Check if %{scheme} returns HTTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1438 ../src/curl -q --include --trace-ascii log/4/trace1438 --trace-config all --trace-time http://127.0.0.1:43013/1438 --write-out '%{scheme}' > log/4/stdout1438 2> log/4/stderr1438 1438: stdout FAILED: --- log/4/check-expected 2025-07-18 09:41:32.638579953 +0000 +++ log/4/check-generated 2025-07-18 09:41:32.637581894 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -http == Contents of files in the log/4/ dir after test 1438 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] http === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1438 ../src/curl -q --include --trace-ascii log/4/trace1438 --trace-config all --trace-time http://127.0.0.1:43013/1438 --write-out '%{scheme}' > log/4/stdout1438 2> log/4/stderr1438 === End of file commands.log === Start of file http_server.log 09:41:31.305451 ====> Client connect 09:41:31.306055 accept_connection 3 returned 4 09:41:31.306220 accept_connection 3 returned 0 09:41:31.306355 Read 93 bytes 09:41:31.306455 Process 93 bytes request 09:41:31.306701 Got request: GET /verifiedserver HTTP/1.1 09:41:31.306776 Are-we-friendly question received 09:41:31.306987 Wrote request (93 bytes) input to log/4/server.input 09:41:31.307173 Identifying ourselves as friends 09:41:31.307907 Response sent (56 bytes) and written to log/4/server.response 09:41:31.308023 special request received, no persistency 09:41:31.308093 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 1438 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind1438 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1438 test 1434...[HTTP GET resume at exactly the existing file size is fine] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1434 ../src/curl -q --output log/7/curl1434.out --include --trace-ascii log/7/trace1434 --trace-config all --trace-time http://127.0.0.1:44647/1434 -C 100 > log/7/stdout1434 2> log/7/stderr1434 1434: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1434 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1434 ../src/curl -q --output log/7/curl1434.out --include --trace-ascii log/7/trace1434 --trace-config all --trace-time http://127.0.0.1:44647/1434 -C 100 > log/7/stdout1434 2> log/7/stderr1434 === End of file commands.log === Start of file curl1434.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1434.out === Start of file http_server.log 09:41:31.153382 ====> Client connect 09:41:31.153791 accept_connection 3 returned 4 09:41:31.154574 accept_connection 3 returned 0 09:41:31.154747 Read 93 bytes 09:41:31.154822 Process 93 bytes request 09:41:31.154903 Got request: GET /verifiedserver HTTP/1.1 09:41:31.154992 Are-we-friendly question received 09:41:31.155202 Wrote request (93 bytes) input to log/7/server.input 09:41:31.155405 Identifying ourselves as friends 09:41:31.156119 Response sent (56 bytes) and written to log/7/server.response 09:41:31.156216 special request received, no persistency 09:41:31.156273 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 1434 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind1434 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1434 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/11/server/http_server.pid" --logfile "log/11/http_server.log" --logdir "log/11" --portfile log/11/server/http_server.port --config log/11/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 146188 port 32871 * pid http => 146188 146188 test 1431...[HTTP GET with single-digit response code] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1431 ../src/curl -q --output log/11/curl1431.out --include --trace-ascii log/11/trace1431 --trace-config all --trace-time http://127.0.0.1:32871/1431 > log/11/stdout1431 2> log/11/stderr1431 1431: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 1431 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1431 ../src/curl -q --output log/11/curl1431.out --include --trace-ascii log/11/trace1431 --trace-config all --trace-time http://127.0.0.1:32871/1431 > log/11/stdout1431 2> log/11/stderr1431 === End of file commands.log === Start of file http_server.log 09:41:30.989252 Running HTTP IPv4 version on port 32871 09:41:30.990060 Wrote pid 146188 to log/11/server/http_server.pid 09:41:30.990397 Wrote port 32871 to log/11/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 1431 === End of file server.cmd === Start of file valgrind1431 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1431 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1436 ../src/curl -q --include --trace-ascii log/6/trace1436 --trace-config all --trace-time --unix-socket /tmp/curl-http-J7Psfndy http://one.example.com/14360001 http://two.example.com/14360002 http://one.example.com/14360003 > log/6/stdout1436 2> log/6/stderr1436 test 1429...[HTTP GET with 999 response code] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1429 ../src/curl -q --include --trace-ascii log/13/trace1429 --trace-config all --trace-time http://127.0.0.1:44087/1429 --write-out '%{response_code}' > log/13/stdout1429 2> log/13/stderr1429 1429: stdout FAILED: --- log/13/check-expected 2025-07-18 09:41:32.727400868 +0000 +++ log/13/check-generated 2025-07-18 09:41:32.725581849 +0000 @@ -1,13 +0,0 @@ -HTTP/1.1 999 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] --foo-[LF] -999 == Contents of files in the log/13/ dir after test 1429 === Start of file check-expected HTTP/1.1 999 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] -foo-[LF] 999 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1429 ../src/curl -q --include --trace-ascii log/13/trace1429 --trace-config all --trace-time http://127.0.0.1:44087/1429 --write-out '%{response_code}' > log/13/stdout1429 2> log/13/stderr1429 === End of file commands.log === Start of file http_server.log 09:41:31.132912 ====> Client connect 09:41:31.133203 accept_connection 3 returned 4 09:41:31.133367 accept_connection 3 returned 0 09:41:31.135785 Read 93 bytes 09:41:31.136081 Process 93 bytes request 09:41:31.136203 Got request: GET /verifiedserver HTTP/1.1 09:41:31.136307 Are-we-friendly question received 09:41:31.136732 Wrote request (93 bytes) input to log/13/server.input 09:41:31.136944 Identifying ourselves as friends 09:41:31.141035 Response sent (56 bytes) and written to log/13/server.response 09:41:31.141299 special request received, no persistency 09:41:31.141378 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 1429 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file valgrind1429 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1429 test 1455...[HTTP GET when PROXY Protocol enabled] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1455 ../src/curl -q --output log/15/curl1455.out --include --trace-ascii log/15/trace1455 --trace-config all --trace-time http://127.0.0.1:35435/1455 --haproxy-protocol -H "Testno: 1455" > log/15/stdout1455 2> log/15/stderr1455 1455: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 1455 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1455 ../src/curl -q --output log/15/curl1455.out --include --trace-ascii log/15/trace1455 --trace-config all --trace-time http://127.0.0.1:35435/1455 --haproxy-protocol -H "Testno: 1455" > log/15/stdout1455 2> log/15/stderr1455 === End of file commands.log === Start of file http_server.log 09:41:31.454416 ====> Client connect 09:41:31.455444 accept_connection 3 returned 4 09:41:31.455818 accept_connection 3 returned 0 09:41:31.456061 Read 93 bytes 09:41:31.456360 Process 93 bytes request 09:41:31.456448 Got request: GET /verifiedserver HTTP/1.1 09:41:31.460010 Are-we-friendly question received 09:41:31.460307 Wrote request (93 bytes) input to log/15/server.input 09:41:31.461663 Identifying ourselves as friends 09:41:31.462716 Response sent (56 bytes) and written to log/15/server.response 09:41:31.462843 special request received, no persistency 09:41:31.462914 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 1455 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file valgrind1455 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1)CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1428 ../src/curl -q --output log/48/curl1428.out --include --trace-ascii log/48/trace1428 --trace-config all --trace-time http://test.1428:46339/we/want/that/page/1428 -p -x 127.0.0.1:41291 --user 'iam:my:;self' --header "header-type: server" --proxy-header "header-type: proxy" > log/48/stdout1428 2> log/48/stderr1428 is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1455 * starts no server test 1474...[--proto -all disables all protocols] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1474 ../src/curl -q --output log/16/curl1474.out --include --trace-ascii log/16/trace1474 --trace-config all --trace-time --proto -all http://127.0.0.1:47/1474 > log/16/stdout1474 2> log/16/stderr1474 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/16/ dir after test 1474 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1474 ../src/curl -q --output log/16/curl1474.out --include --trace-ascii log/16/trace1474 --trace-config all --trace-time --proto -all http://127.0.0.1:47/1474 > log/16/stdout1474 2> log/16/stderr1474 === End of file commands.log === Start of file server.cmd Testnum 1474 === End of file server.cmd === Start of file valgrind1474 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1474 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/25/server/imap_server.pid" --logfile "log/25/imap_server.log" --logdir "log/25" --portfile "log/25/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45779 (log/25/server/imap_server.port) RUN: IMAP server is PID 145999 port 45779 * pid imap => 145999 145999 setenv SSL_CERT_FILE = test 1420...[--libcurl for IMAP FETCH message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1420 ../src/curl -q --output log/25/curl1420.out --include --trace-ascii log/25/trace1420 --trace-config all --trace-time 'imap://127.0.0.1:45779/1420/;MAILINDEX=1' -u user:secret --libcurl log/25/test1420.c > log/25/stdout1420 2> log/25/stderr1420 1420: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 1420 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1420 ../src/curl -q --output log/25/curl1420.out --include --trace-ascii log/25/trace1420 --trace-config all --trace-time 'imap://127.0.0.1:45779/1420/;MAILINDEX=1' -u user:secret --libcurl log/25/test1420.c > log/25/stdout1420 2> log/25/stderr1420 === End of file commands.log === Start of file imap_server.log 09:41:30.830723 IMAP server listens on port IPv4/45779 09:41:30.831614 logged pid 145999 in log/25/server/imap_server.pid 09:41:30.831961 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:30.082242 Running IPv4 version 09:41:30.082825 Listening on port 45779 09:41:30.083190 Wrote pid 146846 to log/25/server/imap_sockfilt.pid 09:41:30.083592 Wrote port 45779 to log/25/server/imap_server.port 09:41:30.083846 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1420 === End of file server.cmd === Start of file valgrind1420 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1420 * starts no server test 1469...[Space in FTP upload URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1469 ../src/curl -q --output log/35/curl1469.out --include --trace-ascii log/35/trace1469 --trace-config all --trace-time "ftp://127.0.0.1:47/1469%/with space/" -T log/35/irrelevant-file > log/35/stdout1469 2> log/35/stderr1469 curl returned 1, when expecting 3 1469: exit FAILED == Contents of files in the log/35/ dir after test 1469 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1469 ../src/curl -q --output log/35/curl1469.out --include --trace-ascii log/35/trace1469 --trace-config all --trace-time "ftp://127.0.0.1:47/1469%/with space/" -T log/35/irrelevant-file > log/35/stdout1469 2> log/35/stderr1469 === End of file commands.log === Start of file server.cmd Testnum 1469 === End of file server.cmd === Start of file valgrind1469 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1469 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1465 ../src/curl -q --output log/64/curl1465.out --include --trace-ascii log/64/trace1465 --trace-config all --trace-time http://127.0.0.1:33073/we/want/1465 --libcurl log/64/test1465.c --data-binary @log/64/1465-upload > log/64/stdout1465 2> log/64/stderr1465 * starts no server test 1464...[curl file category --help with lower/upper mix] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1464 ../src/curl -q --include --trace-ascii log/40/trace1464 --trace-config all --trace-time --help fIlE > log/40/stdout1464 2> log/40/stderr1464 1464: stdout FAILED: --- log/40/check-expected 2025-07-18 09:41:32.856161323 +0000 +++ log/40/check-generated 2025-07-18 09:41:32.854581784 +0000 @@ -1,5 +0,0 @@ -file: FILE protocol[CR][LF] - --create-file-mode File mode for created files[CR][LF] - -I, --head Show document info only[CR][LF] - -l, --list-only List only mode[CR][LF] - -r, --range Retrieve only the bytes within RANGE[CR][LF] == Contents of files in the log/40/ dir after test 1464 === Start of file check-expected file: FILE protocol[CR][LF] --create-file-mode File mode for created files[CR][LF] -I, --head Show document info only[CR][LF] -l, --list-only List only mode[CR][LF] -r, --range Retrieve only the bytes within RANGE[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1464 ../src/curl -q --include --trace-ascii log/40/trace1464 --trace-config all --trace-time --help fIlE > log/40/stdout1464 2> log/40/stderr1464 === End of file commands.log === Start of file server.cmd Testnum 1464 === End of file server.cmd === Start of file valgrind1464 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1464 * starts no server test 1463...[curl file category --help] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1463 ../src/curl -q --include --trace-ascii log/44/trace1463 --trace-config all --trace-time --help file > log/44/stdout1463 2> log/44/stderr1463 1463: stdout FAILED: --- log/44/check-expected 2025-07-18 09:41:32.908360457 +0000 +++ log/44/check-generated 2025-07-18 09:41:32.907581757 +0000 @@ -1,5 +0,0 @@ -file: FILE protocol[CR][LF] - --create-file-mode File mode for created files[CR][LF] - -I, --head Show document info only[CR][LF] - -l, --list-only List only mode[CR][LF] - -r, --range Retrieve only the bytes within RANGE[CR][LF] == Contents of files in the log/44/ dir after test 1463 === Start of file check-expected file: FILE protocol[CR][LF] --create-file-mode File mode for created files[CR][LF] -I, --head Show document info only[CR][LF] -l, --list-only List only mode[CR][LF] -r, --range Retrieve only the bytes within RANGE[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1463 ../src/curl -q --include --trace-ascii log/44/trace1463 --trace-config all --trace-time --help file > log/44/stdout1463 2> log/44/stderr1463 === End of file commands.log === Start of file server.cmd Testnum 1463 === End of file server.cmd === Start of file valgrind1463 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1463 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/47/server/http_ipv6_server.pid" --logfile "log/47/http_ipv6_server.log" --logdir "log/47" --portfile log/47/server/http_ipv6_server.port --config log/47/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 145628 port 45391 * pid http-ipv6 => 145628 145628 test 1408...[HTTP receive cookies over IPV6] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1408 ../src/curl -q --output log/47/curl1408.out --include --trace-ascii log/47/trace1408 --trace-config all --trace-time -c log/47/jar1408 -g http://[::1]:45391/path/14080001 http://[::1]:45391/path/14080002 > log/47/stdout1408 2> log/47/stderr1408 1408: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1408 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1408 ../src/curl -q --output log/47/curl1408.out --include --trace-ascii log/47/trace1408 --trace-config all --trace-time -c log/47/jar1408 -g http://[::1]:45391/path/14080001 http://[::1]:45391/path/14080002 > log/47/stdout1408 2> log/47/stderr1408 === End of file commands.log === Start of file http_ipv6_server.log 09:41:30.682176 Running HTTP IPv6 version on port 45391 09:41:30.682950 Wrote pid 145628 to log/47/server/http_ipv6_server.pid 09:41:30.683272 Wrote port 45391 to log/47/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1408 === End of file server.cmd === Start of file valgrind1408 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1408 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/49/server/http_unix_server.pid" --logfile "log/49/http_unix_server.log" --logdir "log/49" --portfile log/49/server/http_unix_server.port --config log/49/server.cmd --unix-socket '/tmp/curl-http-3yyEMH6l' --srcdir "/build/curl/src/curl/tests" RUN: HTTP-unix server is on PID 146327 port 8999 * pid http-unix => 146327 146327 test 1435...[simple HTTP GET over Unix socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1435 ../src/curl -q --output log/49/curl1435.out --include --trace-ascii log/49/trace1435 --trace-config all --trace-time --unix-socket /tmp/curl-http-3yyEMH6l http://server-interpreted.example.com/1435 > log/49/stdout1435 2> log/49/stderr1435 1435: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 1435 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1435 ../src/curl -q --output log/49/curl1435.out --include --trace-ascii log/49/trace1435 --trace-config all --trace-time --unix-socket /tmp/curl-http-3yyEMH6l http://server-interpreted.example.com/1435 > log/49/stdout1435 2> log/49/stderr1435 === End of file commands.log === Start of file hCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1476 ../src/curl -q --output log/18/curl1476.out --include --trace-ascii log/18/trace1476 --trace-config all --trace-time -x http://127.0.0.1:41285/1476 http://curl.co.UK -c log/18/cookies1476.txt > log/18/stdout1476 2> log/18/stderr1476 ttp_unix_server.log 09:41:31.262186 Running HTTP unix version on /tmp/curl-http-3yyEMH6l 09:41:31.266338 Wrote pid 146327 to log/49/server/http_unix_server.pid 09:41:31.266880 Wrote port 8999 to log/49/server/http_unix_server.port === End of file http_unix_server.log === Start of file server.cmd Testnum 1435 === End of file server.cmd === Start of file valgrind1435 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1435 test 1449...[FTP download range with integer overflow] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1449 ../src/curl -q --output log/50/curl1449.out --include --trace-ascii log/50/trace1449 --trace-config all --trace-time ftp://127.0.0.1:36567/1449 -r 36893488147419103232- > log/50/stdout1449 2> log/50/stderr1449 1449: protocol FAILED! There was no content at all in the file log/50/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/50/ dir after test 1449 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1449 ../src/curl -q --output log/50/curl1449.out --include --trace-ascii log/50/trace1449 --trace-config all --trace-time ftp://127.0.0.1:36567/1449 -r 36893488147419103232- > log/50/stdout1449 2> log/50/stderr1449 === End of file commands.log === Start of file ftp_server.log 09:41:31.152656 ====> Client connect 09:41:31.154220 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:31.157563 < "USER anonymous" 09:41:31.159235 > "331 We are happy you popped in![CR][LF]" 09:41:31.161062 < "PASS ftp@example.com" 09:41:31.161472 > "230 Welcome you silly person[CR][LF]" 09:41:31.163934 < "PWD" 09:41:31.166914 > "257 "/" is current directory[CR][LF]" 09:41:31.169356 < "EPSV" 09:41:31.172060 ====> Passive DATA channel requested by client 09:41:31.172307 DATA sockfilt for passive data channel starting... 09:41:31.201160 DATA sockfilt for passive data channel started (pid 147495) 09:41:31.206911 DATA sockfilt for passive data channel listens on port 44575 09:41:31.207806 > "229 Entering Passive Mode (|||44575|)[LF]" 09:41:31.208690 Client has been notified that DATA conn will be accepted on port 44575 09:41:31.227978 Client connects to port 44575 09:41:31.228347 ====> Client established passive DATA connection on port 44575 09:41:31.229312 < "TYPE I" 09:41:31.229821 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:31.237381 < "SIZE verifiedserver" 09:41:31.238336 > "213 17[CR][LF]" 09:41:31.243711 < "RETR verifiedserver" 09:41:31.246010 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:31.246861 =====> Closing passive DATA connection... 09:41:31.247106 Server disconnects passive DATA connection 09:41:31.253967 Server disconnected passive DATA connection 09:41:31.254287 DATA sockfilt for passive data channel quits (pid 147495) 09:41:31.261257 DATA sockfilt for passive data channel quit (pid 147495) 09:41:31.261516 =====> Closed passive DATA connection 09:41:31.265900 > "226 File transfer complete[CR][LF]" 09:41:31.297565 < "QUIT" 09:41:31.298077 > "221 bye bye baby[CR][LF]" 09:41:31.308917 MAIN sockfilt said DISC 09:41:31.309310 ====> Client disconnected 09:41:31.309877 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:31.401363 ====> Client connect 09:41:31.407934 Received DATA (on stdin) 09:41:31.408112 > 160 bytes data, server => client 09:41:31.408226 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:31.408336 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:31.408425 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:31.409236 < 16 bytes data, client => server 09:41:31.409377 'USER anonymous\r\n' 09:41:31.412991 Received DATA (on stdin) 09:41:31.413199 > 33 bytes data, server => client 09:41:31.413349 '331 We are happy you popped in!\r\n' 09:41:31.414172 < 22 bytes data, client => server 09:41:31.414326 'PASS ftp@example.com\r\n' 09:41:31.415247 Received DATA (on stdin) 09:41:31.415411 > 30 bytes data, server => client 09:41:31.415593 '230 Welcome you silly person\r\n' 09:41:31.416281 < 5 bytes data, client => server 09:41:31.416448 'PWD\r\n' 09:41:31.419638 Received DATA (on stdin) 09:41:31.419822 > 30 bytes data, server => client 09:41:31.420030 '257 "/" is current directory\r\n' 09:41:31.421171 < 6 bytes data, client => server 09:41:31.421316 'EPSV\r\n' 09:41:31.469864 Received DATA (on stdin) 09:41:31.470097 > 38 bytes data, server => client 09:41:31.470388 '229 Entering Passive Mode (|||44575|)\n' 09:41:31.477697 < 8 bytes data, client => server 09:41:31.477942 'TYPE I\r\n' 09:41:31.487987 Received DATA (on stdin) 09:41:31.488168 > 33 bytes data, server => client 09:41:31.488270 '200 I modify TYPE as you wanted\r\n' 09:41:31.489073 < 21 bytes data, client => server 09:41:31.489224 'SIZE verifiedserver\r\n' 09:41:31.491547 Received DATA (on stdin) 09:41:31.491693 > 8 bytes data, server => client 09:41:31.495703 '213 17\r\n' 09:41:31.496643 < 21 bytes data, client => server 09:41:31.496795 'RETR verifiedserver\r\n' 09:41:31.497939 Received DATA (on stdin) 09:41:31.498086 > 29 bytes data, server => client 09:41:31.503671 '150 Binary junk (17 bytes).\r\n' 09:41:31.515704 Received DATA (on stdin) 09:41:31.515947 > 28 bytes data, server => client 09:41:31.516126 '226 File transfer complete\r\n' 09:41:31.550328 < 6 bytes data, client => server 09:41:31.550611 'QUIT\r\n' 09:41:31.553718 Received DATA (on stdin) 09:41:31.553888 > 18 bytes data, server => client 09:41:31.553975 '221 bye bye baby\r\n' 09:41:31.556662 ====> Client disconnect 09:41:31.565615 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:31.449279 Running IPv4 version 09:41:31.450009 Listening on port 44575 09:41:31.450604 Wrote pid 147495 to log/50/server/ftp_sockdata.pid 09:41:31.453301 Received PING (on stdin) 09:41:31.455810 Received PORT (on stdin) 09:41:31.478685 ====> Client connect 09:41:31.500246 Received DATA (on stdin) 09:41:31.500431 > 17 bytes data, server => client 09:41:31.500614 'WE ROOLZ: 77995\r\n' 09:41:31.501078 Received DISC (on stdin) 09:41:31.501255 ====> Client forcibly disconnected 09:41:31.509695 Received QUIT (on stdin) 09:41:31.509907 quits 09:41:31.510405 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1449 === End of file server.cmd === Start of file valgrind1449 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1449 test 1457...[Check if %{stderr} and %{stdout} switch between stdout and stderr.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1457 ../src/curl -q --include --trace-ascii log/51/trace1457 --trace-config all --trace-time http://127.0.0.1:34903/1457 --silent --write-out 'line1%{stderr}line2%{stdout}line3' > log/51/stdout1457 2> log/51/stderr1457 1457: stdout FAILED: --- log/51/check-expected 2025-07-18 09:41:32.987096057 +0000 +++ log/51/check-generated 2025-07-18 09:41:32.985581718 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -line1line3 == Contents of files in the log/51/ dir after test 1457 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] line1line3 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1457 ../src/curl -q --include --trace-ascii log/51/trace1457 --trace-config all --trace-time http://127.0.0.1:34903/1457 --silent --write-out 'line1%{stderr}line2%{stdout}line3' > log/51/stdout1457 2> log/51/stderr1457 === End of file commands.log === Start of file http_server.log 09:41:31.640093 ====> Client connect 09:41:31.640403 accept_connection 3 returned 4 09:41:31.640714 accept_connection 3 returned 0 09:41:31.640859 Read 93 bytes 09:41:31.640962 Process 93 bytes request 09:41:31.641057 Got request: GET /verifiedserver HTTP/1.1 09:41:31.641170 Are-we-friendly question received 09:41:31.641446 Wrote request (93 bytes) input to log/51/server.input 09:41:31.641727 Identifying ourselves as friends 09:41:31.646728 Response sent (56 bytes) and written to log/51/server.response 09:41:31.646846 special request received, no persistency 09:41:31.646918 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 1457 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind1457 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1457 test 1460...[HTTP GET with -Ji and Content-Disposition with existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1460 ../src/curl -q --trace-ascii log/52/trace1460 --trace-config all --trace-time http://127.0.0.1:40089/1460 -Ji -O --output-dir log/52 > log/52/stdout1460 2> log/52/stderr1460 curl returned 1, when expecting 23 1460: exit FAILED == Contents of files in the log/52/ dir after test 1460 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1460 ../src/curl -q --trace-ascii log/52/trace1460 --trace-config all --trace-time http://127.0.0.1:40089/1460 -Ji -O --output-dir log/52 > log/52/stdout1460 2> log/52/stderr1460 === End of file commands.log === Start of file http_server.log 09:41:31.692079 ====> Client connect 09:41:31.692380 accept_connection 3 returned 4 09:41:31.692671 accept_connection 3 returned 0 09:41:31.693525 Read 93 bytes 09:41:31.693659 Process 93 bytes request 09:41:31.693743 Got request: GET /verifiedserver HTTP/1.1 09:41:31.693807 Are-we-friendly question received 09:41:31.694006 Wrote request (93 bytes) input to log/52/server.input 09:41:31.694179 Identifying ourselves as friends 09:41:31.695810 Response sent (56 bytes) and written to log/52/server.response 09:41:31.695927 special request received, no persistency 09:41:31.695995 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file name1460 initial content === End of file name1460 === Start of file server.cmd Testnum 1460 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind1460 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1460 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1473 ../src/curl -q --output log/45/curl1473.out --include --trace-ascii log/45/trace1473 --trace-config all --trace-time http://127.0.0.1:34239/1473 > log/45/stdout1473 2> log/45/stderr1473 * starts no server test 1471...[Fail to resolve .onion TLD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1471 ../src/curl -q --output log/53/curl1471.out --include --trace-ascii log/53/trace1471 --trace-config all --trace-time red.onion > log/53/stdout1471 2> log/53/stderr1471 1471: stderr FAILED: --- log/53/check-expected 2025-07-18 09:41:33.056323942 +0000 +++ log/53/check-generated 2025-07-18 09:41:33.055581682 +0000 @@ -1 +0,0 @@ -curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] == Contents of files in the log/53/ dir after test 1471 === Start of file check-expected curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1471 ../src/curl -q --output log/53/curl1471.out --include --trace-ascii log/53/trace1471 --trace-config all --trace-time red.onion > log/53/stdout1471 2> log/53/stderr1471 === End of file commands.log === Start of file server.cmd Testnum 1471 === End of file server.cmd === Start of file valgrind1471 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1471 * starts no server test 1478...[src/tool_listhelp.c is in sync with docs/cmdline-opts] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d /build/curl/src/curl/tests/../docs/cmdline-opts -I /build/curl/src/curl/tests/../include listhelp /build/curl/src/curl/tests/../docs/cmdline-opts/*.md > log/56/stdout1478 2> log/56/stderr1478 valgrind SKIPPED s------e--- OK (1380 out of 1707, remaining: 00:15, took 1.358s, duration: 01:07) startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/57/server/smtp_server.pid" --logfile "log/57/smtp_server.log" --logdir "log/57" --portfile "log/57/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36183 (log/57/server/smtp_server.port) RUN: SMTP server is PID 145564 port 36183 * pid smtp => 145564 145564 setenv SSL_CERT_FILE = test 1406...[--libcurl for SMTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1406 ../src/curl -q --output log/57/curl1406.out --include --trace-ascii log/57/trace1406 --trace-config all --trace-time smtp://127.0.0.1:36183/1406 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/57/test1406.eml --libcurl log/57/test1406.c > log/57/stdout1406 2> log/57/stderr1406 1406: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 1406 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1406 ../src/curl -q --output log/57/curl1406.out --include --trace-ascii log/57/trace1406 --trace-config all --trace-time smtp://127.0.0.1:36183/1406 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/57/test1406.eml --libcurl log/57/test1406.c > log/57/stdout1406 2> log/57/stderr1406 === End of file commands.log === Start of file server.cmd CAPA SIZE Testnum 1406 === End of file server.cmd === Start of file smtp_server.log 09:41:30.770514 SMTP server listens on port IPv4/36183 09:41:30.771437 logged pid 145564 in log/57/server/smtp_server.pid 09:41:30.771709 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:30.022032 Running IPv4 version 09:41:30.022755 Listening on port 36183 09:41:30.023144 Wrote pid 146762 to log/57/server/smtp_sockfilt.pid 09:41:30.023553 Wrote port 36183 to log/57/server/smtp_server.port 09:41:30.023739 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file test1406.eml From: different To: another body === End of file test1406.eml === Start of file valgrind1406 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1406 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1456 ../src/curl -q --output log/9/curl1456.out --include --trace-ascii log/9/trace1456 --trace-config all --trace-time -g "http://[::1]:46271/1456" --haproxy-protocol > log/9/stdout1456 2> log/9/stderr1456 * starts no server test 1462...[curl invalid category --help] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1462 ../src/curl -q --include --trace-ascii log/60/trace1462 --trace-config all --trace-time --help sdfafdsfadsfsd > log/60/stdout1462 2> log/60/stderr1462 1462: stdout FAILED: --- log/60/check-expected 2025-07-18 09:41:33.235383811 +0000 +++ log/60/check-generated 2025-07-18 09:41:33.233581592 +0000 @@ -1,27 +0,0 @@ -Unknown category provided, here is a list of all categories:[CR][LF] -[CR][LF] - auth Authentication methods[CR][LF] - connection Manage connections[CR][LF] - curl The command line tool itself[CR][LF] - deprecated Legacy[CR][LF] - dns Names and resolving[CR][LF] - file FILE protocol[CR][LF] - ftp FTP protocol[CR][LF] - global Global options[CR][LF] - http HTTP and HTTPS protocol[CR][LF] - imap IMAP protocol[CR][LF] - ldap LDAP protocol[CR][LF] - output Filesystem output[CR][LF] - pop3 POP3 protocol[CR][LF] - post HTTP POST specific[CR][LF] - proxy Options for proxies[CR][LF] - scp SCP protocol[CR][LF] - sftp SFTP protocol[CR][LF] - smtp SMTP protocol[CR][LF] - ssh SSH protocol[CR][LF] - telnet TELNET protocol[CR][LF] - tftp TFTP protocol[CR][LF] - timeout Timeouts and delays[CR][LF] - tls TLS/SSL related[CR][LF] - upload Upload, sending data[CR][LF] - verbose Tracing, logging etc[CR][LF] == Contents of files in the log/60/ dir after test 1462 === Start of file check-expected Unknown category provided, here is a list of all categories:[CR][LF] [CR][LF] auth Authentication methods[CR][LF] connection Manage connections[CR][LF] curl The command line tool itself[CR][LF] deprecated Legacy[CR][LF] dns Names and resolving[CR][LF] file FILE protocol[CR][LF] ftp FTP protocol[CR][LF] global Global options[CR][LF] http HTTP and HTTPS protocol[CR][LF] imap IMAP protocol[CR][LF] ldap LDAP protocol[CR][LF] output Filesystem output[CR][LF] pop3 POP3 protocol[CR][LF] post HTTP POST specific[CR][LF] proxy Options for proxies[CR][LF] scp SCP protocol[CR][LF] sftp SFTP protocol[CR][LF] smtp SMTP protocol[CR][LF] ssh SSH protocol[CR][LF] telnet TELNET protocol[CR][LF] tftp TFTP protocol[CR][LF] timeout Timeouts and delays[CR][LF] tls TLS/SSL related[CR][LF] upload Upload, sending data[CR][LF] verbose Tracing, logging etc[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1462 ../src/curl -q --include --trace-ascii log/60/trace1462 --trace-config all --trace-time --help sdfafdsfadsfsd > log/60/stdout1462 2> log/60/stderr1462 === End of file commands.log === Start of file server.cmd Testnum 1462 === End of file server.cmd === Start of file valgrind1462 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1462 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 1448...[Redirect following to UTF-8 IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1448 ../src/curl -q --include --trace-ascii log/63/trace1448 --trace-config all --trace-time http://åäö.se:38797/1448 --resolve xn--4cab6c.se:38797:127.0.0.1 -L --connect-to 127.0.0.1:38797:127.0.0.1:38797 > log/63/stdout1448 2> log/63/stderr1448 1448: stdout FAILED: --- log/63/check-expected 2025-07-18 09:41:33.297581560 +0000 +++ log/63/check-generated 2025-07-18 09:41:33.296581560 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 302 OK swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Content-Type: text/plain[LF] -Location: http://%c3%a5%c3%a4%c3%b6.se:38797/14480001[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain; charset=us-ascii[LF] -[LF] -OK[LF] == Contents of files in the log/63/ dir after test 1448 === Start of file check-expected HTTP/1.1 302 OK swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Content-Type: text/plain[LF] Location: http://%c3%a5%c3%a4%c3%b6.se:38797/14480001[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain; charset=us-ascii[LF] [LF] OK[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1448 ../src/curl -q --include --trace-ascii log/63/trace1448 --trace-config all --trace-time http://åäö.se:38797/1448 --resolve xn--4cab6c.se:38797:127.0.0.1 -L --connect-to 127.0.0.1:38797:127.0.0.1:38797 > log/63/stdout1448 2> log/63/stderr1448 === End of file commands.log === Start of file http_server.log 09:41:31.298911 ====> Client connect 09:41:31.299194 accept_connection 3 returned 4 09:41:31.299355 accept_connection 3 returned 0 09:41:31.299567 Read 93 bytes 09:41:31.299686 Process 93 bytes request 09:41:31.299774 Got request: GET /verifiedserver HTTP/1.1 09:41:31.299859 Are-we-friendly question received 09:41:31.300079 Wrote request (93 bytes) input to log/63/server.input 09:41:31.300260 Identifying ourselves as friends 09:41:31.300986 Response sent (56 bytes) and written to log/63/server.response 09:41:31.301094 special request received, no persistency 09:41:31.301168 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 1448 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1448 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1448 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1475 ../src/curl -q --output log/17/curl1475.out --include --trace-ascii log/17/trace1475 --trace-config all --trace-time http://127.0.0.1:44383/1475 -C - -f > log/17/stdout1475 2> log/17/stderr1475 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1479 ../src/curl -q --output log/38/curl1479.out --include --trace-ascii log/38/trace1479 --trace-config all --trace-time http://127.0.0.1:33511/1479 http://127.0.0.1:33511/14790002 > log/38/stdout1479 2> log/38/stderr1479 RUN: Process with pid 73792 signalled to die startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/6/server/http_unix_server.pid" --logfile "log/6/http_unix_server.log" --logdir "log/6" --portfile log/6/server/http_unix_server.port --config log/6/server.cmd --unix-socket '/tmp/curl-http-J7Psfndy' --srcdir "/build/curl/src/curl/tests" RUN: HTTP-unix server is on PID 146353 port 8999 * pid http-unix => 146353 146353 test 1436...[HTTP requests with multiple connections over Unix socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1436 ../src/curl -q --include --trace-ascii log/6/trace1436 --trace-config all --trace-time --unix-socket /tmp/curl-http-J7Psfndy http://one.example.com/14360001 http://two.example.com/14360002 http://one.example.com/14360003 > log/6/stdout1436 2> log/6/stderr1436 1436: stdout FAILED: --- log/6/check-expected 2025-07-18 09:41:33.354497711 +0000 +++ log/6/check-generated 2025-07-18 09:41:33.353581531 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Mon, 17 Nov 2014 13:42:47 GMT[LF] -Content-Length: 6[LF] -[LF] -First[LF] -HTTP/1.1 200 OK[LF] -Date: Mon, 17 Nov 2014 13:42:48 GMT[LF] -Content-Length: 7[LF] -[LF] -Second[LF] -HTTP/1.1 200 OK[LF] -Date: Mon, 17 Nov 2014 13:42:49 GMT[LF] -Content-Length: 6[LF] -[LF] -Third[LF] == Contents of files in the log/6/ dir after test 1436 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Mon, 17 Nov 2014 13:42:47 GMT[LF] Content-Length: 6[LF] [LF] First[LF] HTTP/1.1 200 OK[LF] Date: Mon, 17 Nov 2014 13:42:48 GMT[LF] Content-Length: 7[LF] [LF] Second[LF] HTTP/1.1 200 OK[LF] Date: Mon, 17 Nov 2014 13:42:49 GMT[LF] Content-Length: 6[LF] [LF] Third[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1436 ../src/curl -q --include --trace-ascii log/6/trace1436 --trace-config all --trace-time --unix-socket /tmp/curl-http-J7Psfndy http://one.example.com/14360001 http://two.example.com/14360002 http://one.example.com/14360003 > log/6/stdout1436 2> log/6/stderr1436 === End of file commands.log === Start of file http_unix_server.log 09:41:30.073840 Running HTTP unix version on /tmp/curl-http-J7Psfndy 09:41:30.074611 Wrote pid 146353 to log/6/server/http_unix_server.pid 09:41:30.074998 Wrote port 8999 to log/6/server/http_unix_server.port === End of file http_unix_server.log === Start of file server.cmd Testnum 1436 === End of file server.cmd === Start of file valgrind1436 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1436 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/9/server/http_ipv6_server.pid" --logfile "log/9/http_ipv6_server.log" --logdir "log/9" --portfile log/9/server/http_ipv6_server.port --config log/9/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 147125 port 46271 * pid http-ipv6 => 147125 147125 test 1456...[HTTP-IPv6 GET with PROXY protocol] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1456 ../src/curl -q --output log/9/curl1456.out --include --trace-ascii log/9/trace1456 --trace-config all --trace-time -g "http://[::1]:46271/1456" --haproxy-protocol > log/9/stdout1456 2> log/9/stderr1456 1456: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 1456 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1456 ../src/curl -q --output log/9/curl1456.out --include --trace-ascii log/9/trace1456 --trace-config all --trace-time -g "http://[::1]:46271/1456" --haproxy-protocol > log/9/stdout1456 2> log/9/stderr1456 === End of file commands.log === Start of file http_ipv6_server.log 09:41:31.735619 Running HTTP IPv6 version on port 46271 09:41:31.736680 Wrote pid 147125 to log/9/server/http_ipv6_server.pid 09:41:31.737075 Wrote port 46271 to log/9/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1456 === End of file server.cmd === Start of file valgrind1456 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1456 test 1476...[PSL violating cookie with mixed case domain and cookie domain property] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1476 ../src/curl -q --output log/18/curl1476.out --include --trace-ascii log/18/trace1476 --trace-config all --trace-time -x http://127.0.0.1:41285/1476 http://curl.co.UK -c log/18/cookies1476.txt > log/18/stdout1476 2> log/18/stderr1476 1476: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 1476 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1476 ../src/curl -q --output log/18/curl1476.out --include --trace-ascii log/18/trace1476 --trace-config all --trace-time -x http://127.0.0.1:41285/1476 http://curl.co.UK -c log/18/cookies1476.txt > log/18/stdout1476 2> log/18/stderr1476 === End of file commands.log === Start of file http_server.log 09:41:32.286911 ====> Client connect 09:41:32.287177 accept_connection 3 returned 4 09:41:32.287317 accept_connection 3 returned 0 09:41:32.287436 Read 93 bytes 09:41:32.287689 Process 93 bytes request 09:41:32.287770 Got request: GET /verifiedserver HTTP/1.1 09:41:32.287839 Are-we-friendly question received 09:41:32.288045 Wrote request (93 bytes) input to log/18/server.input 09:41:32.288213 Identifying ourselves as friends 09:41:32.291008 Response sent (56 bytes) and written to log/18/server.response 09:41:32.291116 special request received, no persistency 09:41:32.291175 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 1476 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind1476 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1476 test 1466...[HTTP GET with 3-digit response and only digits in reason] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1466 ../src/curl -q --output log/36/curl1466.out --include --trace-ascii log/36/trace1466 --trace-config all --trace-time http://127.0.0.1:44255/1466 > log/36/stdout1466 2> log/36/stderr1466 1466: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1466 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1466 ../src/curl -q --output log/36/curl1466.out --include --trace-ascii log/36/trace1466 --trace-config all --trace-time http://127.0.0.1:44255/1466 > log/36/stdout1466 2> log/36/stderr1466 === End of file commands.log === Start of file http_server.log 09:41:32.054100 ====> Client connect 09:41:32.054904 accept_connection 3 returned 4 09:41:32.055097 accept_connection 3 returned 0 09:41:32.056105 Read 93 bytes 09:41:32.056254 Process 93 bytes request 09:41:32.056349 Got request: GET /verifiedserver HTTP/1.1 09:41:32.056452 Are-we-friendly question received 09:41:32.056896 Wrote request (93 bytes) input to log/36/server.input 09:41:32.057158 Identifying ourselves as friends 09:41:32.062741 Response sent (56 bytes) and written to log/36/server.response 09:41:32.062857 special request received, no persistency 09:41:32.062927 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 1466 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind1466 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1466 RUN: Process with pid 73792 gracefully died * starts no server test 1472...[Fail to resolve .onion. TLD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1472 ../src/curl -q --output log/42/curl1472.out --include --trace-ascii log/42/trace1472 --trace-config all --trace-time tasty.onion. > log/42/stdout1472 2> log/42/stderr1472 1472: stderr FAILED: --- log/42/check-expected 2025-07-18 09:41:33.435603930 +0000 +++ log/42/check-generated 2025-07-18 09:41:33.434581490 +0000 @@ -1 +0,0 @@ -curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] == Contents of files in the log/42/ dir after test 1472 === Start of file check-expected curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1472 ../src/curl -q --output log/42/curl1472.out --include --trace-ascii log/42/trace1472 --trace-config all --trace-time tasty.onion. > log/42/stdout1472 2> log/42/stderr1472 === End of file commands.log === Start of file server.cmd Testnum 1472 === End of file server.cmd === Start of file valgrind1472 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1472 test 1458...[HTTP with wildcard --resolve] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1458 ../src/curl -q --output log/43/curl1458.out --include --trace-ascii log/43/trace1458 --trace-config all --trace-time --resolve *:41267:127.0.0.1 http://example.com:41267/1458 > log/43/stdout1458 2> log/43/stderr1458 1458: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 1458 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1458 ../src/curl -q --output log/43/curl1458.out --include --trace-ascii log/43/trace1458 --trace-config all --trace-time --resolve *:41267:127.0.0.1 http://example.com:41267/1458 > log/43/stdout1458 2> log/43/stderr1458 === End of file commands.log === Start of file http_server.log 09:41:31.694942 ====> Client connect 09:41:31.695221 accept_connection 3 returned 4 09:41:31.695370 accept_connection 3 returned 0 09:41:31.696573 Read 93 bytes 09:41:31.696760 Process 93 bytes request 09:41:31.696864 Got request: GET /verifiedserver HTTP/1.1 09:41:31.696960 Are-we-friendly question received 09:41:31.697207 Wrote request (93 bytes) input to log/43/server.input 09:41:31.697442 Identifying ourselves as friends 09:41:31.699262 Response sent (56 bytes) and written to log/43/server.response 09:41:31.699378 special request received, no persistency 09:41:31.699444 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 1458 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind1458 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1458 test 1473...[first HTTP header starts with white space] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1473 ../src/curl -q --output log/45/curl1473.out --include --trace-ascii log/45/trace1473 --trace-config all --trace-time http://127.0.0.1:34239/1473 > log/45/stdout1473 2> log/45/stderr1473 1473: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 1473 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1473 ../src/curl -q --output log/45/curl1473.out --include --trace-ascii log/45/trace1473 --trace-config all --trace-time http://127.0.0.1:34239/1473 > log/45/stdout1473 2> log/45/stderr1473 === End of file commands.log === Start of file http_server.log 09:41:31.309399 ====> Client connect 09:41:31.309871 accept_connection 3 returned 4 09:41:31.310096 accept_connection 3 returned 0 09:41:31.310263 Read 93 bytes 09:41:31.310348 Process 93 bytes request 09:41:31.310428 Got request: GET /verifiedserver HTTP/1.1 09:41:31.310601 Are-we-friendly question received 09:41:31.310901 Wrote request (93 bytes) input to log/45/server.input 09:41:31.311110 Identifying ourselves as friends 09:41:31.314224 Response sent (56 bytes) and written to log/45/server.response 09:41:31.314335 special request received, no persistency 09:41:31.319664 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 1473 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind1473 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1473 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/48/server/http2_server.pid" --logfile "log/48/http2_server.log" --logdir "log/48" --portfile log/48/server/http2_server.port --config log/48/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 146748 port 41291 * pid http-proxy => 146748 146748 test 1428...[HTTP over proxy-tunnel with --proxy-header and --header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1428 ../src/curl -q --output log/48/curl1428.out --include --trace-ascii log/48/trace1428 --trace-config all --trace-time http://test.1428:46339/we/want/that/page/1428 -p -x 127.0.0.1:41291 --user 'iam:my:;self' --header "header-type: server" --proxy-header "header-type: proxy" > log/48/stdout1428 2> log/48/stderr1428 1428: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 1428 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1428 ../src/curl -q --output log/48/curl1428.out --include --trace-ascii log/48/trace1428 --trace-config all --trace-time http://test.1428:46339/we/want/that/page/1428 -p -x 127.0.0.1:41291 --user 'iam:my:;self' --header "header-type: server" --proxy-header "header-type: proxy" > log/48/stdout1428 2> log/48/stderr1428 === End of file commands.log === Start of file http2_server.log 09:41:31.442632 Run as proxy, CONNECT to host 127.0.0.1 09:41:31.444337 Running HTTP IPv4 version on port 41291 09:41:31.445672 Wrote pid 146748 to log/48/server/http2_server.pid 09:41:31.446320 Wrote port 41291 to log/48/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:30.976695 ====> Client connect 09:41:30.976969 accept_connection 3 returned 4 09:41:30.977118 accept_connection 3 returned 0 09:41:30.977240 Read 93 bytes 09:41:30.977326 Process 93 bytes request 09:41:30.977413 Got request: GET /verifiedserver HTTP/1.1 09:41:30.979636 Are-we-friendly question received 09:41:30.979893 Wrote request (93 bytes) input to log/48/server.input 09:41:30.980050 Identifying ourselves as friends 09:41:30.980826 Response sent (56 bytes) and written to log/48/server.response 09:41:30.980930 special request received, no persistency 09:41:30.980987 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 1428 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind1428 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1428 setenv SSL_CERT_FILE = test 1465...[--libcurl for POST with binary content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1465 ../src/curl -q --output log/64/curl1465.out --include --trace-ascii log/64/trace1465 --trace-config all --trace-time http://127.0.0.1:33073/we/want/1465 --libcurl log/64/test1465.c --data-binary @log/64/1465-upload > log/64/stdout1465 2> log/64/stderr1465 1465: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1465 === Start of file 1465-upload abcde\"? fghi jklmý === End of file 1465-upload === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1465 ../src/curl -q --output log/64/curl1465.out --include --trace-ascii log/64/trace1465 --trace-config all --trace-time http://127.0.0.1:33073/we/want/1465 --libcurl log/64/test1465.c --data-binary @log/64/1465-upload > log/64/stdout1465 2> log/64/stderr1465 === End of file commands.log === Start of file http_server.log 09:41:31.978045 ====> Client connect 09:41:31.978736 accept_connection 3 returned 4 09:41:31.978910 accept_connection 3 returned 0 09:41:31.979199 Read 93 bytes 09:41:31.979604 Process 93 bytes request 09:41:31.979763 Got request: GET /verifiedserver HTTP/1.1 09:41:31.979852 Are-we-friendly question received 09:41:31.980197 Wrote request (93 bytes) input to log/64/server.input 09:41:31.984909 Identifying ourselves as friends 09:41:31.987249 Response sent (56 bytes) and written to log/64/server.response 09:41:31.987414 special request received, no persistency 09:41:31.987622 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1465 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1465 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1465 test 1475...[-f and 416 with Content-Range: */size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1475 ../src/curl -q --output log/17/curl1475.out --include --trace-ascii log/17/trace1475 --trace-config all --trace-time http://127.0.0.1:44383/1475 -C - -f > log/17/stdout1475 2> log/17/stderr1475 1475: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1475 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1475 ../src/curl -q --output log/17/curl1475.out --include --trace-ascii log/17/trace1475 --trace-config all --trace-time http://127.0.0.1:44383/1475 -C - -f > log/17/stdout1475 2> log/17/stderr1475 === End of file commands.log === Start of file curl1475.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1475.out === Start of file http_server.log 09:41:32.279875 ====> Client connect 09:41:32.280170 accept_connection 3 returned 4 09:41:32.280327 accept_connection 3 returned 0 09:41:32.282032 Read 93 bytes 09:41:32.282198 Process 93 bytes request 09:41:32.282286 Got request: GET /verifiedserver HTTP/1.1 09:41:32.282360 Are-we-friendly question received 09:41:32.282834 Wrote request (93 bytes) input to log/17/server.input 09:41:32.283177 Identifying ourselves as friends 09:41:32.285041 Response sent (56 bytes) and written to log/17/server.response 09:41:32.285159 special request received, no persistency 09:41:32.285227 ====> Client disconnect 0 exit_signal_handler: called 09:41:33.631212 signalled to die 09:41:33.632161 ========> IPv4 sws (port 44383 pid: 73792) exits with signal (15) 09:41:33.632318 ========> sws quits === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44383... * Connected to 127.0.0.1 (127.0.0.1) port 44383 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44383 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73792 === End of file http_verify.out === Start of file server.cmd Testnum 1475 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73792 === End of file server.response === Start of file valgrind1475 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1475 test 1479...[HTTP/1.1 response followed by an HTTP/0.9 response over the same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1479 ../src/curl -q --output log/38/curl1479.out --include --trace-ascii log/38/trace1479 --trace-config all --trace-time http://127.0.0.1:33511/1479 http://127.0.0.1:33511/14790002 > log/38/stdout1479 2> log/38/stderr1479 1479: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1479 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1480 ../src/curl -q --output log/62/curl1480.out --include --trace-ascii log/62/trace1480 --trace-config all --trace-time http://127.0.0.1:38899/1480 > log/62/stdout1480 2> log/62/stderr1480 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1486.pl /build/curl/src/curl/tests > log/48/stdout1486 2> log/48/stderr1486 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1488.pl /build/curl/src/curl/tests/.. ../include/curl /build/curl/src/curl/tests/../docs/VERSIONS.md > log/43/stdout1488 2> log/43/stderr1488 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1467 ../src/curl -q --output log/22/curl1467.out --include --trace-ascii log/22/trace1467 --trace-config all --trace-time --socks5 localhost/tmp/curl-socksd-jVa_qdSA http://127.0.0.1:40073/1467 > log/22/stdout1467 2> log/22/stderr1467 ool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1479 ../src/curl -q --output log/38/curl1479.out --include --trace-ascii log/38/trace1479 --trace-config all --trace-time http://127.0.0.1:33511/1479 http://127.0.0.1:33511/14790002 > log/38/stdout1479 2> log/38/stderr1479 === End of file commands.log === Start of file http_server.log 09:41:32.506951 ====> Client connect 09:41:32.507380 accept_connection 3 returned 4 09:41:32.507646 accept_connection 3 returned 0 09:41:32.508586 Read 93 bytes 09:41:32.508725 Process 93 bytes request 09:41:32.508811 Got request: GET /verifiedserver HTTP/1.1 09:41:32.508883 Are-we-friendly question received 09:41:32.509102 Wrote request (93 bytes) input to log/38/server.input 09:41:32.509274 Identifying ourselves as friends 09:41:32.510859 Response sent (56 bytes) and written to log/38/server.response 09:41:32.510972 special request received, no persistency 09:41:32.511034 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1479 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1479 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1479 test 1480...[HTTP Continue response without final response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1480 ../src/curl -q --output log/62/curl1480.out --include --trace-ascii log/62/trace1480 --trace-config all --trace-time http://127.0.0.1:38899/1480 > log/62/stdout1480 2> log/62/stderr1480 1480: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1480 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1480 ../src/curl -q --output log/62/curl1480.out --include --trace-ascii log/62/trace1480 --trace-config all --trace-time http://127.0.0.1:38899/1480 > log/62/stdout1480 2> log/62/stderr1480 === End of file commands.log === Start of file http_server.log 09:41:32.683196 ====> Client connect 09:41:32.684746 accept_connection 3 returned 4 09:41:32.685301 accept_connection 3 returned 0 09:41:32.685572 Read 93 bytes 09:41:32.685951 Process 93 bytes request 09:41:32.686132 Got request: GET /verifiedserver HTTP/1.1 09:41:32.686224 Are-we-friendly question received 09:41:32.686739 Wrote request (93 bytes) input to log/62/server.input 09:41:32.686983 Identifying ourselves as friends 09:41:32.689209 Response sent (56 bytes) and written to log/62/server.response 09:41:32.689349 special request received, no persistency 09:41:32.689433 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1480 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1480 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1480 * starts no server test 1486...[Verify that write-out.md and tool_writeout.c are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1486.pl /build/curl/src/curl/tests > log/48/stdout1486 2> log/48/stderr1486 valgrind SKIPPED s------e--- OK (1388 out of 1707, remaining: 00:15, took 0.244s, duration: 01:07) * starts no server test 1488...[symbols-in-versions and manpages agree on added-in versions] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1488.pl /build/curl/src/curl/tests/.. ../include/curl /build/curl/src/curl/tests/../docs/VERSIONS.md > log/43/stdout1488 2> log/43/stderr1488 valgrind SKIPPED s------e--- OK (1390 out of 1707, remaining: 00:15, took 0.363s, duration: 01:07) startnew: ./server/servers socksd --pidfile log/22/server/socks2_server.pid --reqfile log/22/socksd-request.log --logfile log/22/socks2_server.log --unix-socket /tmp/curl-socksd-jVa_qdSA --backend 127.0.0.1 --config log/22/server.cmd RUN: SOCKS2 server is now running PID 149030 * pid socks5unix => 149030 149030 test 1467...[HTTP GET via SOCKS5 proxy via UniCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1468 ../src/curl -q --output log/34/curl1468.out --include --trace-ascii log/34/trace1468 --trace-config all --trace-time http://this.is.a.host.name:33117/1468 --proxy socks5h://localhost/tmp/curl-socksd-KBwSyDuQ > log/34/stdout1468 2> log/34/stderr1468 x sockets] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1467 ../src/curl -q --output log/22/curl1467.out --include --trace-ascii log/22/trace1467 --trace-config all --trace-time --socks5 localhost/tmp/curl-socksd-jVa_qdSA http://127.0.0.1:40073/1467 > log/22/stdout1467 2> log/22/stderr1467 1467: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 1467 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1467 ../src/curl -q --output log/22/curl1467.out --include --trace-ascii log/22/trace1467 --trace-config all --trace-time --socks5 localhost/tmp/curl-socksd-jVa_qdSA http://127.0.0.1:40073/1467 > log/22/stdout1467 2> log/22/stderr1467 === End of file commands.log === Start of file http_server.log 09:41:32.091876 ====> Client connect 09:41:32.092221 accept_connection 3 returned 4 09:41:32.092568 accept_connection 3 returned 0 09:41:32.093323 Read 93 bytes 09:41:32.093572 Process 93 bytes request 09:41:32.093688 Got request: GET /verifiedserver HTTP/1.1 09:41:32.093809 Are-we-friendly question received 09:41:32.094126 Wrote request (93 bytes) input to log/22/server.input 09:41:32.094545 Identifying ourselves as friends 09:41:32.095094 Response sent (56 bytes) and written to log/22/server.response 09:41:32.095248 special request received, no persistency 09:41:32.095325 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40073... * Connected to 127.0.0.1 (127.0.0.1) port 40073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40073 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73785 === End of file http_verify.out === Start of file server.cmd Testnum 1467 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73785 === End of file server.response === Start of file socks2_server.log 09:41:31.151001 Running unix version 09:41:31.153003 Listening on Unix socket /tmp/curl-socksd-jVa_qdSA 09:41:31.156999 Wrote pid 149030 to log/22/server/socks2_server.pid === End of file socks2_server.log === Start of file valgrind1467 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1467 startnew: ./server/servers socksd --pidfile log/34/server/socks2_server.pid --reqfile log/34/socksd-request.log --logfile log/34/socks2_server.log --unix-socket /tmp/curl-socksd-KBwSyDuQ --backend 127.0.0.1 --config log/34/server.cmd RUN: SOCKS2 server is now running PID 149215 * pid socks5unix => 149215 149215 test 1468...[HTTP GET with host name using SOCKS5h via Unix sockets] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1468 ../src/curl -q --output log/34/curl1468.out --include --trace-ascii log/34/trace1468 --trace-config all --trace-time http://this.is.a.host.name:33117/1468 --proxy socks5h://localhost/tmp/curl-socksd-KBwSyDuQ > log/34/stdout1468 2> log/34/stderr1468 1468: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 1468 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1468 ../src/curl -q --output log/34/curl1468.out --include --trace-ascii log/34/trace1468 --trace-config all --trace-time http://this.is.a.host.name:33117/1468 --proxy socks5h://localhost/tmp/curl-socksd-KBwSyDuQ > log/34/stdout1468 2> log/34/stderr1468 === End of file commands.log === Start of file http_server.log 09:41:32.163148 ====> Client connect 09:41:32.163678 accept_connection 3 returned 4 09:41:32.163868 accept_connection 3 returned 0 09:41:32.164057 Read 93 bytes 09:41:32.164159 Process 93 bytes request 09:41:32.164229 Got request: GET /verifiedserver HTTP/1.1 09:41:32.164301 Are-we-friendly question received 09:41:32.167693 Wrote request (93 bytes) input to log/34/server.input 09:41:32.167890 Identifying ourselves as friends 09:41:32.168731 Response sent (56 bytes) and written to log/34/server.response 09:41:32.168842 special request received, no persistency 09:41:32.168910 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file server.cmd Testnum 1468 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file socks2_server.log 09:41:32.326663 Running unix version 09:41:32.327239 Listening on Unix socket /tmp/curl-socksd-KBwSyDuQ 09:41:32.327713 Wrote pid 149215 to log/34/server/socks2_server.pid === End of file socks2_server.log === Start of file valgrind1468 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for thCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1481 ../src/curl -q --output log/61/curl1481.out --include --trace-ascii log/61/trace1481 --trace-config all --trace-time http://moo/ --libcurl log/61/test1481.c --tls-max 1.3 --proxy-tlsv1 -x http://127.0.0.1:44381 > log/61/stdout1481 2> log/61/stderr1481 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1482 ../src/curl -q --output log/63/curl1482.out --include --trace-ascii log/63/trace1482 --trace-config all --trace-time http://127.0.0.1:38797/1482 -D log/63/heads1482 > log/63/stdout1482 2> log/63/stderr1482 is platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1468 setenv SSL_CERT_FILE = test 1481...[--libcurl with TLS version options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1481 ../src/curl -q --output log/61/curl1481.out --include --trace-ascii log/61/trace1481 --trace-config all --trace-time http://moo/ --libcurl log/61/test1481.c --tls-max 1.3 --proxy-tlsv1 -x http://127.0.0.1:44381 > log/61/stdout1481 2> log/61/stderr1481 1481: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1481 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1481 ../src/curl -q --output log/61/curl1481.out --include --trace-ascii log/61/trace1481 --trace-config all --trace-time http://moo/ --libcurl log/61/test1481.c --tls-max 1.3 --proxy-tlsv1 -x http://127.0.0.1:44381 > log/61/stdout1481 2> log/61/stderr1481 === End of file commands.log === Start of file http_server.log 09:41:33.072864 ====> Client connect 09:41:33.073142 accept_connection 3 returned 4 09:41:33.073295 accept_connection 3 returned 0 09:41:33.073420 Read 93 bytes 09:41:33.073751 Process 93 bytes request 09:41:33.073853 Got request: GET /verifiedserver HTTP/1.1 09:41:33.073918 Are-we-friendly question received 09:41:33.074111 Wrote request (93 bytes) input to log/61/server.input 09:41:33.074260 Identifying ourselves as friends 09:41:33.074925 Response sent (56 bytes) and written to log/61/server.response 09:41:33.075022 special request received, no persistency 09:41:33.075083 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 1481 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind1481 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1481 test 1482...[HTTP GET with double chunked in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1482 ../src/curl -q --output log/63/curl1482.out --include --trace-ascii log/63/trace1482 --trace-config all --trace-time http://127.0.0.1:38797/1482 -D log/63/heads1482 > log/63/stdout1482 2> log/63/stderr1482 1482: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1482 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1482 ../src/curl -q --output log/63/curl1482.out --include --trace-ascii log/63/trace1482 --trace-config all --trace-time http://127.0.0.1:38797/1482 -D log/63/heads1482 > log/63/stdout1482 2> log/63/stderr1482 === End of file commands.log === Start of file http_server.log 09:41:33.766598 ====> Client connect 09:41:33.766954 accept_connection 3 returned 4 09:41:33.767105 accept_connection 3 returned 0 09:41:33.767236 Read 93 bytes 09:41:33.767316 Process 93 bytes request 09:41:33.767392 Got request: GET /verifiedserver HTTP/1.1 09:41:33.767456 Are-we-friendly question received 09:41:33.767791 Wrote request (93 bytes) input to log/63/server.input 09:41:33.767952 Identifying ourselves as friends 09:41:33.772786 Response sent (56 bytes) and written to log/63/server.response 09:41:33.772948 special request received, no persistency 09:41:33.773029 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1482 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1482 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1490 ../src/curl -q --output log/36/curl1490.out --trace-ascii log/36/trace1490 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/36/result1490.txt -T log/36/upload1490.txt > log/36/stdout1490 2> log/36/stderr1490 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1482 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1491 ../src/curl -q --include --trace-ascii log/18/trace1491 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/18/test1491.txt -o log/18/test1491.txt --skip-existing > log/18/stdout1491 2> log/18/stderr1491 test 1490...["upload" with file:// overwriting existing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1490 ../src/curl -q --output log/36/curl1490.out --trace-ascii log/36/trace1490 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/36/result1490.txt -T log/36/upload1490.txt > log/36/stdout1490 2> log/36/stderr1490 1490: output (log/36/result1490.txt) FAILED: --- log/36/check-expected 2025-07-18 09:41:34.527580937 +0000 +++ log/36/check-generated 2025-07-18 09:41:34.527488017 +0000 @@ -1,5 +1 @@ -data[LF] -in[LF] -file[LF] -to[LF] -write[LF] +already existing[LF] == Contents of files in the log/36/ dir after test 1490 === Start of file check-expected data[LF] in[LF] file[LF] to[LF] write[LF] === End of file check-expected === Start of file check-generated already existing[LF] === End of file check-generated === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1490 ../src/curl -q --output log/36/curl1490.out --trace-ascii log/36/trace1490 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/36/result1490.txt -T log/36/upload1490.txt > log/36/stdout1490 2> log/36/stderr1490 === End of file commands.log === Start of file result1490.txt already existing === End of file result1490.txt === Start of file server.cmd Testnum 1490 === End of file server.cmd === Start of file upload1490.txt data in file to write === End of file upload1490.txt === Start of file valgrind1490 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1490 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1483 ../src/curl -q --output log/64/curl1483.out --include --trace-ascii log/64/trace1483 --trace-config all --trace-time http://127.0.0.1:33073/1483 -D log/64/heads1483 > log/64/stdout1483 2> log/64/stderr1483 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1544.pl /build/curl/src/curl/tests/.. > log/55/stdout1544 2> log/55/stderr1544 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1484 ../src/curl -q --output log/38/curl1484.out --include --trace-ascii log/38/trace1484 --trace-config all --trace-time -I http://127.0.0.1:33511/1484 --http1.1 > log/38/stdout1484 2> log/38/stderr1484 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1492 ../src/curl -q --trace-ascii log/9/trace1492 --trace-config all --trace-time http://127.0.0.1:46607/junk1492 -J -O --show-headers --output-dir log/9 > log/9/stdout1492 2> log/9/stderr1492 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1508 ./libtest/libtests lib1508 http://127.0.0.1:47/path/1508 > log/25/stdout1508 2> log/25/stderr1508 test 1491...[file:// don't overwrite self with --skip-existing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1491 ../src/curl -q --include --trace-ascii log/18/trace1491 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/18/test1491.txt -o log/18/test1491.txt --skip-existing > log/18/stdout1491 2> log/18/stderr1491 1491: stderr FAILED: --- log/18/check-expected 2025-07-18 09:41:34.735732472 +0000 +++ log/18/check-generated 2025-07-18 09:41:34.734580832 +0000 @@ -1 +0,0 @@ -Note: skips transfer, "log/18/test1491.txt" exists locally[CR][LF] == Contents of files in the log/18/ dir after test 1491 === Start of file check-expected Note: skips transfer, "log/18/test1491.txt" exists locally[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1491 ../src/curl -q --include --trace-ascii log/18/trace1491 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/18/test1491.txt -o log/18/test1491.txt --skip-existing > log/18/stdout1491 2> log/18/stderr1491 === End of file commands.log === Start of file server.cmd Testnum 1491 === End of file server.cmd === Start of file test1491.txt foo bar bar foo moo === End of file test1491.txt === Start of file valgrind1491 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1491 prechecked ./libtest/lib1517 check test 1517 SKIPPED: precheck command error test 1483...[HTTP GET with double chunked in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1483 ../src/curl -q --output log/64/curl1483.out --include --trace-ascii log/64/trace1483 --trace-config all --trace-time http://127.0.0.1:33073/1483 -D log/64/heads1483 > log/64/stdout1483 2> log/64/stderr1483 1483: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1483 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1483 ../src/curl -q --output log/64/curl1483.out --include --trace-ascii log/64/trace1483 --trace-config all --trace-time http://127.0.0.1:33073/1483 -D log/64/heads1483 > log/64/stdout1483 2> log/64/stderr1483 === End of file commands.log === Start of file http_server.log 09:41:33.963681 ====> Client connect 09:41:33.963953 accept_connection 3 returned 4 09:41:33.964099 accept_connection 3 returned 0 09:41:33.964217 Read 93 bytes 09:41:33.964290 Process 93 bytes request 09:41:33.964362 Got request: GET /verifiedserver HTTP/1.1 09:41:33.964427 Are-we-friendly question received 09:41:33.964707 Wrote request (93 bytes) input to log/64/server.input 09:41:33.964853 Identifying ourselves as friends 09:41:33.968824 Response sent (56 bytes) and written to log/64/server.response 09:41:33.968958 special request received, no persistency 09:41:33.969033 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1483 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1483 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1483 * starts no server test 1544...[Verify all string options are translated by OS/400 wrapper] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1544.pl /build/curl/src/curl/tests/.. > log/55/stdout1544 2> log/55/stderr1544 valgrind SKIPPED -------e--- OK (1445 out of 1707, remaining: 00:12, took 0.594s, duration: 01:08) test 1492...[HTTP GET with -J + --show-headers but no Content-Disposition:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1492 ../src/curl -q --trace-ascii log/9/trace1492 --trace-config all --trace-time http://127.0.0.1:46607/junk1492 -J -O --show-headers --output-dir log/9 > log/9/stdout1492 2> log/9/stderr1492 1492: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 1492 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind1492 ../src/curl -q --trace-ascii log/9/trace1492 --trace-config all --trace-time http://127.0.0.1:46607/junk1492 -J -O --show-headers --output-dir log/9 > log/9/stdout1492 2> log/9/stderr1492 === End of file commands.log === Start of file http_server.log 09:41:34.089090 ====> Client connect 09:41:34.089408 accept_connection 3 returned 4 09:41:34.089710 accept_connection 3 returned 0 09:41:34.089867 Read 93 bytes 09:41:34.089963 Process 93 bytes request 09:41:34.090046 Got request: GET /verifiedserver HTTP/1.1 09:41:34.090122 Are-we-friendly question received 09:41:34.090348 Wrote request (93 bytes) input to log/9/server.input 09:41:34.090622 Identifying ourselves as friends 09:41:34.091416 Response sent (56 bytes) and written to log/9/server.response 09:41:34.091625 special request received, no persistency 09:41:34.091742 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file server.cmd Testnum 1492 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind1492 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1492 test 1484...[HTTP HEAD with response body to ignore] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1484 ../src/curl -q --output log/38/curl1484.out --include --trace-ascii log/38/trace1484 --trace-config all --trace-time -I http://127.0.0.1:33511/1484 --http1.1 > log/38/stdout1484 2> log/38/stderr1484 1484: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1484 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1484 ../src/curl -q --output log/38/curl1484.out --include --trace-ascii log/38/trace1484 --trace-config all --trace-time -I http://127.0.0.1:33511/1484 --http1.1 > log/38/stdout1484 2> log/38/stderr1484 === End of file commands.log === Start of file http_server.log 09:41:34.016012 ====> Client connect 09:41:34.016302 accept_connection 3 returned 4 09:41:34.016453 accept_connection 3 returned 0 09:41:34.016674 Read 93 bytes 09:41:34.016772 Process 93 bytes request 09:41:34.016864 Got request: GET /verifiedserver HTTP/1.1 09:41:34.016953 Are-we-friendly question received 09:41:34.017182 Wrote request (93 bytes) input to log/38/server.input 09:41:34.017360 Identifying ourselves as friends 09:41:34.018185 Response sent (56 bytes) and written to log/38/server.response 09:41:34.018293 special request received, no persistency 09:41:34.018352 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1484 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1484 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1484 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1489 ../src/curl -q --output log/42/curl1489.out --trace-ascii log/42/trace1489 --trace-config all --trace-time http://127.0.0.1:42819/1489 -D % -s > log/42/stdout1489 2> log/42/stderr1489 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1487 ../src/curl -q --trace-ascii log/45/trace1487 --trace-config all --trace-time http://127.0.0.1:34239/1487 -J -O --output-dir log/45 > log/45/stdout1487 2> log/45/stderr1487 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1497 ../src/curl -q --output log/53/curl1497.out --include --trace-ascii log/53/trace1497 --trace-config all --trace-time http://127.0.0.1:34639/1497 --retry 3 -o /dev/null > log/53/stdout1497 2> log/53/stderr1497 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1521 ./libtest/libtests lib1521 unused > log/30/stdout1521 2> log/30/stderr1521 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1494 ../src/curl -q --output log/60/curl1494.out --include --trace-ascii log/60/trace1494 --trace-config all --trace-time http://127.0.0.1:38843/1494 -D log/60/heads1494 > log/60/stdout1494 2> log/60/stderr1494 * starts no server test 1508...[Close a multi handle without using it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1508 ./libtest/libtests lib1508 http://127.0.0.1:47/path/1508 > log/25/stdout1508 2> log/25/stderr1508 1508: output (log/25/stdout1508) FAILED: --- log/25/check-expected 2025-07-18 09:41:35.033580681 +0000 +++ log/25/check-generated 2025-07-18 09:41:35.032580681 +0000 @@ -1 +0,0 @@ -We are done[LF] == Contents of files in the log/25/ dir after test 1508 === Start of file check-expected We are done[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1508 ./libtest/libtests lib1508 http://127.0.0.1:47/path/1508 > log/25/stdout1508 2> log/25/stderr1508 === End of file commands.log === Start of file server.cmd Testnum 1508 === End of file server.cmd === Start of file valgrind1508 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1508 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1505 ./libtest/libtests lib1502 http://google.com:43179/1505 43179 127.0.0.1 > log/35/stdout1505 2> log/35/stderr1505 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1504 ./libtest/libtests lib1502 http://google.com:42139/1504 42139 127.0.0.1 > log/40/stdout1504 2> log/40/stderr1504 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1496 ../src/curl -q --output log/56/curl1496.out --include --trace-ascii log/56/trace1496 --trace-config all --trace-time http://127.0.0.1:43265/1496 -D log/56/heads1496 > log/56/stdout1496 2> log/56/stderr1496 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1493 ../src/curl -q --output log/6/curl1493.out --include --trace-ascii log/6/trace1493 --trace-config all --trace-time http://127.0.0.1:37181/1493 -D log/6/heads1493 > log/6/stdout1493 2> log/6/stderr1493 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1503 ./libtest/libtests lib1502 http://google.com:34655/1503 34655 127.0.0.1 > log/44/stdout1503 2> log/44/stderr1503 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1498 ../src/curl -q --output log/52/curl1498.out --include --trace-ascii log/52/trace1498 --trace-config all --trace-time http://127.0.0.1:40089/bzz/1498 -T . log/52/stdout1498 2> log/52/stderr1498 test 1489...[-D sent to stderr] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1489 ../src/curl -q --output log/42/curl1489.out --trace-ascii log/42/trace1489 --trace-config all --trace-time http://127.0.0.1:42819/1489 -D % -s > log/42/stdout1489 2> log/42/stderr1489 1489: stderr FAILED: --- log/42/check-expected 2025-07-18 09:41:35.169247652 +0000 +++ log/42/check-generated 2025-07-18 09:41:35.167580613 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] == Contents of files in the log/42/ dir after test 1489 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind1489 ../src/curl -q --output log/42/curl1489.out --trace-ascii log/42/trace1489 --trace-config all --trace-time http://127.0.0.1:42819/1489 -D % -s > log/42/stdout1489 2> log/42/stderr1489 === End of file commands.log === Start of file http_server.log 09:41:34.023826 ====> Client connect 09:41:34.024116 accept_connection 3 returned 4 09:41:34.024269 accept_connection 3 returned 0 09:41:34.025039 Read 93 bytes 09:41:34.025168 Process 93 bytes request 09:41:34.025246 Got request: GET /verifiedserver HTTP/1.1 09:41:34.025309 Are-we-friendly question received 09:41:34.025657 Wrote request (93 bytes) input to log/42/server.input 09:41:34.025836 Identifying ourselves as friends 09:41:34.027312 Response sent (56 bytes) and written to log/42/server.response 09:41:34.027416 special request received, no persistency 09:41:34.027550 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 1489 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind1489 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1489 test 1487...[HTTP GET with -J and Content-Disposition on 301] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1487 ../src/curl -q --trace-ascii log/45/trace1487 --trace-config all --trace-time http://127.0.0.1:34239/1487 -J -O --output-dir log/45 > log/45/stdout1487 2> log/45/stderr1487 1487: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 1487 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind1487 ../src/curl -q --trace-ascii log/45/trace1487 --trace-config all --trace-time http://127.0.0.1:34239/1487 -J -O --output-dir log/45 > log/45/stdout1487 2> log/45/stderr1487 === End of file commands.log === Start of file http_server.log 09:41:33.031251 ====> Client connect 09:41:33.031684 accept_connection 3 returned 4 09:41:33.031868 accept_connection 3 returned 0 09:41:33.032007 Read 93 bytes 09:41:33.032103 Process 93 bytes request 09:41:33.032196 Got request: GET /verifiedserver HTTP/1.1 09:41:33.032277 Are-we-friendly question received 09:41:33.036652 Wrote request (93 bytes) input to log/45/server.input 09:41:33.036875 Identifying ourselves as friends 09:41:33.041894 Response sent (56 bytes) and written to log/45/server.response 09:41:33.042033 special request received, no persistency 09:41:33.042111 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 1487 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind1487 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1502 ./libtest/libtests lib1502 http://google.com:41103/1502 41103 127.0.0.1 > log/47/stdout1502 2> log/47/stderr1502 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1500 ./libtest/libtests lib1500 http://127.0.0.1:45651/1500 > log/50/stdout1500 2> log/50/stderr1500 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1495 ../src/curl -q --output log/57/curl1495.out --include --trace-ascii log/57/trace1495 --trace-config all --trace-time http://127.0.0.1:35945/1495 -D log/57/heads1495 > log/57/stdout1495 2> log/57/stderr1495 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1518 ./libtest/libtests lib1518 http://127.0.0.1:41267/1518 > log/43/stdout1518 2> log/43/stderr1518 fo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1487 test 1497...[HTTP GET --retry on 503 error with output to /dev/null] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1497 ../src/curl -q --output log/53/curl1497.out --include --trace-ascii log/53/trace1497 --trace-config all --trace-time http://127.0.0.1:34639/1497 --retry 3 -o /dev/null > log/53/stdout1497 2> log/53/stderr1497 1497: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 1497 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1497 ../src/curl -q --output log/53/curl1497.out --include --trace-ascii log/53/trace1497 --trace-config all --trace-time http://127.0.0.1:34639/1497 --retry 3 -o /dev/null > log/53/stdout1497 2> log/53/stderr1497 === End of file commands.log === Start of file http_server.log 09:41:34.127255 ====> Client connect 09:41:34.127678 accept_connection 3 returned 4 09:41:34.127881 accept_connection 3 returned 0 09:41:34.128429 Read 93 bytes 09:41:34.128641 Process 93 bytes request 09:41:34.128725 Got request: GET /verifiedserver HTTP/1.1 09:41:34.128797 Are-we-friendly question received 09:41:34.129044 Wrote request (93 bytes) input to log/53/server.input 09:41:34.129233 Identifying ourselves as friends 09:41:34.129822 Response sent (56 bytes) and written to log/53/server.response 09:41:34.129923 special request received, no persistency 09:41:34.129980 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 1497 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind1497 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1497 test 1493...[HTTP GET with identity + chunked in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1493 ../src/curl -q --output log/6/curl1493.out --include --trace-ascii log/6/trace1493 --trace-config all --trace-time http://127.0.0.1:37181/1493 -D log/6/heads1493 > log/6/stdout1493 2> log/6/stderr1493 1493: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1493 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1493 ../src/curl -q --output log/6/curl1493.out --include --trace-ascii log/6/trace1493 --trace-config all --trace-time http://127.0.0.1:37181/1493 -D log/6/heads1493 > log/6/stdout1493 2> log/6/stderr1493 === End of file commands.log === Start of file http_server.log 09:41:34.118011 ====> Client connect 09:41:34.118353 accept_connection 3 returned 4 09:41:34.119047 accept_connection 3 returned 0 09:41:34.119224 Read 93 bytes 09:41:34.119314 Process 93 bytes request 09:41:34.119426 Got request: GET /verifiedserver HTTP/1.1 09:41:34.119626 Are-we-friendly question received 09:41:34.119890 Wrote request (93 bytes) input to log/6/server.input 09:41:34.120093 Identifying ourselves as friends 09:41:34.122160 Response sent (56 bytes) and written to log/6/server.response 09:41:34.122290 special request received, no persistency 09:41:34.122384 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37181... * Connected to 127.0.0.1 (127.0.0.1) port 37181 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37181 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73803 === End of file http_verify.out === Start of file server.cmd Testnum 1493 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73803 === End of file server.response === Start of file valgrind1493 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1493 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1501 ./libtest/libtests lib1501 ftp://127.0.0.1:34533/1501/ > log/49/stdout1501 2> log/49/stderr1501 * kill pid for ftp-ctrl => 78153 RUN: Process with pid 77434 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1510 ./libtest/libtests lib1510 http://127.0.0.1:35435/path/1510 127.0.0.1 35435 > log/15/stdout1510 2> log/15/stderr1510 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1537 ./libtest/libtests lib1537 nothing > log/58/stdout1537 2> log/58/stderr1537 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1515 ./libtest/libtests lib1515 path/1515 127.0.0.1 43013 > log/4/stdout1515 2> log/4/stderr1515 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1499 ../src/curl -q --output log/51/curl1499.out --include --trace-ascii log/51/trace1499 --trace-config all --trace-time http://127.0.0.1:34903/1499 http://127.0.0.1:34903/1499 -D log/51/heads1499 > log/51/stdout1499 2> log/51/stderr1499 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1519 ./libtest/libtests lib1518 http://127.0.0.1:36559/1519 > log/33/stdout1519 2> log/33/stderr1519 * starts no server test 1521...[Test all curl_easy_setopt and curl_easy_getinfo options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1521 ./libtest/libtests lib1521 unused > log/30/stdout1521 2> log/30/stderr1521 1521: stdout FAILED: --- log/30/check-expected 2025-07-18 09:41:35.362310954 +0000 +++ log/30/check-generated 2025-07-18 09:41:35.361580515 +0000 @@ -1 +0,0 @@ -ok[LF] == Contents of files in the log/30/ dir after test 1521 === Start of file check-expected ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind1521 ./libtest/libtests lib1521 unused > log/30/stdout1521 2> log/30/stderr1521 === End of file commands.log === Start of file server.cmd Testnum 1521 === End of file server.cmd === Start of file valgrind1521 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1521 test 1505...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence PB] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1505 ./libtest/libtests lib1502 http://google.com:43179/1505 43179 127.0.0.1 > log/35/stdout1505 2> log/35/stderr1505 1505: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 1505 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind1505 ./libtest/libtests lib1502 http://google.com:43179/1505 43179 127.0.0.1 > log/35/stdout1505 2> log/35/stderr1505 === End of file commands.log === Start of file http_server.log 09:41:34.286821 ====> Client connect 09:41:34.287126 accept_connection 3 returned 4 09:41:34.287282 accept_connection 3 returned 0 09:41:34.287412 Read 93 bytes 09:41:34.287600 Process 93 bytes request 09:41:34.287707 Got request: GET /verifiedserver HTTP/1.1 09:41:34.287781 Are-we-friendly question received 09:41:34.288018 Wrote request (93 bytes) input to log/35/server.input 09:41:34.288203 Identifying ourselves as friends 09:41:34.291048 Response sent (56 bytes) and written to log/35/server.response 09:41:34.291172 special request received, no persistency 09:41:34.291242 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43179... * Connected to 127.0.0.1 (127.0.0.1) port 43179 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43179 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73771 === End of file http_verify.out === Start of file server.cmd Testnum 1505 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73771 === End of file server.response === Start of file valgrind1505 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1505 test 1504...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence UB] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1504 ./libtest/libtests lib1502 http://google.com:42139/1504 42139 127.0.0.1 > log/40/stdout1504 2> log/40/stderr1504 1504: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 1504 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind1504 ./libtest/libtests lib1502 http://google.com:42139/1504 42139 127.0.0.1 > log/40/stdout1504 2> log/40/stderr1504 === End of file commands.log === Start of file http_server.log 09:41:34.228985 ====> Client connect 09:41:34.229309 accept_connection 3 returned 4 09:41:34.229627 accept_connection 3 returned 0 09:41:34.230425 Read 93 bytes 09:41:34.230742 Process 93 bytes request 09:41:34.230847 Got request: GET /verifiedserver HTTP/1.1 09:41:34.230938 Are-we-friendly question received 09:41:34.231191 Wrote request (93 bytes) input to log/40/server.input 09:41:34.231409 Identifying ourselves as friends 09:41:34.233332 Response sent (56 bytes) and written to log/40/server.response 09:41:34.236567 special request received, no persistency 09:41:34.236728 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42139... * Connected to 127.0.0.1 (127.0.0.1) port 42139 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42139 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73767 === End of file http_verify.out === Start of file server.cmd Testnum 1504 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73767 === End of file server.response === Start of file valgrind1504 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1504 test 1503...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence PA] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1503 ./libtest/libtests lib1502 http://google.com:34655/1503 34655 127.0.0.1 > log/44/stdout1503 2> log/44/stderr1503 1503: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 1503 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind1503 ./libtest/libtests lib1502 http://google.com:34655/1503 34655 127.0.0.1 > log/44/stdout1503 2> log/44/stderr1503 === End of file commands.log === Start of file http_server.log 09:41:34.251138 ====> Client connect 09:41:34.251431 accept_connection 3 returned 4 09:41:34.251752 accept_connection 3 returned 0 09:41:34.251911 Read 93 bytes 09:41:34.252009 Process 93 bytes request 09:41:34.252102 Got request: GET /verifiedserver HTTP/1.1 09:41:34.252183 Are-we-friendly question received 09:41:34.252426 Wrote request (93 bytes) input to log/44/server.input 09:41:34.252697 Identifying ourselves as friends 09:41:34.253382 Response sent (56 bytes) and written to log/44/server.response 09:41:34.253577 special request received, no persistency 09:41:34.253672 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 1503 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind1503 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1503 test 1502...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence UA] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1502 ./libtest/libtests lib1502 http://google.com:41103/1502 41103 127.0.0.1 > log/47/stdout1502 2> log/47/stderr1502 1502: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 1502 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind1502 ./libtest/libtests lib1502 http://google.com:41103/1502 41103 127.0.0.1 > log/47/stdout1502 2> log/47/stderr1502 === End of file commands.log === Start of file http_server.log 09:41:34.267731 ====> Client connect 09:41:34.268014 accept_connection 3 returned 4 09:41:34.268146 accept_connection 3 returned 0 09:41:34.268265 Read 93 bytes 09:41:34.268353 Process 93 bytes request 09:41:34.268432 Got request: GET /verifiedserver HTTP/1.1 09:41:34.273661 Are-we-friendly question received 09:41:34.273914 Wrote request (93 bytes) input to log/47/server.input 09:41:34.274089 Identifying ourselves as friends 09:41:34.274830 Response sent (56 bytes) and written to log/47/server.response 09:41:34.274942 special request received, no persistency 09:41:34.275005 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41103... * Connected to 127.0.0.1 (127.0.0.1) port 41103 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41103 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73762 === End of file http_verify.out === Start of file server.cmd Testnum 1502 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73762 === End of file server.response === Start of file valgrind1502 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp6CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1522 ./libtest/libtests lib1522 http://127.0.0.1:33117/1522 > log/34/stdout1522 2> log/34/stderr1522 4d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1502 RUN: Process with pid 77434 gracefully died CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1520 ./libtest/libtests lib1520 smtp://127.0.0.1:35885/1520 log/22/stdout1520 2> log/22/stderr1520 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1536 ./libtest/libtests lib1536 http://127.0.0.1:39659/1536 > log/2/stdout1536 2> log/2/stderr1536 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1513 ./libtest/libtests lib1513 http://127.0.0.1:32871/1513 > log/11/stdout1513 2> log/11/stderr1513 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1530 ./libtest/libtests lib1530 - > log/12/stdout1530 2> log/12/stderr1530 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1532 ./libtest/libtests lib1532 http://127.0.0.1:44381/1532 > log/61/stdout1532 2> log/61/stderr1532 test 1500...[curl_multi_wait] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1500 ./libtest/libtests lib1500 http://127.0.0.1:45651/1500 > log/50/stdout1500 2> log/50/stderr1500 1500: data FAILED: --- log/50/check-expected 2025-07-18 09:41:35.482580453 +0000 +++ log/50/check-generated 2025-07-18 09:41:35.479580455 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 all good![CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Content-Length: 12[CR][LF] -Connection: close[CR][LF] -[CR][LF] -Hello World[LF] == Contents of files in the log/50/ dir after test 1500 === Start of file check-expected HTTP/1.1 200 all good![CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Content-Length: 12[CR][LF] Connection: close[CR][LF] [CR][LF] Hello World[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind1500 ./libtest/libtests lib1500 http://127.0.0.1:45651/1500 > log/50/stdout1500 2> log/50/stderr1500 === End of file commands.log === Start of file http_server.log 09:41:34.217369 ====> Client connect 09:41:34.217825 accept_connection 3 returned 4 09:41:34.217997 accept_connection 3 returned 0 09:41:34.218148 Read 93 bytes 09:41:34.218258 Process 93 bytes request 09:41:34.218353 Got request: GET /verifiedserver HTTP/1.1 09:41:34.218544 Are-we-friendly question received 09:41:34.218844 Wrote request (93 bytes) input to log/50/server.input 09:41:34.219049 Identifying ourselves as friends 09:41:34.223714 Response sent (56 bytes) and written to log/50/server.response 09:41:34.223830 special request received, no persistency 09:41:34.223902 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 1500 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file valgrind1500 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1500 test 1498...[HTTP PUT from stdin using period] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1498 ../src/curl -q --output log/52/curl1498.out --include --trace-ascii log/52/trace1498 --trace-config all --trace-time http://127.0.0.1:40089/bzz/1498 -T . log/52/stdout1498 2> log/52/stderr1498 1498: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1498 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1498 ../src/curl -q --output log/52/curl1498.out --include --trace-ascii log/52/trace1498 --trace-config all --trace-time http://127.0.0.1:40089/bzz/1498 -T . log/52/stdout1498 2> log/52/stderr1498 === End of file commands.log === Start of file http_server.log 09:41:34.187903 ====> Client connect 09:41:34.188185 accept_connection 3 returned 4 09:41:34.188332 accept_connection 3 returned 0 09:41:34.192589 Read 93 bytes 09:41:34.192732 Process 93 bytes request 09:41:34.192809 Got request: GET /verifiedserver HTTP/1.1 09:41:34.192886 Are-we-friendly question received 09:41:34.193102 Wrote request (93 bytes) input to log/52/server.input 09:41:34.193291 Identifying ourselves as friends 09:41:34.194077 Response sent (56 bytes) and written to log/52/server.response 09:41:34.194181 special request received, no persistency 09:41:34.194244 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 1498 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file stdin-for-1498 hejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1511 ./libtest/libtests lib1511 http://127.0.0.1:44087/1511 > log/13/stdout1511 2> log/13/stderr1511 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1531 ./libtest/libtests lib1531 127.0.0.1:36913/1531 > log/10/stdout1531 2> log/10/stderr1531 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1506 ./libtest/libtests lib1506 http://127.0.0.1:38899/path/1506 127.0.0.1 38899 > log/62/stdout1506 2> log/62/stderr1506 hejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhej === End of file stdin-for-1498 === Start of file valgrind1498 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1498 test 1496...[HTTP GET with gzip + chunked transfer-encoding without being asked] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1496 ../src/curl -q --output log/56/curl1496.out --include --trace-ascii log/56/trace1496 --trace-config all --trace-time http://127.0.0.1:43265/1496 -D log/56/heads1496 > log/56/stdout1496 2> log/56/stderr1496 1496: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 1496 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1496 ../src/curl -q --output log/56/curl1496.out --include --trace-ascii log/56/trace1496 --trace-config all --trace-time http://127.0.0.1:43265/1496 -D log/56/heads1496 > log/56/stdout1496 2> log/56/stderr1496 === End of file commands.log === Start of file http_server.log 09:41:34.171655 ====> Client connect 09:41:34.172033 accept_connection 3 returned 4 09:41:34.172190 accept_connection 3 returned 0 09:41:34.172331 Read 93 bytes 09:41:34.172431 Process 93 bytes request 09:41:34.172699 Got request: GET /verifiedserver HTTP/1.1 09:41:34.172819 Are-we-friendly question received 09:41:34.173072 Wrote request (93 bytes) input to log/56/server.input 09:41:34.173255 Identifying ourselves as friends 09:41:34.174158 Response sent (56 bytes) and written to log/56/server.response 09:41:34.174272 special request received, no persistency 09:41:34.174339 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intacCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1534 ./libtest/libtests lib1534 http://127.0.0.1:33413/1534 > log/5/stdout1534 2> log/5/stderr1534 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1507 ./libtest/libtests lib1507 smtp://127.0.0.1:37993/1507 log/48/stdout1507 2> log/48/stderr1507 t === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 1496 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind1496 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1496 test 1495...[HTTP GET with chunked + identity in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1495 ../src/curl -q --output log/57/curl1495.out --include --trace-ascii log/57/trace1495 --trace-config all --trace-time http://127.0.0.1:35945/1495 -D log/57/heads1495 > log/57/stdout1495 2> log/57/stderr1495 1495: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 1495 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1495 ../src/curl -q --output log/57/curl1495.out --include --trace-ascii log/57/trace1495 --trace-config all --trace-time http://127.0.0.1:35945/1495 -D log/57/heads1495 > log/57/stdout1495 2> log/57/stderr1495 === End of file commands.log === Start of file http_server.log 09:41:34.129968 ====> Client connect 09:41:34.130347 accept_connection 3 returned 4 09:41:34.130633 accept_connection 3 returned 0 09:41:34.130806 Read 93 bytes 09:41:34.130905 Process 93 bytes request 09:41:34.130996 Got request: GET /verifiedserver HTTP/1.1 09:41:34.131068 Are-we-friendly question received 09:41:34.131314 Wrote request (93 bytes) input to log/57/server.input 09:41:34.131591 Identifying ourselves as friends 09:41:34.133450 Response sent (56 bytes) and written to log/57/server.response 09:41:34.136724 special request received, no persistency 09:41:34.136819 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 1495 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind1495 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1495 test 1494...[HTTP GET with identity twice in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1494 ../src/curl -q --output log/60/curl1494.out --include --trace-ascii log/60/trace1494 --trace-config all --trace-time http://127.0.0.1:38843/1494 -D log/60/heads1494 > log/60/stdout1494 2> log/60/stderr1494 1494: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 1494 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1494 ../src/curl -q --output log/60/curl1494.out --include --trace-ascii log/60/trace1494 --trace-config all --trace-time http://127.0.0.1:38843/1494 -D log/60/heads1494 > log/60/stdout1494 2> log/60/stderr1494 === End of file commands.log === Start of file http_server.log 09:41:34.151369 ====> Client connect 09:41:34.151820 accept_connection 3 returned 4 09:41:34.151964 accept_connection 3 returned 0 09:41:34.152075 Read 93 bytes 09:41:34.152150 Process 93 bytes request 09:41:34.152224 Got request: GET /verifiedserver HTTP/1.1 09:41:34.152293 Are-we-friendly question received 09:41:34.152578 Wrote request (93 bytes) input to log/60/server.input 09:41:34.152747 Identifying ourselves as friends 09:41:34.153781 Response sent (56 bytes) and written to log/60/server.response 09:41:34.154015 special request received, no persistency 09:41:34.154083 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1494 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1494 valgrind: Fatal error at startup: a function redirectionCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1485 ./libtest/libtests lib1485 http://127.0.0.1:32895/1485 > log/17/stdout1485 2> log/17/stderr1485 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1540 ./libtest/libtests lib1540 http://127.0.0.1:45607/1540 > log/32/stdout1540 2> log/32/stderr1540 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1523 ./libtest/libtests lib1523 http://127.0.0.1:36877/1523 > log/29/stdout1523 2> log/29/stderr1523 RUN: Process with pid 73782 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1514 ./libtest/libtests lib1514 http://127.0.0.1:44647/1514 > log/7/stdout1514 2> log/7/stderr1514 valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1494 test 1536...[Test CURLINFO_RESPONSE_CODE CURLINFO_SCHEME] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1536 ./libtest/libtests lib1536 http://127.0.0.1:39659/1536 > log/2/stdout1536 2> log/2/stderr1536 1536: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1536 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1536 ./libtest/libtests lib1536 http://127.0.0.1:39659/1536 > log/2/stdout1536 2> log/2/stderr1536 === End of file commands.log === Start of file http_server.log 09:41:34.873232 ====> Client connect 09:41:34.873673 accept_connection 3 returned 4 09:41:34.873864 accept_connection 3 returned 0 09:41:34.874776 Read 93 bytes 09:41:34.874921 Process 93 bytes request 09:41:34.875004 Got request: GET /verifiedserver HTTP/1.1 09:41:34.875078 Are-we-friendly question received 09:41:34.875298 Wrote request (93 bytes) input to log/2/server.input 09:41:34.875559 Identifying ourselves as friends 09:41:34.876532 Response sent (56 bytes) and written to log/2/server.response 09:41:34.876649 special request received, no persistency 09:41:34.876717 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 1536 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind1536 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1536 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1516 ./libtest/libtests lib1515 path/1516 127.0.0.1 46523 > log/46/stdout1516 2> log/46/stderr1516 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1524 ../src/curl -q --output log/28/curl1524.out --include --trace-ascii log/28/trace1524 --trace-config all --trace-time http://127.0.0.1:37545/blah/1524 -L -T log/28/upload1524.txt > log/28/stdout1524 2> log/28/stderr1524 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1541 ./libtest/libtests lib1541 http://127.0.0.1:46481/1541 > log/26/stdout1541 2> log/26/stderr1541 test 1515...[caching of manual libcurl DNS entries after DNS cache timeout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1515 ./libtest/libtests lib1515 path/1515 127.0.0.1 43013 > log/4/stdout1515 2> log/4/stderr1515 1515: data FAILED: --- log/4/check-expected 2025-07-18 09:41:35.658736844 +0000 +++ log/4/check-generated 2025-07-18 09:41:35.657580365 +0000 @@ -1,2 +0,0 @@ -hello[LF] -hello[LF] == Contents of files in the log/4/ dir after test 1515 === Start of file check-expected hello[LF] hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1515 ./libtest/libtests lib1515 path/1515 127.0.0.1 43013 > log/4/stdout1515 2> log/4/stderr1515 === End of file commands.log === Start of file http_server.log 09:41:34.430680 ====> Client connect 09:41:34.431120 accept_connection 3 returned 4 09:41:34.431341 accept_connection 3 returned 0 09:41:34.431591 Read 93 bytes 09:41:34.431746 Process 93 bytes request 09:41:34.431864 Got request: GET /verifiedserver HTTP/1.1 09:41:34.431979 Are-we-friendly question received 09:41:34.432236 Wrote request (93 bytes) input to log/4/server.input 09:41:34.432545 Identifying ourselves as friends 09:41:34.437564 Response sent (56 bytes) and written to log/4/server.response 09:41:34.437726 special request received, no persistency 09:41:34.437792 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 1515 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind1515 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1515 test 1534...[CURLINFO_FILETIME init and reset] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1534 ./libtest/libtests lib1534 http://127.0.0.1:33413/1534 > log/5/stdout1534 2> log/5/stderr1534 1534: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1534 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1534 ./libtest/libtests lib1534 http://127.0.0.1:33413/1534 > log/5/stdout1534 2> log/5/stderr1534 === End of file commands.log === Start of file http_server.log 09:41:34.801273 ====> Client connect 09:41:34.801681 accept_connection 3 returned 4 09:41:34.801847 accept_connection 3 returned 0 09:41:34.801972 Read 93 bytes 09:41:34.802069 Process 93 bytes request 09:41:34.802163 Got request: GET /verifiedserver HTTP/1.1 09:41:34.802239 Are-we-friendly question received 09:41:34.802446 Wrote request (93 bytes) input to log/5/server.input 09:41:34.802742 Identifying ourselves as friends 09:41:34.803424 Response sent (56 bytes) and written to log/5/server.response 09:41:34.811667 special request received, no persistency 09:41:34.811758 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1534 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind1534 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1534 test 1531...[CURLOPT_POSTFIELDS with binary data set after multi_add_handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1531 ./libtest/libtests lib1531 127.0.0.1:36913/1531 > log/10/stdout1531 2> log/10/stderr1531 1531: protocol FAILED! There was no content at all in the file log/10/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/10/ dir after test 1531 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/sRUN: Process with pid 73782 gracefully died rc/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1531 ./libtest/libtests lib1531 127.0.0.1:36913/1531 > log/10/stdout1531 2> log/10/stderr1531 === End of file commands.log === Start of file http_server.log 09:41:34.754171 ====> Client connect 09:41:34.754636 accept_connection 3 returned 4 09:41:34.754842 accept_connection 3 returned 0 09:41:34.754973 Read 93 bytes 09:41:34.755073 Process 93 bytes request 09:41:34.755166 Got request: GET /verifiedserver HTTP/1.1 09:41:34.755252 Are-we-friendly question received 09:41:34.759600 Wrote request (93 bytes) input to log/10/server.input 09:41:34.759854 Identifying ourselves as friends 09:41:34.761996 Response sent (56 bytes) and written to log/10/server.response 09:41:34.762128 special request received, no persistency 09:41:34.762204 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 1531 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind1531 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1531 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1539 ./libtest/libtests lib1514 http://127.0.0.1:35093/1539 > log/41/stdout1539 2> log/41/stderr1539 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1550 ./libtest/libtests lib1550 http://127.0.0.1:47/1550 > log/18/stdout1550 2> log/18/stderr1550 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1538 ./libtest/libtests lib1538 nothing > log/54/stdout1538 2> log/54/stderr1538 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1545 ./libtest/libtests lib1545 http://127.0.0.1:37551/1545 > log/37/stdout1545 2> log/37/stderr1545 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1542 ./libtest/libtests lib1542 http://127.0.0.1:45557/1542 > log/31/stdout1542 2> log/31/stderr1542 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1535 ./libtest/libtests lib1535 http://127.0.0.1:42107/1535 > log/3/stdout1535 2> log/3/stderr1535 test 1513...[return failure immediately from progress callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1513 ./libtest/libtests lib1513 http://127.0.0.1:32871/1513 > log/11/stdout1513 2> log/11/stderr1513 1513: stdout FAILED: --- log/11/check-expected 2025-07-18 09:41:35.758580314 +0000 +++ log/11/check-generated 2025-07-18 09:41:35.757580314 +0000 @@ -1 +0,0 @@ -PROGRESSFUNCTION called[LF] == Contents of files in the log/11/ dir after test 1513 === Start of file check-expected PROGRESSFUNCTION called[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1513 ./libtest/libtests lib1513 http://127.0.0.1:32871/1513 > log/11/stdout1513 2> log/11/stderr1513 === End of file commands.log === Start of file http_server.log 09:41:34.494746 ====> Client connect 09:41:34.495061 accept_connection 3 returned 4 09:41:34.495217 accept_connection 3 returned 0 09:41:34.495348 Read 93 bytes 09:41:34.495436 Process 93 bytes request 09:41:34.495615 Got request: GET /verifiedserver HTTP/1.1 09:41:34.495698 Are-we-friendly question received 09:41:34.495908 Wrote request (93 bytes) input to log/11/server.input 09:41:34.496083 Identifying ourselves as friends 09:41:34.500968 Response sent (57 bytes) and written to log/11/server.response 09:41:34.501094 special request received, no persistency 09:41:34.501164 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:32871... * Connected to 127.0.0.1 (127.0.0.1) port 32871 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:32871 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 146188 === End of file http_verify.out === Start of file server.cmd Testnum 1513 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 146188 === End of file server.response === Start of file valgrind1513 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1513 * starts no server test 1530...[CURLOPT_OPENSOCKETFUNCTION returns bad socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1530 ./libtest/libtests lib1530 - > log/12/stdout1530 2> log/12/stderr1530 libtests returned 1, when expecting 7 1530: exit FAILED == Contents of files in the log/12/ dir after test 1530 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1530 ./libtest/libtests lib1530 - > log/12/stdout1530 2> log/12/stderr1530 === End of file commands.log === Start of file server.cmd Testnum 1530 === End of file server.cmd === Start of file valgrind1530 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1530 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1546 ../src/curl -q --output log/63/curl1546.out --include --trace-ascii log/63/trace1546 --trace-config all --trace-time http://127.0.0.1:38797/1546 --tr-encoding > log/63/stdout1546 2> log/63/stderr1546 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1533 ./libtest/libtests lib1533 http://127.0.0.1:46129/1533 > log/8/stdout1533 2> log/8/stderr1533 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1528 ./libtest/libtests lib1528 http://the.old.moo:34827/1528 127.0.0.1:43963 > log/21/stdout1528 2> log/21/stderr1528 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1543 ./libtest/libtests lib1518 "http://127.0.0.1:40633/ /with/ space/ /file" > log/1/stdout1543 2> log/1/stderr1543 test 1511...[HTTP GET time conditions in repeated requests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1511 ./libtest/libtests lib1511 http://127.0.0.1:44087/1511 > log/13/stdout1511 2> log/13/stderr1511 1511: data FAILED: --- log/13/check-expected 2025-07-18 09:41:35.845277410 +0000 +++ log/13/check-generated 2025-07-18 09:41:35.843580271 +0000 @@ -1,17 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fakem[CR][LF] -Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] -Content-Type: text/html[CR][LF] -Content-Length: 12[CR][LF] -Connection: close[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fakem[CR][LF] -Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] -Content-Type: text/html[CR][LF] -Content-Length: 12[CR][LF] -Connection: close[CR][LF] -[CR][LF] -Hello World[LF] == Contents of files in the log/13/ dir after test 1511 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fakem[CR][LF] Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] Content-Type: text/html[CR][LF] Content-Length: 12[CR][LF] Connection: close[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fakem[CR][LF] Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] Content-Type: text/html[CR][LF] Content-Length: 12[CR][LF] Connection: close[CR][LF] [CR][LF] Hello World[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1511 ./libtest/libtests lib1511 http://127.0.0.1:44087/1511 > log/13/stdout1511 2> log/13/stderr1511 === End of file commands.log === Start of file http_server.log 09:41:34.524886 ====> Client connect 09:41:34.525183 accept_connection 3 returned 4 09:41:34.525341 accept_connection 3 returned 0 09:41:34.525612 Read 93 bytes 09:41:34.525755 Process 93 bytes request 09:41:34.525859 Got request: GET /verifiedserver HTTP/1.1 09:41:34.525951 Are-we-friendly question received 09:41:34.526226 Wrote request (93 bytes) input to log/13/server.input 09:41:34.526417 Identifying ourselves as friends 09:41:34.532920 Response sent (56 bytes) and written to log/13/server.response 09:41:34.533070 special request received, no persistency 09:41:34.533171 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 1511 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file valgrind1511 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1511 test 1510...[HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1510 ./libtest/libtests lib1510 http://127.0.0.1:35435/path/1510 127.0.0.1 35435 > log/15/stdout1510 2> log/15/stderr1510 1510: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 1510 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1510 ./libtest/libtests lib1510 http://127.0.0.1:35435/path/1510 127.0.0.1 35435 > log/15/stdout1510 2> log/15/stderr1510 === End of file commands.log === Start of file http_server.log 09:41:34.419675 ====> Client connect 09:41:34.419983 accept_connection 3 returned 4 09:41:34.422690 accept_connection 3 returned 0 09:41:34.422922 Read 93 bytes 09:41:34.423047 Process 93 bytes request 09:41:34.423185 Got request: GET /verifiedserver HTTP/1.1 09:41:34.423317 Are-we-friendly question received 09:41:34.423720 Wrote request (93 bytes) input to log/15/server.input 09:41:34.423950 Identifying ourselves as friends 09:41:34.424953 Response sent (56 bytes) and written to log/15/server.response 09:41:34.425093 special request received, no persistency 09:41:34.425182 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 1510 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file valgrind1510 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1510 test 1520...[SMTP with CRLF-dot-CRLF in data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1520 ./libtest/libtests lib1520 smtp://127.0.0.1:35885/1520 log/22/stdout1520 2> log/22/stderr1520 1520: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 1520 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1520 ./libtest/libtests lib1520 smtp://127.0.0.1:35885/1520 log/22/stdout1520 2> log/22/stderr1520 === End of file commands.log === Start of file server.cmd Testnum 1520 === End of file server.cmd === Start of file smtp_server.log 09:41:34.301890 ====> Client connect 09:41:34.304976 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:34.316351 < "EHLO verifiedserver" 09:41:34.319965 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:34.321988 < "HELP" 09:41:34.322347 > "214 WE ROOLZ: 117856[CR][LF]" 09:41:34.322540 return proof we are we 09:41:34.325672 < "QUIT" 09:41:34.329921 > "221 curl ESMTP server signing off[CR][LF]" 09:41:34.334145 MAIN sockfilt said DISC 09:41:34.334422 ====> Client disconnected 09:41:34.334914 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:34.554647 ====> Client connect 09:41:34.556906 Received DATA (on stdin) 09:41:34.557070 > 160 bytes data, server => client 09:41:34.559026 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:34.559160 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:34.559245 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:34.566574 < 21 bytes data, client => server 09:41:34.567084 'EHLO verifiedserver\r\n' 09:41:34.571124 Received DATA (on stdin) 09:41:34.571271 > 53 bytes data, server => client 09:41:34.574105 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:34.574898 < 6 bytes data, client => server 09:41:34.575048 'HELP\r\n' 09:41:34.576533 Received DATA (on stdin) 09:41:34.576676 > 22 bytes data, server => client 09:41:34.576758 '214 WE ROOLZ: 117856\r\n' 09:41:34.578687 < 6 bytes data, client => server 09:41:34.578839 'QUIT\r\n' 09:41:34.579826 Received DATA (on stdin) 09:41:34.580081 > 35 bytes data, server => client 09:41:34.584630 '221 curl ESMTP server signing off\r\n' 09:41:34.587574 ====> Client disconnect 09:41:34.590131 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1520 From: different To: another . . . body === End of file stdin-for-1520 === Start of file valgrind1520 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1520 test 1519...[Extract Location: with broken absolute URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1519 ./libtest/libtests lib1518 http://127.0.0.1:36559/1519 > log/33/stdout1519 2> log/33/stderr1519 1519: stdout FAILED: --- log/33/check-expected 2025-07-18 09:41:35.949181717 +0000 +++ log/33/check-generated 2025-07-18 09:41:35.947580218 +0000 @@ -1,5 +0,0 @@ -res 0[LF] -status 302[LF] -redirects 0[LF] -effectiveurl http://127.0.0.1:36559/1519[LF] -redirecturl http://127.0.0.1:36559/h%20ttp://1.2.4.5/test[LF] == Contents of files in the log/33/ dir after test 1519 === Start of file check-expected res 0[LF] status 302[LF] redirects 0[LF] effectiveurl http://127.0.0.1:36559/1519[LF] redirecturl http://127.0.0.1:36559/h%20ttp://1.2.4.5/test[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1519 ./libtest/libtests lib1518 http://127.0.0.1:36559/1519 > log/33/stdout1519 2> log/33/stderr1519 === End of file commands.log === Start of file http_server.log 09:41:34.459796 ====> Client connect 09:41:34.460108 accept_connection 3 returned 4 09:41:34.460256 accept_connection 3 returned 0 09:41:34.460387 Read 93 bytes 09:41:34.460582 Process 93 bytes request 09:41:34.460731 Got request: GET /verifiedserver HTTP/1.1 09:41:34.460812 Are-we-friendly question received 09:41:34.461027 Wrote request (93 bytes) input to log/33/server.input 09:41:34.461205 Identifying ourselves as friends 09:41:34.462250 Response sent (56 bytes) and written to log/33/server.response 09:41:34.462401 special request received, no persistency 09:41:34.462545 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 1519 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind1519 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1519 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1547 ../src/curl -q --output log/36/curl1547.out --include --trace-ascii log/36/trace1547 --trace-config all --trace-time ftp://127.0.0.1:45965/test-1547/ -P 127.0.0.1 --ftp-pasv > log/36/stdout1547 2> log/36/stderr1547 test 1522...[CURLINFO_SIZE_UPLOAD with small SO_SNDBUF] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1522 ./libtest/libtests lib1522 http://127.0.0.1:33117/1522 > log/34/stdout1522 2> log/34/stderr1522 1522: stdout FAILED: --- log/34/check-expected 2025-07-18 09:41:36.003580190 +0000 +++ log/34/check-generated 2025-07-18 09:41:36.002580190 +0000 @@ -1,3 +0,0 @@ --foo-[LF] -uploadSize = 40960[LF] -!!!!!!!!!! PASS[LF] == Contents of files in the log/34/ dir after test 1522 === Start of file check-expected -foo-[LF] uploadSize = 40960[LF] !!!!!!!!!! PASS[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1522 ./libtest/libtests lib1522 http://127.0.0.1:33117/1522 > log/34/stdout1522 2> log/34/stderr1522 === End of file commands.log === Start of file http_server.log 09:41:34.602438 ====> Client connect 09:41:34.602865 accept_connection 3 returned 4 09:41:34.603016 accept_connection 3 returned 0 09:41:34.603147 Read 93 bytes 09:41:34.603241 Process 93 bytes request 09:41:34.603322 Got request: GET /verifiedserver HTTP/1.1 09:41:34.603392 Are-we-friendly question received 09:41:34.603667 Wrote request (93 bytes) input to log/34/server.input 09:41:34.603831 Identifying ourselves as friends 09:41:34.604446 Response sent (56 bytes) and written to log/34/server.response 09:41:34.604628 special request received, no persistency 09:41:34.604689 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33117... * Connected to 127.0.0.1 (127.0.0.1) port 33117 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33117 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73777 === End of file http_verify.out === Start of file server.cmd Testnum 1522 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73777 === End of file server.response === Start of file valgrind1522 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1522 test 1518...[Extract Location: with broken URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1518 ./libtest/libtests lib1518 http://127.0.0.1:41267/1518 > log/43/stdout1518 2> log/43/stderr1518 1518: stdout FAILED: --- log/43/check-expected 2025-07-18 09:41:36.052580165 +0000 +++ log/43/check-generated 2025-07-18 09:41:36.051580165 +0000 @@ -1,5 +0,0 @@ -res 0[LF] -status 302[LF] -redirects 0[LF] -effectiveurl http://127.0.0.1:41267/1518[LF] -redirecturl http://1.2 .4.5/test[LF] == Contents of files in the log/43/ dir after test 1518 === Start of file check-expected res 0[LF] status 302[LF] redirects 0[LF] effectiveurl http://127.0.0.1:41267/1518[LF] redirecturl http://1.2 .4.5/test[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1518 ./libtest/libtests lib1518 http://127.0.0.1:41267/1518 > log/43/stdout1518 2> log/43/stderr1518 === End of file commands.log === Start of file http_server.log 09:41:34.447882 ====> Client connect 09:41:34.448191 accept_connection 3 returned 4 09:41:34.448356 accept_connection 3 returned 0 09:41:34.449029 Read 93 bytes 09:41:34.449174 Process 93 bytes request 09:41:34.449265 Got request: GET /verifiedserver HTTP/1.1 09:41:34.449354 Are-we-friendly question received 09:41:34.449678 Wrote request (93 bytes) input to log/43/server.input 09:41:34.449872 Identifying ourselves as friends 09:41:34.450412 Response sent (56 bytes) and written to log/43/server.response 09:41:34.450610 special request received, no persistency 09:41:34.450689 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 1518 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind1518 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1518 test 1507...[SMTP with multi interface and CURLE_ABORTED_BY_CALLBACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1507 ./libtest/libtests lib1507 smtp://127.0.0.1:37993/1507 log/48/stdout1507 2> log/48/stderr1507 1507: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 1507 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1507 ./libtest/libtests lib1507 smtp://127.0.0.1:37993/1507 log/48/stdout1507 2> log/48/stderr1507 === End of file commands.log === Start of file server.cmd Testnum 1507 === End of file server.cmd === Start of file smtp_server.log 09:41:34.253688 ====> Client connect 09:41:34.255031 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:34.265401 < "EHLO verifiedserver" 09:41:34.267929 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:34.269671 < "HELP" 09:41:34.270919 > "214 WE ROOLZ: 118339[CR][LF]" 09:41:34.271137 return proof we are we 09:41:34.275161 < "QUIT" 09:41:34.275622 > "221 curl ESMTP server signing off[CR][LF]" 09:41:34.280215 MAIN sockfilt said DISC 09:41:34.280475 ====> Client disconnected 09:41:34.280913 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:34.506872 ====> Client connect 09:41:34.516583 Received DATA (on stdin) 09:41:34.516743 > 160 bytes data, server => client 09:41:34.516836 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:34.516922 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:34.517002 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:34.518018 < 21 bytes data, client => server 09:41:34.518168 'EHLO verifiedserver\r\n' 09:41:34.519648 Received DATA (on stdin) 09:41:34.519786 > 53 bytes data, server => client 09:41:34.522098 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:34.522774 < 6 bytes data, client => server 09:41:34.522895 'HELP\r\n' 09:41:34.523782 Received DATA (on stdin) 09:41:34.523904 > 22 bytes data, server => client 09:41:34.525027 '214 WE ROOLZ: 118339\r\n' 09:41:34.525952 < 6 bytes data, client => server 09:41:34.526079 'QUIT\r\n' 09:41:34.529738 Received DATA (on stdin) 09:41:34.529887 > 35 bytes data, server => client 09:41:34.529972 '221 curl ESMTP server signing off\r\n' 09:41:34.533626 ====> Client disconnect 09:41:34.534880 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1507 From: different To: another body === End of file stdin-for-1507 === Start of file valgrind1507 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1507 test 1501...[FTP with multi interface and slow LIST response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1501 ./libtest/libtests lib1501 ftp://127.0.0.1:34533/1501/ > log/49/stdout1501 2> log/49/stderr1501 1501: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 1501 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1501 ./libtest/libtests lib1501 ftp://127.0.0.1:34533/1501/ > log/49/stdout1501 2> log/49/stderr1501 === End of file commands.log === Start of file ftp_server.log 09:41:34.047592 ====> Client connect 09:41:34.049557 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:34.052394 < "USER anonymous" 09:41:34.054481 > "331 We are happy you popped in![CR][LF]" 09:41:34.055304 < "PASS ftp@example.com" 09:41:34.055845 > "230 Welcome you silly person[CR][LF]" 09:41:34.058198 < "PWD" 09:41:34.059095 > "257 "/" is current directory[CR][LF]" 09:41:34.061110 < "EPSV" 09:41:34.061422 ====> Passive DATA channel requested by client 09:41:34.061644 DATA sockfilt for passive data channel starting... 09:41:34.076089 DATA sockfilt for passive data channel started (pid 150969) 09:41:34.077168 DATA sockfilt for passive data channel listens on port 35065 09:41:34.077570 > "229 Entering Passive Mode (|||35065|)[LF]" 09:41:34.077736 Client has been notified that DATA conn will be accepted on port 35065 09:41:34.080011 Client connects to port 35065 09:41:34.080325 ====> Client established passive DATA connection on port 35065 09:41:34.081172 < "TYPE I" 09:41:34.081697 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:34.083619 < "SIZE verifiedserver" 09:41:34.084056 > "213 17[CR][LF]" 09:41:34.085656 < "RETR verifiedserver" 09:41:34.086044 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:34.086567 =====> Closing passive DATA connection... 09:41:34.086726 Server disconnects passive DATA connection 09:41:34.088224 Fancy that; client wants to DISC, too 09:41:34.089135 Server disconnected passive DATA connection 09:41:34.089438 DATA sockfilt for passive data channel quits (pid 150969) 09:41:34.091470 DATA sockfilt for passive data channel quit (pid 150969) 09:41:34.091718 =====> Closed passive DATA connection 09:41:34.092193 > "226 File transfer complete[CR][LF]" 09:41:34.129821 < "QUIT" 09:41:34.130976 > "221 bye bye baby[CR][LF]" 09:41:34.137254 MAIN sockfilt said DISC 09:41:34.138234 ====> Client disconnected 09:41:34.138913 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:34.300697 ====> Client connect 09:41:34.302847 Received DATA (on stdin) 09:41:34.303006 > 160 bytes data, server => client 09:41:34.303692 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:34.303840 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:34.303921 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:34.304917 < 16 bytes data, client => server 09:41:34.305075 'USER anonymous\r\n' 09:41:34.306756 Received DATA (on stdin) 09:41:34.306924 > 33 bytes data, server => client 09:41:34.307124 '331 We are happy you popped in!\r\n' 09:41:34.307843 < 22 bytes data, client => server 09:41:34.307990 'PASS ftp@example.com\r\n' 09:41:34.310068 Received DATA (on stdin) 09:41:34.310233 > 30 bytes data, server => client 09:41:34.310330 '230 Welcome you silly person\r\n' 09:41:34.311084 < 5 bytes data, client => server 09:41:34.311236 'PWD\r\n' 09:41:34.312326 Received DATA (on stdin) 09:41:34.312563 > 30 bytes data, server => client 09:41:34.313145 '257 "/" is current directory\r\n' 09:41:34.313959 < 6 bytes data, client => server 09:41:34.314116 'EPSV\r\n' 09:41:34.331360 Received DATA (on stdin) 09:41:34.331618 > 38 bytes data, server => client 09:41:34.331729 '229 Entering Passive Mode (|||35065|)\n' 09:41:34.333664 < 8 bytes data, client => server 09:41:34.333811 'TYPE I\r\n' 09:41:34.335774 Received DATA (on stdin) 09:41:34.335894 > 33 bytes data, server => client 09:41:34.335970 '200 I modify TYPE as you wanted\r\n' 09:41:34.336615 < 21 bytes data, client => server 09:41:34.336760 'SIZE verifiedserver\r\n' 09:41:34.338053 Received DATA (on stdin) 09:41:34.338157 > 8 bytes data, server => client 09:41:34.338222 '213 17\r\n' 09:41:34.338757 < 21 bytes data, client => server 09:41:34.338881 'RETR verifiedserver\r\n' 09:41:34.340663 Received DATA (on stdin) 09:41:34.340786 > 29 bytes data, server => client 09:41:34.340857 '150 Binary junk (17 bytes).\r\n' 09:41:34.345913 Received DATA (on stdin) 09:41:34.346061 > 28 bytes data, server => client 09:41:34.346140 '226 File transfer complete\r\n' 09:41:34.382648 < 6 bytes data, client => server 09:41:34.382815 'QUIT\r\n' 09:41:34.383950 Received DATA (on stdin) 09:41:34.384093 > 18 bytes data, server => client 09:41:34.384262 '221 bye bye baby\r\n' 09:41:34.390582 ====> Client disconnect 09:41:34.391325 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:34.328358 Running IPv4 version 09:41:34.328947 Listening on port 35065 09:41:34.329300 Wrote pid 150969 to log/49/server/ftp_sockdata.pid 09:41:34.329434 Received PING (on stdin) 09:41:34.330262 Received PORT (on stdin) 09:41:34.333185 ====> Client connect 09:41:34.340117 Received DATA (on stdin) 09:41:34.340297 > 17 bytes data, server => client 09:41:34.340395 'WE ROOLZ: 77434\r\n' 09:41:34.341613 ====> Client disconnect 09:41:34.341971 Received DISC (on stdin) 09:41:34.342091 Crikey! Client also wants to disconnect 09:41:34.342245 Received ACKD (on stdin) 09:41:34.343401 Received QUIT (on stdin) 09:41:34.343602 quits 09:41:34.344057 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd DELAY LIST 2 DELAY TYPE 2 Testnum 1501 === End of file server.cmd === Start of file valgrind1501 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1501 test 1499...[HTTP chunked encoding and chunked trailer, twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1499 ../src/curl -q --output log/51/curl1499.out --include --trace-ascii log/51/trace1499 --trace-config all --trace-time http://127.0.0.1:34903/1499 http://127.0.0.1:34903/1499 -D log/51/heads1499 > log/51/stdout1499 2> log/51/stderr1499 1499: protocol FAILED! There was no content at all in the file log/51/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 1499 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1499 ../src/curl -q --output log/51/curl1499.out --include --trace-ascii log/51/trace1499 --trace-config all --trace-time http://127.0.0.1:34903/1499 http://127.0.0.1:34903/1499 -D log/51/heads1499 > log/51/stdout1499 2> log/51/stderr1499 === End of file commands.log === Start of file http_server.log 09:41:34.234051 ====> Client connect 09:41:34.234668 accept_connection 3 returned 4 09:41:34.234908 accept_connection 3 returned 0 09:41:34.238091 Read 93 bytes 09:41:34.238275 Process 93 bytes request 09:41:34.238394 Got request: GET /verifiedserver HTTP/1.1 09:41:34.238592 Are-we-friendly question received 09:41:34.238916 Wrote request (93 bytes) input to log/51/server.input 09:41:34.239161 Identifying ourselves as friends 09:41:34.245211 Response sent (56 bytes) and written to log/51/server.response 09:41:34.245366 special request received, no persistency 09:41:34.245525 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1499 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind1499 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1499 * starts no server test 1537...[libcurl URL escape/unescape tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1537 ./libtest/libtests lib1537 nothing > log/58/stdout1537 2> log/58/stderr1537 1537: stdout FAILED: --- log/58/check-expected 2025-07-18 09:41:36.136105063 +0000 +++ log/58/check-generated 2025-07-18 09:41:36.134580123 +0000 @@ -1,8 +0,0 @@ -%2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] -%2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] -outlen == 14[LF] -unescape == original? YES[LF] -[old] outlen == 14[LF] -[old] unescape == original? YES[LF] -escape -1 length: (nil)[LF] -unescape -1 length: (nil) 2017[LF] == Contents of files in the log/58/ dir after test 1537 === Start of file check-expected %2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] %2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] outlen == 14[LF] unescape == original? YES[LF] [old] outlen == 14[LF] [old] unescape == original? YES[LF] escape -1 length: (nil)[LF] unescape -1 length: (nil) 2017[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1537 ./libtest/libtests lib1537 nothing > log/58/stdout1537 2> log/58/stderr1537 === End of file commands.log === Start of file server.cmd Testnum 1537 === End of file server.cmd === Start of file valgrind1537 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1537 test 1532...[Test CURLINFO_RESPONSE_CODE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1532 ./libtest/libtests lib1532 http://127.0.0.1:44381/1532 > log/61/stdout1532 2> log/61/stderr1532 1532: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 1532 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1532 ./libtest/libtests lib1532 http://127.0.0.1:44381/1532 > log/61/stdout1532 2> log/61/stderr1532 === End of file commands.log === Start of file http_server.log 09:41:34.839634 ====> Client connect 09:41:34.839909 accept_connection 3 returned 4 09:41:34.840043 accept_connection 3 returned 0 09:41:34.842280 Read 93 bytes 09:41:34.842411 Process 93 bytes request 09:41:34.842557 Got request: GET /verifiedserver HTTP/1.1 09:41:34.842642 Are-we-friendly question received 09:41:34.842856 Wrote request (93 bytes) input to log/61/server.input 09:41:34.843004 Identifying ourselves as friends 09:41:34.843672 Response sent (56 bytes) and written to log/61/server.response 09:41:34.843784 special request received, no persistency 09:41:34.843851 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 1532 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind1532 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1532 test 1506...[HTTP GET connection cache limit (CURLMOPT_MAXCONNECTS)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1506 ./libtest/libtests lib1506 http://127.0.0.1:38899/path/1506 127.0.0.1 38899 > log/62/stdout1506 2> log/62/stderr1506 1506: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1506 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1506 ./libtest/libtests lib1506 http://127.0.0.1:38899/path/1506 127.0.0.1 38899 > log/62/stdout1506 2> log/62/stderr1506 === End of file commands.log === Start of file http_server.log 09:41:34.392069 ====> Client connect 09:41:34.392420 accept_connection 3 returned 4 09:41:34.392749 accept_connection 3 returned 0 09:41:34.393348 Read 93 bytes 09:41:34.393558 Process 93 bytes request 09:41:34.393671 Got request: GET /verifiedserver HTTP/1.1 09:41:34.393765 Are-we-friendly question received 09:41:34.394034 Wrote request (93 bytes) input to log/62/server.input 09:41:34.394245 Identifying ourselves as friends 09:41:34.396163 Response sent (56 bytes) and written to log/62/server.response 09:41:34.396277 special request received, no persistency 09:41:34.396345 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1506 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1506 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1506 test 1543...[CURLOPT_CURLU, URL with space and CURLINFO_EFFECTIVE_URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1543 ./libtest/libtests lib1518 "http://127.0.0.1:40633/ /with/ space/ /file" > log/1/stdout1543 2> log/1/stderr1543 1543: stdout FAILED: --- log/1/check-expected 2025-07-18 09:41:36.241580069 +0000 +++ log/1/check-generated 2025-07-18 09:41:36.240580070 +0000 @@ -1,5 +0,0 @@ -res 0[LF] -status 200[LF] -redirects 1[LF] -effectiveurl http://127.0.0.1:40633/%20/with/%20space/15430002[LF] -redirecturl blank[LF] == Contents of files in the log/1/ dir after test 1543 === Start of file check-expected res 0[LF] status 200[LF] redirects 1[LF] effectiveurl http://127.0.0.1:40633/%20/with/%20space/15430002[LF] redirecturl blank[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1543 ./libtest/libtests lib1518 "http://127.0.0.1:40633/ /with/ space/ /file" > log/1/stdout1543 2> log/1/stderr1543 === End of file commands.log === Start of file http_server.log 09:41:35.024643 ====> Client connect 09:41:35.024962 accept_connection 3 returned 4 09:41:35.025123 accept_connection 3 returned 0 09:41:35.025260 Read 93 bytes 09:41:35.025353 Process 93 bytes request 09:41:35.025431 Got request: GET /verifiedserver HTTP/1.1 09:41:35.025614 Are-we-friendly question received 09:41:35.025853 Wrote request (93 bytes) input to log/1/server.input 09:41:35.026018 Identifying ourselves as friends 09:41:35.026877 Response sent (56 bytes) and written to log/1/server.response 09:41:35.027004 special request received, no persistency 09:41:35.027064 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 1543 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind1543 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1543 test 1535...[Test CURLINFO_RESPONSE_CODE CURLINFO_PROTOCOL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1535 ./libtest/libtests lib1535 http://127.0.0.1:42107/1535 > log/3/stdout1535 2> log/3/stderr1535 1535: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1535 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1535 ./libtest/libtests lib1535 http://127.0.0.1:42107/1535 > log/3/stdout1535 2> log/3/stderr1535 === End of file commands.log === Start of file http_server.log 09:41:34.851749 ====> Client connect 09:41:34.852077 accept_connection 3 returned 4 09:41:34.852290 accept_connection 3 returned 0 09:41:34.852549 Read 93 bytes 09:41:34.852694 Process 93 bytes request 09:41:34.852793 Got request: GET /verifiedserver HTTP/1.1 09:41:34.852868 Are-we-friendly question received 09:41:34.854756 Wrote request (93 bytes) input to log/3/server.input 09:41:34.855047 Identifying ourselves as friends 09:41:34.855942 Response sent (56 bytes) and written to log/3/server.response 09:41:34.856060 special request received, no persistency 09:41:34.856131 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 1535 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind1535 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1535 test 1514...[HTTP POST with read callback and unknown data size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1514 ./libtest/libtests lib1514 http://127.0.0.1:44647/1514 > log/7/stdout1514 2> log/7/stderr1514 1514: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1514 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1514 ./libtest/libtests lib1514 http://127.0.0.1:44647/1514 > log/7/stdout1514 2> log/7/stderr1514 === End of file commands.log === Start of file http_server.log 09:41:34.470918 ====> Client connect 09:41:34.471240 accept_connection 3 returned 4 09:41:34.471399 accept_connection 3 returned 0 09:41:34.471689 Read 93 bytes 09:41:34.471822 Process 93 bytes request 09:41:34.471913 Got request: GET /verifiedserver HTTP/1.1 09:41:34.472009 Are-we-friendly question received 09:41:34.472246 Wrote request (93 bytes) input to log/7/server.input 09:41:34.472418 Identifying ourselves as friends 09:41:34.475309 Response sent (56 bytes) and written to log/7/server.response 09:41:34.475426 special request received, no persistency 09:41:34.475574 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 1514 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind1514 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1514 test 1533...[HTTP with CURLOPT_KEEP_SENDING_ON_ERROR and an early error response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1533 ./libtest/libtests lib1533 http://127.0.0.1:46129/1533 > log/8/stdout1533 2> log/8/stderr1533 1533: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1533 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1533 ./libtest/libtests lib1533 http://127.0.0.1:46129/1533 > log/8/stdout1533 2> log/8/stderr1533 === End of file commands.log === Start of file http_server.log 09:41:35.030719 ====> Client connect 09:41:35.031105 accept_connection 3 returned 4 09:41:35.031276 accept_connection 3 returned 0 09:41:35.031408 Read 93 bytes 09:41:35.031614 Process 93 bytes request 09:41:35.031731 Got request: GET /verifiedserver HTTP/1.1 09:41:35.031820 Are-we-friendly question received 09:41:35.032063 Wrote request (93 bytes) input to log/8/server.input 09:41:35.032260 Identifying ourselves as friends 09:41:35.036105 Response sent (56 bytes) and written to log/8/server.response 09:41:35.036236 special request received, no persistency 09:41:35.036305 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd auth_required Testnum 1533 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind1533 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1533 startnew: /build/curl/src/curl/tests/negtelnetserver.py --port 34225 --pidfile "log/14/server/telnet_server.pid" --logfile "log/14/telnet_server.log" --srcdir "/build/curl/src/curl/tests" startnew: child process has died, server might start up RUN: failed to start the TELNET server test 1452 SKIPPED: failed starting neg TELNET server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/17/server/http_server.pid" --logfile "log/17/http_server.log" --logdir "log/17" --portfile log/17/server/http_server.port --config log/17/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 150350 port 32895 * pid http => 150350 150350 test 1485...[get curlinfo on last header in callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1485 ./libtest/libtests lib1485 http://127.0.0.1:32895/1485 > log/17/stdout1485 2> log/17/stderr1485 1485: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1485 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1485 ./libtest/libtests lib1485 http://127.0.0.1:32895/1485 > log/17/stdout1485 2> log/17/stderr1485 === End of file commands.log === Start of file http_server.log 09:41:33.190409 Running HTTP IPv4 version on port 32895 09:41:33.191285 Wrote pid 150350 to log/17/server/http_server.pid 09:41:33.191865 Wrote port 32895 to log/17/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 1485 === End of file server.cmd === Start of file valgrind1485 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1485 * starts no server test 1550...[verify setting pipelining blocklisting options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1550 ./libtest/libtests lib1550 http://127.0.0.1:47/1550 > log/18/stdout1550 2> log/18/stderr1550 libtests returned 1, when expecting 0 1550: exit FAILED == Contents of files in the log/18/ dir after test 1550 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1550 ./libtest/libtests lib1550 http://127.0.0.1:47/1550 > log/18/stdout1550 2> log/18/stderr1550 === End of file commands.log === Start of file server.cmd Testnum 1550 === End of file server.cmd === Start of file valgrind1550 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1550 startnew: /build/curl/src/curl/tests/smbserver.py --port 45989 --pidfile "log/20/server/smb_server.pid" --logfile "log/20/smb_server.log" --srcdir "/build/curl/src/curl/tests" --host 127.0.0.1 startnew: child process has died, server might start up RUN: failed to start the SMB server test 1451 SKIPPED: failed starting SMB server CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1529 ./libtest/libtests lib1529 "http://the.old.moo:35697/1529" 127.0.0.1:45995 > log/19/stdout1529 2> log/19/stderr1529 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1509 ./libtest/libtests lib1509 http://the.old.moo.1509:34829/1509 127.0.0.1:34163 > log/16/stdout1509 2> log/16/stderr1509 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1525 ./libtest/libtests lib1525 http://the.old.moo.1525:42323/1525 127.0.0.1:45737 > log/27/stdout1525 2> log/27/stderr1525 test 1528...[Separately specified proxy/server headers sent in a proxy GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1528 ./libtest/libtests lib1528 http://the.old.moo:34827/1528 127.0.0.1:43963 > log/21/stdout1528 2> log/21/stderr1528 1528: data FAILED: --- log/21/check-expected 2025-07-18 09:41:36.352580013 +0000 +++ log/21/check-generated 2025-07-18 09:41:36.351580013 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Content-Length: 5[CR][LF] -[CR][LF] -stop[LF] == Contents of files in the log/21/ dir after test 1528 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Content-Length: 5[CR][LF] [CR][LF] stop[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1528 ./libtest/libtests lib1528 http://the.old.moo:34827/1528 127.0.0.1:43963 > log/21/stdout1528 2> log/21/stderr1528 === End of file commands.log === Start of file http2_server.log 09:41:35.224362 ====> Client connect 09:41:35.226092 accept_connection 3 returned 4 09:41:35.226245 accept_connection 3 returned 0 09:41:35.226357 Read 93 bytes 09:41:35.226442 Process 93 bytes request 09:41:35.226620 Got request: GET /verifiedserver HTTP/1.1 09:41:35.226746 Are-we-friendly question received 09:41:35.227027 Wrote request (93 bytes) input to log/21/proxy.input 09:41:35.227283 Identifying ourselves as friends 09:41:35.228246 Response sent (56 bytes) and written to log/21/proxy.response 09:41:35.228432 special request received, no persistency 09:41:35.231684 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:43963... * Connected to 127.0.0.1 (127.0.0.1) port 43963 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43963 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 88297 === End of file http2_verify.out === Start of file http_server.log 09:41:34.789131 ====> Client connect 09:41:34.789421 accept_connection 3 returned 4 09:41:34.789781 accept_connection 3 returned 0 09:41:34.790424 Read 93 bytes 09:41:34.790630 Process 93 bytes request 09:41:34.790713 Got request: GET /verifiedserver HTTP/1.1 09:41:34.790798 Are-we-friendly question received 09:41:34.791018 Wrote request (93 bytes) input to log/21/server.input 09:41:34.791193 Identifying ourselves as friends 09:41:34.791792 Response sent (56 bytes) and written to log/21/server.response 09:41:34.791896 special request received, no persistency 09:41:34.791960 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 88297 === End of file proxy.response === Start of file server.cmd Testnum 1528 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind1528 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1528 test 1541...[chunked with trailers and pausing the receive] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1541 ./libtest/libtests lib1541 http://127.0.0.1:46481/1541 > log/26/stdout1541 2> log/26/stderr1541 1541: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 1541 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1541 ./libtest/libtests lib1541 http://127.0.0.1:46481/1541 > log/26/stdout1541 2> log/26/stderr1541 === End of file commands.log === Start of file http_server.log 09:41:34.932082 ====> Client connect 09:41:34.932371 accept_connection 3 returned 4 09:41:34.932709 accept_connection 3 returned 0 09:41:34.942671 Read 93 bytes 09:41:34.942833 Process 93 bytes request 09:41:34.942929 Got request: GET /verifiedserver HTTP/1.1 09:41:34.943031 Are-we-friendly question received 09:41:34.943309 Wrote request (93 bytes) input to log/26/server.input 09:41:34.943618 Identifying ourselves as friends 09:41:34.944170 Response sent (56 bytes) and written to log/26/server.response 09:41:34.944287 special request received, no persistency 09:41:34.944356 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1541 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1541 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1541 test 1524...[HTTP PUT with 303 redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1524 ../src/curl -q --output log/28/curl1524.out --include --trace-ascii log/28/trace1524 --trace-config all --trace-time http://127.0.0.1:37545/blah/1524 -L -T log/28/upload1524.txt > log/28/stdout1524 2> log/28/stderr1524 1524: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 1524 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1524 ../src/curl -q --output log/28/curl1524.out --include --trace-ascii log/28/trace1524 --trace-config all --trace-time http://127.0.0.1:37545/blah/1524 -L -T log/28/upload1524.txt > log/28/stdout1524 2> log/28/stderr1524 === End of file commands.log === Start of file http_server.log 09:41:34.615808 ====> Client connect 09:41:34.616101 accept_connection 3 returned 4 09:41:34.616251 accept_connection 3 returned 0 09:41:34.616372 Read 93 bytes 09:41:34.616541 Process 93 bytes request 09:41:34.616659 Got request: GET /verifiedserver HTTP/1.1 09:41:34.616741 Are-we-friendly question received 09:41:34.616962 Wrote request (93 bytes) input to log/28/server.input 09:41:34.617119 Identifying ourselves as friends 09:41:34.617857 Response sent (56 bytes) and written to log/28/server.response 09:41:34.617971 special request received, no persistency 09:41:34.618033 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 1524 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file upload1524.txt moo === End of file upload1524.txt === Start of file valgrind1524 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1524 test 1523...[CURLINFO_LOW_SPEED_LIMIT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1523 ./libtest/libtests lib1523 http://127.0.0.1:36877/1523 > log/29/stdout1523 2> log/29/stderr1523 libtests returned 1, when expecting 0 1523: exit FAILED == Contents of files in the log/29/ dir after test 1523 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1523 ./libtest/libtests lib1523 http://127.0.0.1:36877/1523 > log/29/stdout1523 2> log/29/stderr1523 === End of file commands.log === Start of file http_server.log 09:41:34.622360 ====> Client connect 09:41:34.622794 accept_connection 3 returned 4 09:41:34.622945 accept_connection 3 returned 0 09:41:34.623063 Read 93 bytes 09:41:34.623150 Process 93 bytes request 09:41:34.623242 Got request: GET /verifiedserver HTTP/1.1 09:41:34.623322 Are-we-friendly question received 09:41:34.623629 Wrote request (93 bytes) input to log/29/server.input 09:41:34.623812 Identifying ourselves as friends 09:41:34.626568 Response sent (56 bytes) and written to log/29/server.response 09:41:34.626733 special request received, no persistency 09:41:34.626802 ====> Client disconnect 0 exit_signal_handler: called 09:41:35.901423 signalled to die 09:41:35.902365 ========> IPv4 sws (port 36877 pid: 73782) exits with signal (15) 09:41:35.902601 ========> sws quits === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36877... * Connected to 127.0.0.1 (127.0.0.1) port 36877 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36877 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73782 === End of file http_verify.out === Start of file server.cmd writedelay: 1000 Testnum 1523 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73782 === End of file server.response === Start of file valgrind1523 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1523 test 1542...[connection reuse with CURLOPT_MAXLIFETIME_CONN] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1542 ./libtest/libtests lib1542 http://127.0.0.1:45557/1542 > log/31/stdout1542 2> log/31/stderr1542 1542: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1542 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1542 ./libtest/libtests lib1542 http://127.0.0.1:45557/1542 > log/31/stdout1542 2> log/31/stderr1542 === End of file commands.log === Start of file http_server.log 09:41:35.084769 ====> Client connect 09:41:35.085070 accept_connection 3 returned 4 09:41:35.085208 accept_connection 3 returned 0 09:41:35.085322 Read 93 bytes 09:41:35.085397 Process 93 bytes request 09:41:35.087675 Got request: GET /verifiedserver HTTP/1.1 09:41:35.087812 Are-we-friendly question received 09:41:35.088081 Wrote request (93 bytes) input to log/31/server.input 09:41:35.088310 Identifying ourselves as friends 09:41:35.092954 Response sent (56 bytes) and written to log/31/server.response 09:41:35.093095 special request received, no persistency 09:41:35.093192 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 1542 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1542 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1542 test 1540...[chunked with trailers and pausing the receive] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1540 ./libtest/libtests lib1540 http://127.0.0.1:45607/1540 > log/32/stdout1540 2> log/32/stderr1540 1540: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 1540 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1540 ./libtest/libtests lib1540 http://127.0.0.1:45607/1540 > log/32/stdout1540 2> log/32/stderr1540 === End of file commands.log === Start of file http_server.log 09:41:34.864440 ====> Client connect 09:41:34.864916 accept_connection 3 returned 4 09:41:34.865077 accept_connection 3 returned 0 09:41:34.865215 Read 93 bytes 09:41:34.865315 Process 93 bytes request 09:41:34.865405 Got request: GET /verifiedserver HTTP/1.1 09:41:34.865590 Are-we-friendly question received 09:41:34.865850 Wrote request (93 bytes) input to log/32/server.input 09:41:34.866035 Identifying ourselves as friends 09:41:34.870318 Response sent (56 bytes) and written to log/32/server.response 09:41:34.870450 special request received, no persistency 09:41:34.870647 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1540 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind1540 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1540 test 1547...[FTP dir list PASV overriding PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1547 ../src/curl -q --output log/36/curl1547.out --include --trace-ascii log/36/trace1547 --trace-config all --trace-time ftp://127.0.0.1:45965/test-1547/ -P 127.0.0.1 --ftp-pasv > log/36/stdout1547 2> log/36/stderr1547 1547: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1547 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1547 ../src/curl -q --output log/36/curl1547.out --include --trace-ascii log/36/trace1547 --trace-config all --trace-time ftp://127.0.0.1:45965/test-1547/ -P 127.0.0.1 --ftp-pasv > log/36/stdout1547 2> log/36/stderr1547 === End of file commands.log === Start of file ftp_server.log 09:41:35.006519 ====> Client connect 09:41:35.007948 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:35.010904 < "USER anonymous" 09:41:35.011626 > "331 We are happy you popped in![CR][LF]" 09:41:35.013471 < "PASS ftp@example.com" 09:41:35.013951 > "230 Welcome you silly person[CR][LF]" 09:41:35.016497 < "PWD" 09:41:35.016994 > "257 "/" is current directory[CR][LF]" 09:41:35.019881 < "EPSV" 09:41:35.020247 ====> Passive DATA channel requested by client 09:41:35.020446 DATA sockfilt for passive data channel starting... 09:41:35.037850 DATA sockfilt for passive data channel started (pid 152929) 09:41:35.039472 DATA sockfilt for passive data channel listens on port 45457 09:41:35.040031 > "229 Entering Passive Mode (|||45457|)[LF]" 09:41:35.040356 Client has been notified that DATA conn will be accepted on port 45457 09:41:35.043533 Client connects to port 45457 09:41:35.043993 ====> Client established passive DATA connection on port 45457 09:41:35.044945 < "TYPE I" 09:41:35.045388 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:35.049503 < "SIZE verifiedserver" 09:41:35.050056 > "213 17[CR][LF]" 09:41:35.053157 < "RETR verifiedserver" 09:41:35.054301 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:35.055259 =====> Closing passive DATA connection... 09:41:35.055546 Server disconnects passive DATA connection 09:41:35.056650 Server disconnected passive DATA connection 09:41:35.057013 DATA sockfilt for passive data channel quits (pid 152929) 09:41:35.059621 DATA sockfilt for passive data channel quit (pid 152929) 09:41:35.060070 =====> Closed passive DATA connection 09:41:35.060614 > "226 File transfer complete[CR][LF]" 09:41:35.098323 < "QUIT" 09:41:35.098670 > "221 bye bye baby[CR][LF]" 09:41:35.102268 MAIN sockfilt said DISC 09:41:35.103098 ====> Client disconnected 09:41:35.103636 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:35.259580 ====> Client connect 09:41:35.262245 Received DATA (on stdin) 09:41:35.262405 > 160 bytes data, server => client 09:41:35.262577 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:35.262678 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:35.262756 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:35.263584 < 16 bytes data, client => server 09:41:35.263739 'USER anonymous\r\n' 09:41:35.265001 Received DATA (on stdin) 09:41:35.265136 > 33 bytes data, server => client 09:41:35.265553 '331 We are happy you popped in!\r\n' 09:41:35.268047 < 22 bytes data, client => server 09:41:35.268190 'PASS ftp@example.com\r\n' 09:41:35.268332 Received DATA (on stdin) 09:41:35.268419 > 30 bytes data, server => client 09:41:35.268629 '230 Welcome you silly person\r\n' 09:41:35.269294 < 5 bytes data, client => server 09:41:35.269454 'PWD\r\n' 09:41:35.271180 Received DATA (on stdin) 09:41:35.271356 > 30 bytes data, server => client 09:41:35.271431 '257 "/" is current directory\r\n' 09:41:35.272662 < 6 bytes data, client => server 09:41:35.272825 'EPSV\r\n' 09:41:35.294383 Received DATA (on stdin) 09:41:35.294605 > 38 bytes data, server => client 09:41:35.294723 '229 Entering Passive Mode (|||45457|)\n' 09:41:35.297163 < 8 bytes data, client => server 09:41:35.297386 'TYPE I\r\n' 09:41:35.299143 Received DATA (on stdin) 09:41:35.299299 > 33 bytes data, server => client 09:41:35.299371 '200 I modify TYPE as you wanted\r\n' 09:41:35.300134 < 21 bytes data, client => server 09:41:35.300265 'SIZE verifiedserver\r\n' 09:41:35.304113 Received DATA (on stdin) 09:41:35.304238 > 8 bytes data, server => client 09:41:35.304320 '213 17\r\n' 09:41:35.306194 < 21 bytes data, client => server 09:41:35.306355 'RETR verifiedserver\r\n' 09:41:35.307261 Received DATA (on stdin) 09:41:35.307400 > 29 bytes data, server => client 09:41:35.307629 '150 Binary junk (17 bytes).\r\n' 09:41:35.314908 Received DATA (on stdin) 09:41:35.315237 > 28 bytes data, server => client 09:41:35.315360 '226 File transfer complete\r\n' 09:41:35.350636 < 6 bytes data, client => server 09:41:35.350844 'QUIT\r\n' 09:41:35.352897 Received DATA (on stdin) 09:41:35.353029 > 18 bytes data, server => client 09:41:35.353105 '221 bye bye baby\r\n' 09:41:35.355667 ====> Client disconnect 09:41:35.356305 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:35.287937 Running IPv4 version 09:41:35.289436 Listening on port 45457 09:41:35.290419 Wrote pid 152929 to log/36/server/ftp_sockdata.pid 09:41:35.290923 Received PING (on stdin) 09:41:35.292320 Received PORT (on stdin) 09:41:35.296255 ====> Client connect 09:41:35.308622 Received DATA (on stdin) 09:41:35.308840 > 17 bytes data, server => client 09:41:35.308952 'WE ROOLZ: 82698\r\n' 09:41:35.309602 Received DISC (on stdin) 09:41:35.309753 ====> Client forcibly disconnected 09:41:35.311078 Received QUIT (on stdin) 09:41:35.311239 quits 09:41:35.312198 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1547 === End of file server.cmd === Start of file valgrind1547 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1547 test 1545...[use curl_formadd() data twice with unreadable file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1545 ./libtest/libtests lib1545 http://127.0.0.1:37551/1545 > log/37/stdout1545 2> log/37/stderr1545 libtests returned 1, when expecting 0 1545: exit FAILED == Contents of files in the log/37/ dir after test 1545 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1545 ./libtest/libtests lib1545 http://127.0.0.1:37551/1545 > log/37/stdout1545 2> log/37/stderr1545 === End of file commands.log === Start of file http_server.log 09:41:35.054056 ====> Client connect 09:41:35.054361 accept_connection 3 returned 4 09:41:35.057714 accept_connection 3 returned 0 09:41:35.057918 Read 93 bytes 09:41:35.058050 Process 93 bytes request 09:41:35.058180 Got request: GET /verifiedserver HTTP/1.1 09:41:35.058286 Are-we-friendly question received 09:41:35.058604 Wrote request (93 bytes) input to log/37/server.input 09:41:35.058813 Identifying ourselves as friends 09:41:35.059648 Response sent (56 bytes) and written to log/37/server.response 09:41:35.059764 special request received, no persistency 09:41:35.059830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 1545 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind1545 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1545 test 1539...[HTTP 1.0 POST with read callback and unknown data size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1539 ./libtest/libtests lib1514 http://127.0.0.1:35093/1539 > log/41/stdout1539 2> log/41/stderr1539 libtests returned 1, when expecting 25 1539: exit FAILED == Contents of files in the log/41/ dir after test 1539 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1539 ./libtest/libtests lib1514 http://127.0.0.1:35093/1539 > log/41/stdout1539 2> log/41/stderr1539 === End of file commands.log === Start of file http_server.log 09:41:34.935873 ====> Client connect 09:41:34.936158 accept_connection 3 returned 4 09:41:34.936333 accept_connection 3 returned 0 09:41:34.936549 Read 93 bytes 09:41:34.936663 Process 93 bytes request 09:41:34.936753 Got request: GET /verifiedserver HTTP/1.1 09:41:34.936827 Are-we-friendly question received 09:41:34.937029 Wrote request (93 bytes) input to log/41/server.input 09:41:34.937220 Identifying ourselves as friends 09:41:34.944083 Response sent (56 bytes) and written to log/41/server.response 09:41:34.944206 special request received, no persistency 09:41:34.944289 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 1539 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind1539 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1539 test 1516...[caching of manual libcurl DNS entries after dead connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1516 ./libtest/libtests lib1515 path/1516 127.0.0.1 46523 > log/46/stdout1516 2> log/46/stderr1516 libtests returned 1, when expecting 0 1516: exit FAILED == Contents of files in the log/46/ dir after test 1516 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1516 ./libtest/libtests lib1515 path/1516 127.0.0.1 46523 > log/46/stdout1516 2> log/46/stderr1516 === End of file commands.log === Start of file http_server.log 09:41:34.508331 ====> Client connect 09:41:34.508738 accept_connection 3 returned 4 09:41:34.508895 accept_connection 3 returned 0 09:41:34.509027 Read 93 bytes 09:41:34.509113 Process 93 bytes request 09:41:34.509192 Got request: GET /verifiedserver HTTP/1.1 09:41:34.509264 Are-we-friendly question received 09:41:34.509534 Wrote request (93 bytes) input to log/46/server.input 09:41:34.509732 Identifying ourselves as friends 09:41:34.513724 Response sent (56 bytes) and written to log/46/server.response 09:41:34.513858 special request received, no persistency 09:41:34.513937 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 1516 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind1516 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1516 * starts no server test 1538...[libcurl strerror API call tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1538 ./libtest/libtests lib1538 nothing > log/54/stdout1538 2> log/54/stderr1538 1538: stdout FAILED: --- log/54/check-expected 2025-07-18 09:41:36.581579897 +0000 +++ log/54/check-generated 2025-07-18 09:41:36.580579897 +0000 @@ -1,158 +0,0 @@ -e0: No error[LF] -e1: Unsupported protocol[LF] -e2: Failed initialization[LF] -e3: URL using bad/illegal format or missing URL[LF] -e4: A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.[LF] -e5: Could not resolve proxy name[LF] -e6: Could not resolve hostname[LF] -e7: Could not connect to server[LF] -e8: Weird server reply[LF] -e9: Access denied to remote resource[LF] -e10: FTP: The server failed to connect to data port[LF] -e11: FTP: unknown PASS reply[LF] -e12: FTP: Accepting server connect has timed out[LF] -e13: FTP: unknown PASV reply[LF] -e14: FTP: unknown 227 response format[LF] -e15: FTP: cannot figure out the host in the PASV response[LF] -e16: Error in the HTTP2 framing layer[LF] -e17: FTP: could not set file type[LF] -e18: Transferred a partial file[LF] -e19: FTP: could not retrieve (RETR failed) the specified file[LF] -e20: Unknown error[LF] -e21: Quote command returned error[LF] -e22: HTTP response code said error[LF] -e23: Failed writing received data to disk/application[LF] -e24: Unknown error[LF] -e25: Upload failed (at start/before it took off)[LF] -e26: Failed to open/read local data from file/application[LF] -e27: Out of memory[LF] -e28: Timeout was reached[LF] -e29: Unknown error[LF] -e30: FTP: command PORT failed[LF] -e31: FTP: command REST failed[LF] -e32: Unknown error[LF] -e33: Requested range was not delivered by the server[LF] -e34: Unknown error[LF] -e35: SSL connect error[LF] -e36: Could not resume download[LF] -e37: Could not read a file:// file[LF] -e38: LDAP: cannot bind[LF] -e39: LDAP: search failed[LF] -e40: Unknown error[LF] -e41: Unknown error[LF] -e42: Operation was aborted by an application callback[LF] -e43: A libcurl function was given a bad argument[LF] -e44: Unknown error[LF] -e45: Failed binding local connection end[LF] -e46: Unknown error[LF] -e47: Number of redirects hit maximum amount[LF] -e48: An unknown option was passed in to libcurl[LF] -e49: Malformed option provided in a setopt[LF] -e50: Unknown error[LF] -e51: Unknown error[LF] -e52: Server returned nothing (no headers, no data)[LF] -e53: SSL crypto engine not found[LF] -e54: Can not set SSL crypto engine as default[LF] -e55: Failed sending data to the peer[LF] -e56: Failure when receiving data from the peer[LF] -e57: Unknown error[LF] -e58: Problem with the local SSL certificate[LF] -e59: Could not use specified SSL cipher[LF] -e60: SSL peer certificate or SSH remote key was not OK[LF] -e61: Unrecognized or bad HTTP Content or Transfer-Encoding[LF] -e62: Unknown error[LF] -e63: Maximum file size exceeded[LF] -e64: Requested SSL level failed[LF] -e65: Send failed since rewinding of the data stream failed[LF] -e66: Failed to initialise SSL crypto engine[LF] -e67: Login denied[LF] -e68: TFTP: File Not Found[LF] -e69: TFTP: Access Violation[LF] -e70: Disk full or allocation exceeded[LF] -e71: TFTP: Illegal operation[LF] -e72: TFTP: Unknown transfer ID[LF] -e73: Remote file already exists[LF] -e74: TFTP: No such user[LF] -e75: Unknown error[LF] -e76: Unknown error[LF] -e77: Problem with the SSL CA cert (path? access rights?)[LF] -e78: Remote file not found[LF] -e79: Error in the SSH layer[LF] -e80: Failed to shut down the SSL connection[LF] -e81: Socket not ready for send/recv[LF] -e82: Failed to load CRL file (path? access rights?, format?)[LF] -e83: Issuer check against peer certificate failed[LF] -e84: FTP: The server did not accept the PRET command.[LF] -e85: RTSP CSeq mismatch or invalid CSeq[LF] -e86: RTSP session error[LF] -e87: Unable to parse FTP file list[LF] -e88: Chunk callback failed[LF] -e89: The max connection limit is reached[LF] -e90: SSL public key does not match pinned public key[LF] -e91: SSL server certificate status verification FAILED[LF] -e92: Stream error in the HTTP/2 framing layer[LF] -e93: API function called from within callback[LF] -e94: An authentication function returned an error[LF] -e95: HTTP/3 error[LF] -e96: QUIC connection error[LF] -e97: proxy handshake error[LF] -e98: SSL Client Certificate required[LF] -e99: Unrecoverable error in select/poll[LF] -e100: A value or data field grew larger than allowed[LF] -e101: ECH attempted but failed[LF] -e102: Unknown error[LF] -m-1: Please call curl_multi_perform() soon[LF] -m0: No error[LF] -m1: Invalid multi handle[LF] -m2: Invalid easy handle[LF] -m3: Out of memory[LF] -m4: Internal error[LF] -m5: Invalid socket argument[LF] -m6: Unknown option[LF] -m7: The easy handle is already added to a multi handle[LF] -m8: API function called from within callback[LF] -m9: Wakeup is unavailable or failed[LF] -m10: A libcurl function was given a bad argument[LF] -m11: Operation was aborted by an application callback[LF] -m12: Unrecoverable error in select/poll[LF] -m13: Unknown error[LF] -s0: No error[LF] -s1: Unknown share option[LF] -s2: Share currently in use[LF] -s3: Invalid share handle[LF] -s4: Out of memory[LF] -s5: Feature not enabled in this library[LF] -s6: CURLSHcode unknown[LF] -u0: No error[LF] -u1: An invalid CURLU pointer was passed as argument[LF] -u2: An invalid 'part' argument was passed as argument[LF] -u3: Malformed input to a URL function[LF] -u4: Port number was not a decimal number between 0 and 65535[LF] -u5: Unsupported URL scheme[LF] -u6: URL decode error, most likely because of rubbish in the input[LF] -u7: A memory function failed[LF] -u8: Credentials was passed in the URL when prohibited[LF] -u9: An unknown part ID was passed to a URL API function[LF] -u10: No scheme part in the URL[LF] -u11: No user part in the URL[LF] -u12: No password part in the URL[LF] -u13: No options part in the URL[LF] -u14: No host part in the URL[LF] -u15: No port part in the URL[LF] -u16: No query part in the URL[LF] -u17: No fragment part in the URL[LF] -u18: No zoneid part in the URL[LF] -u19: Bad file:// URL[LF] -u20: Bad fragment[LF] -u21: Bad hostname[LF] -u22: Bad IPv6 address[LF] -u23: Bad login part[LF] -u24: Bad password[LF] -u25: Bad path[LF] -u26: Bad query[LF] -u27: Bad scheme[LF] -u28: Unsupported number of slashes following scheme[LF] -u29: Bad user[LF] -u30: libcurl lacks IDN support[LF] -u31: A value or data field is larger than allowed[LF] -u32: CURLUcode unknown[LF] == Contents of files in the log/54/ dir after test 1538 === Start of file check-expected e0: No error[LF] e1: Unsupported protocol[LF] e2: Failed initialization[LF] e3: URL using bad/illegal format or missing URL[LF] e4: A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.[LF] e5: Could not resolve proxy name[LF] e6: Could not resolve hostname[LF] e7: Could not connect to server[LF] e8: Weird server reply[LF] e9: Access denied to remote resource[LF] e10: FTP: The server failed to connect to data port[LF] e11: FTP: unknown PASS reply[LF] e12: FTP: Accepting server connect has timed out[LF] e13: FTP: unknown PASV reply[LF] e14: FTP: unknown 227 response format[LF] e15: FTP: cannot figure out the host in the PASV response[LF] e16: Error in the HTTP2 framing layer[LF] e17: FTP: could not set file type[LF] e18: Transferred a partial file[LF] e19: FTP: could not retrieve (RETR failed) the specified file[LF] e20: Unknown error[LF] e21: Quote command returned error[LF] e22: HTTP response code said error[LF] e23: Failed writing received data to disk/application[LF] e24: Unknown error[LF] e25: Upload failed (at start/before it took off)[LF] e26: Failed to open/read local data from file/application[LF] e27: Out of memory[LF] e28: Timeout was reached[LF] e29: Unknown error[LF] e30: FTP: command PORT failed[LF] e31: FTP: command REST failed[LF] e32: Unknown error[LF] e33: Requested range was not delivered by the server[LF] e34: Unknown error[LF] e35: SSL connect error[LF] e36: Could not resume download[LF] e37: Could not read a file:// file[LF] e38: LDAP: cannot bind[LF] e39: LDAP: search failed[LF] e40: Unknown error[LF] e41: Unknown error[LF] e42: Operation was aborted by an application callback[LF] e43: A libcurl function was given a bad argument[LF] e44: Unknown error[LF] e45: Failed binding local connection end[LF] e46: Unknown error[LF] e47: Number of redirects hit maximum amount[LF] e48: An unknown option was passed in to libcurl[LF] e49: Malformed option provided in a setopt[LF] e50: Unknown error[LF] e51: Unknown error[LF] e52: Server returned nothing (no headers, no data)[LF] e53: SSL crypto engine not found[LF] e54: Can not set SSL crypto engine as default[LF] e55: Failed sending data to the peer[LF] e56: Failure when receiving data from the peer[LF] e57: Unknown error[LF] e58: Problem with the local SSL certificate[LF] e59: Could not use specified SSL cipher[LF] e60: SSL peer certificate or SSH remote key was not OK[LF] e61: Unrecognized or bad HTTP Content or Transfer-Encoding[LF] e62: Unknown error[LF] e63: Maximum file size exceeded[LF] e64: Requested SSL level failed[LF] e65: Send failed since rewinding of the data stream failed[LF] e66: Failed to initialise SSL crypto engine[LF] e67: Login denied[LF] e68: TFTP: File Not Found[LF] e69: TFTP: Access Violation[LF] e70: Disk full or allocation exceeded[LF] e71: TFTP: Illegal operation[LF] e72: TFTP: Unknown transfer ID[LF] e73: Remote file already exists[LF] e74: TFTP: No such user[LF] e75: Unknown error[LF] e76: Unknown error[LF] e77: Problem with the SSL CA cert (path? access rights?)[LF] e78: Remote file not found[LF] e79: Error in the SSH layer[LF] e80: Failed to shut down the SSL connection[LF] e81: Socket not ready for send/recv[LF] e82: Failed to load CRL file (path? access rights?, format?)[LF] e83: Issuer check against peer certificate failed[LF] e84: FTP: The server did not accept the PRET command.[LF] e85: RTSP CSeq mismatch or invalid CSeq[LF] e86: RTSP session error[LF] e87: Unable to parse FTP file list[LF] e88: Chunk callback failed[LF] e89: The max connection limit is reached[LF] e90: SSL public key does not match pinned public key[LF] e91: SSL server certificate status verification FAILED[LF] e92: Stream error in the HTTP/2 framing layer[LF] e93: API function called from within callback[LF] e94: An authentication function returned an error[LF] e95: HTTP/3 error[LF] e96: QUIC connection error[LF] e97: proxy handshake error[LF] e98: SSL Client Certificate required[LF] e99: Unrecoverable error in select/poll[LF] e100: A value or data field grew larger than allowed[LF] e101: ECH attempted but failed[LF] e102: Unknown error[LF] m-1: Please call curl_multi_perform() soon[LF] m0: No error[LF] m1: Invalid multi handle[LF] m2: Invalid easy handle[LF] m3: Out of memory[LF] m4: Internal error[LF] m5: Invalid socket argument[LF] m6: Unknown option[LF] m7: The easy handle is already added to a multi handle[LF] m8: API function called from within callback[LF] m9: Wakeup is unavailable or failed[LF] m10: A libcurl function was given a bad argument[LF] m11: Operation was aborted by an application callback[LF] m12: Unrecoverable error in select/poll[LF] m13: Unknown error[LF] s0: No error[LF] s1: Unknown share option[LF] s2: Share currently in use[LF] s3: Invalid share handle[LF] s4: Out of memory[LF] s5: Feature not enabled in this library[LF] s6: CURLSHcode unknown[LF] u0: No error[LF] u1: An invalid CURLU pointer was passed as argument[LF] u2: An invalid 'part' argument was passed as argument[LF] u3: Malformed input to a URL function[LF] u4: Port number was not a decimal number between 0 and 65535[LF] u5: Unsupported URL scheme[LF] u6: URL decode error, most likely because of rubbish in the input[LF] u7: A memory function failed[LF] u8: Credentials was passed in the URL when prohibited[LF] u9: An unknown part ID was passed to a URL API function[LF] u10: No scheme part in the URL[LF] u11: No user part in the URL[LF] u12: No password part in the URL[LF] u13: No options part in the URL[LF] u14: No host part in the URL[LF] u15: No port part in the URL[LF] u16: No query part in the URL[LF] u17: No fragment part in the URL[LF] u18: No zoneid part in the URL[LF] u19: Bad file:// URL[LF] u20: Bad fragment[LF] u21: Bad hostname[LF] u22: Bad IPv6 address[LF] u23: Bad login part[LF] u24: Bad password[LF] u25: Bad path[LF] u26: Bad query[LF] u27: Bad scheme[LF] u28: Unsupported number of slashes following scheme[LF] u29: Bad user[LF] u30: libcurl lacks IDN support[LF] u31: A value or data field is larger than allowed[LF] u32: CURLUcode unknown[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1538 ./libtest/libtests lib1538 nothing > log/54/stdout1538 2> log/54/stderr1538 === End of file commands.log === Start of file server.cmd Testnum 1538 === End of file server.cmd === Start of file valgrind1538 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1538 startnew: /build/curl/src/curl/tests/dictserver.py --port 34687 --pidfile "log/59/server/dict_server.pid" --logfile "log/59/dict_server.log" --srcdir "/build/curl/src/curl/tests" --host 127.0.0.1 startnew: child process has died, server might start up RUN: failed to start the DICT server test 1450 SKIPPED: failed starting DICT server test 1546...[HTTP transfer-encoding wrong order] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1546 ../src/curl -q --output log/63/curl1546.out --include --trace-ascii log/63/trace1546 --trace-config all --trace-time http://127.0.0.1:38797/1546 --tr-encoding > log/63/stdout1546 2> log/63/stderr1546 1546: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1546 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1546 ../src/curl -q --output log/63/curl1546.out --include --trace-ascii log/63/trace1546 --trace-config all --trace-time http://127.0.0.1:38797/1546 --tr-encoding > log/63/stdout1546 2> log/63/stderr1546 === End of file commands.log === Start of file http_server.log 09:41:35.095918 ====> Client connect 09:41:35.096165 accept_connection 3 returned 4 09:41:35.096291 accept_connection 3 returned 0 09:41:35.096882 Read 93 bytes 09:41:35.097018 Process 93 bytes request 09:41:35.097091 Got request: GET /verifiedserver HTTP/1.1 09:41:35.097154 Are-we-friendly question received 09:41:35.097355 Wrote request (93 bytes) input to log/63/server.input 09:41:35.097636 Identifying ourselves as friends 09:41:35.098274 Response sent (56 bytes) and written to log/63/server.response 09:41:35.098403 special request received, no persistency 09:41:35.098559 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 1546 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1546 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1546 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/16/server/http2_server.pid" --logfile "log/16/http2_server.log" --logdir "log/16" --portfile log/16/server/http2_server.port --config log/16/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 151517 port 34163 * pid http-proxy => 151517 151517 test 1509...[simple multi http:// through proxytunnel with authentication info] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1509 ./libtest/libtests lib1509 http://the.old.moo.1509:34829/1509 127.0.0.1:34163 > log/16/stdout1509 2> log/16/stderr1509 1509: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 1509 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1509 ./libtest/libtests lib1509 http://the.old.moo.1509:34829/1509 127.0.0.1:34163 > log/16/stdout1509 2> log/16/stderr1509 === End of file commands.log === Start of file http2_server.log 09:41:34.907679 Run as proxy, CONNECT to host 127.0.0.1 09:41:34.908541 Running HTTP IPv4 version on port 34163 09:41:34.908960 Wrote pid 151517 to log/16/server/http2_server.pid 09:41:34.909453 Wrote port 34163 to log/16/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:34.522917 ====> Client connect 09:41:34.523231 accept_connection 3 returned 4 09:41:34.523388 accept_connection 3 returned 0 09:41:34.523633 Read 93 bytes 09:41:34.523742 Process 93 bytes request 09:41:34.523816 Got request: GET /verifiedserver HTTP/1.1 09:41:34.523882 Are-we-friendly question received 09:41:34.524095 Wrote request (93 bytes) input to log/16/server.input 09:41:34.524260 Identifying ourselves as friends 09:41:34.525058 Response sent (56 bytes) and written to log/16/server.response 09:41:34.525159 special request received, no persistency 09:41:34.525216 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1509 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file test1509.txt foo bar bar foo moo === End of file test1509.txt === Start of file valgrind1509 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1509 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/19/server/http2_server.pid" --logfile "log/19/http2_server.log" --logdir "log/19" --portfile log/19/server/http2_server.port --config log/19/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 151689 port 45995 * pid http-proxy => 151689 151689 test 1529...[HTTP request-injection in URL sent over proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1529 ./libtest/libtests lib1529 "http://the.old.moo:35697/1529" 127.0.0.1:45995 > log/19/stdout1529 2> log/19/stderr1529 libtests returned 1, wCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1551 ./libtest/libtests lib1551 http://127.0.0.1:33073/1551 > log/64/stdout1551 2> log/64/stderr1551 hen expecting 3 1529: exit FAILED == Contents of files in the log/19/ dir after test 1529 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1529 ./libtest/libtests lib1529 "http://the.old.moo:35697/1529" 127.0.0.1:45995 > log/19/stdout1529 2> log/19/stderr1529 === End of file commands.log === Start of file http2_server.log 09:41:34.024222 Run as proxy, CONNECT to host 127.0.0.1 09:41:34.025128 Running HTTP IPv4 version on port 45995 09:41:34.029705 Wrote pid 151689 to log/19/server/http2_server.pid 09:41:34.030118 Wrote port 45995 to log/19/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:34.638836 ====> Client connect 09:41:34.639128 accept_connection 3 returned 4 09:41:34.639284 accept_connection 3 returned 0 09:41:34.640148 Read 93 bytes 09:41:34.640319 Process 93 bytes request 09:41:34.640414 Got request: GET /verifiedserver HTTP/1.1 09:41:34.640656 Are-we-friendly question received 09:41:34.640940 Wrote request (93 bytes) input to log/19/server.input 09:41:34.641191 Identifying ourselves as friends 09:41:34.643358 Response sent (56 bytes) and written to log/19/server.response 09:41:34.643579 special request received, no persistency 09:41:34.643679 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 1529 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind1529 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1529 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/27/server/http2_server.pid" --logfile "log/27/http2_server.log" --logdir "log/27" --portfile log/27/server/http2_server.port --config log/27/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 151649 port 45737 * pid http-proxy => 151649 151649 test 1525...[CURLOPT_PROXYHEADER is ignored CURLHEADER_UNIFIED] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1525 ./libtest/libtests lib1525 http://the.old.moo.1525:42323/1525 127.0.0.1:45737 > log/27/stdout1525 2> log/27/stderr1525 1525: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 1525 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1525 ./libtest/libtests lib1525 http://the.old.moo.1525:42323/1525 127.0.0.1:45737 > log/27/stdout1525 2> log/27/stderr1525 === End of file commands.log === Start of file http2_server.log 09:41:34.938771 Run as proxy, CONNECT to host 127.0.0.1 09:41:34.939655 Running HTTP IPv4 version on port 45737 09:41:34.940115 Wrote pid 151649 to log/27/server/http2_server.pid 09:41:34.940412 Wrote port 45737 to log/27/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:34.611567 ====> Client connect 09:41:34.611853 accept_connection 3 returned 4 09:41:34.611986 accept_connection 3 returned 0 09:41:34.612554 Read 93 bytes 09:41:34.612695 Process 93 bytes request 09:41:34.612777 Got request: GET /verifiedserver HTTP/1.1 09:41:34.612836 Are-we-friendly question received 09:41:34.613048 Wrote request (93 bytes) input to log/27/server.input 09:41:34.613240 Identifying ourselves as friends 09:41:34.613776 Response sent (56 bytes) and written to log/27/server.response 09:41:34.613863 special request received, no persistency 09:41:34.613913 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 1525 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind1525 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1525 test 1551...[re-run redirected transfer without setting URL again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck -CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1527 ./libtest/libtests lib1527 http://the.old.moo.1527:42467/1527 127.0.0.1:41707 > log/23/stdout1527 2> log/23/stderr1527 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1526 ./libtest/libtests lib1526 http://the.old.moo.1526:39259/1526 127.0.0.1:41815 > log/24/stdout1526 2> log/24/stderr1526 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1554 ./libtest/libtests lib1554 http://127.0.0.1:41727/1554 > log/25/stdout1554 2> log/25/stderr1554 -quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1551 ./libtest/libtests lib1551 http://127.0.0.1:33073/1551 > log/64/stdout1551 2> log/64/stderr1551 1551: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1551 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1551 ./libtest/libtests lib1551 http://127.0.0.1:33073/1551 > log/64/stdout1551 2> log/64/stderr1551 === End of file commands.log === Start of file http_server.log 09:41:35.502737 ====> Client connect 09:41:35.503413 accept_connection 3 returned 4 09:41:35.503731 accept_connection 3 returned 0 09:41:35.503878 Read 93 bytes 09:41:35.503972 Process 93 bytes request 09:41:35.504071 Got request: GET /verifiedserver HTTP/1.1 09:41:35.504150 Are-we-friendly question received 09:41:35.504384 Wrote request (93 bytes) input to log/64/server.input 09:41:35.504662 Identifying ourselves as friends 09:41:35.508137 Response sent (56 bytes) and written to log/64/server.response 09:41:35.508308 special request received, no persistency 09:41:35.508402 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1551 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1551 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1551 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/23/server/http2_server.pid" --logfile "log/23/http2_server.log" --logdir "log/23" --portfile log/23/server/http2_server.port --config log/23/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 151972 port 41707 * pid http-proxy => 151972 151972 test 1527...[Same headers with CURLOPT_HEADEROPT == CURLHEADER_UNIFIED] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1527 ./libtest/libtests lib1527 http://the.old.moo.1527:42467/1527 127.0.0.1:41707 > log/23/stdout1527 2> log/23/stderr1527 1527: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 1527 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1527 ./libtest/libtests lib1527 http://the.old.moo.1527:42467/1527 127.0.0.1:41707 > log/23/stdout1527 2> log/23/stderr1527 === End of file commands.log === Start of file http2_server.log 09:41:35.261024 Run as proxy, CONNECT to host 127.0.0.1 09:41:35.262450 Running HTTP IPv4 version on port 41707 09:41:35.262902 Wrote pid 151972 to log/23/server/http2_server.pid 09:41:35.263134 Wrote port 41707 to log/23/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:34.754102 ====> Client connect 09:41:34.754386 accept_connection 3 returned 4 09:41:34.755371 accept_connection 3 returned 0 09:41:34.755620 Read 93 bytes 09:41:34.755715 Process 93 bytes request 09:41:34.755798 Got request: GET /verifiedserver HTTP/1.1 09:41:34.755875 Are-we-friendly question received 09:41:34.756105 Wrote request (93 bytes) input to log/23/server.input 09:41:34.756303 Identifying ourselves as friends 09:41:34.758081 Response sent (56 bytes) and written to log/23/server.response 09:41:34.758194 special request received, no persistency 09:41:34.758260 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 1527 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind1527 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1527 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/24/server/http2_server.pid" --logfile "log/24/http2_server.log" --logdir "log/24" --portfile log/24/server/http2_server.port --config log/24/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 151900 port 41815 * pid http-proxy => 151900 151900 test 1526...[CURLOPT_PROXYHEADER: separate host/proxy headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1526 ./libtest/libtests lib1526 http://the.old.moo.1526:39259/1526 127.0.0.1:41815 > log/24/stdout1526 2> log/24/stderr1526 1526: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 1526 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1526 ./libtest/libtests lib1526 http://the.old.moo.1526:39259/1526 127.0.0.1:41815 > log/24/stdout1526 2> log/24/stderr1526 === End of file commands.log === Start of file http2_server.log 09:41:34.984864 Run as proxy, CONNECT to host 127.0.0.1 09:41:34.985843 Running HTTP IPv4 version on port 41815 09:41:34.986399 Wrote pid 151900 to log/24/server/http2_server.pid 09:41:34.990989 Wrote port 41815 to log/24/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:34.722950 ====> Client connect 09:41:34.723290 accept_connection 3 returned 4 09:41:34.723599 accept_connection 3 returned 0 09:41:34.723779 Read 93 bytes 09:41:34.723900 Process 93 bytes request 09:41:34.724006 Got request: GET /verifiedserver HTTP/1.1 09:41:34.724099 Are-we-friendly question received 09:41:34.724337 Wrote request (93 bytes) input to log/24/server.input 09:41:34.727672 Identifying ourselves as friends 09:41:34.734782 Response sent (56 bytes) and written to log/24/server.response 09:41:34.734905 special request received, no persistency 09:41:34.734980 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 1526 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind1526 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1526 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1555 ./libtest/libtests lib1555 http://127.0.0.1:34639/1555 > log/53/stdout1555 2> log/53/stderr1555 test 1554...[HTTP with shared connection cache] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1554 ./libtest/libtests lib1554 http://127.0.0.1:41727/1554 > log/25/stdout1554 2> log/25/stderr1554 1554: data FAILED: --- log/25/check-expected 2025-07-18 09:41:36.968579701 +0000 +++ log/25/check-generated 2025-07-18 09:41:36.967579702 +0000 @@ -1,49 +0,0 @@ --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] -run 1: foobar and so on fun![LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] -run 1: foobar and so on fun![LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] -run 1: foobar and so on fun![LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] == Contents of files in the log/25/ dir after test 1554 === Start of file check-expected -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] run 1: foobar and so on fun![LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] run 1: foobar and so on fun![LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] run 1: foobar and so on fun![LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1554 ./libtest/libtests lib1554 http://127.0.0.1:41727/1554 > log/25/stdout1554 2> log/25/stderr1554 === End of file commands.log === Start of file http_server.log 09:41:35.692217 ====> Client connect 09:41:35.693949 accept_connection 3 returned 4 09:41:35.694266 accept_connection 3 returned 0 09:41:35.694455 Read 93 bytes 09:41:35.694679 Process 93 bytes request 09:41:35.694777 Got request: GET /verifiedserver HTTP/1.1 09:41:35.694865 Are-we-friendly question received 09:41:35.695119 Wrote request (93 bytes) input to log/25/server.input 09:41:35.695360 Identifying ourselves as friends 09:41:35.696298 Response sent (56 bytes) and written to log/25/server.response 09:41:35.696413 special request received, no persistency 09:41:35.699666 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd Testnum 1554 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind1554 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1554 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1553 ./libtest/libtests lib1553 imap://non-existing-host.haxx.se:37715/1553 > log/38/stdout1553 2> log/38/stderr1553 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1556 ./libtest/libtests lib1556 http://127.0.0.1:38843/1556 > log/60/stdout1556 2> log/60/stderr1556 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1552 ./libtest/libtests lib1552 'imap://127.0.0.1:40729/1552/;MAILINDEX=1' > log/55/stdout1552 2> log/55/stderr1552 test 1555...[verify api is protected against calls from callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1555 ./libtest/libtests lib1555 http://127.0.0.1:34639/1555 > log/53/stdout1555 2> log/53/stderr1555 1555: stdout FAILED: --- log/53/check-expected 2025-07-18 09:41:37.058642735 +0000 +++ log/53/check-generated 2025-07-18 09:41:37.057579656 +0000 @@ -1,2 +0,0 @@ -curl_easy_recv returned 93[LF] -curl_easy_send returned 93[LF] == Contents of files in the log/53/ dir after test 1555 === Start of file check-expected curl_easy_recv returned 93[LF] curl_easy_send returned 93[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1555 ./libtest/libtests lib1555 http://127.0.0.1:34639/1555 > log/53/stdout1555 2> log/53/stderr1555 === End of file commands.log === Start of file http_server.log 09:41:35.831141 ====> Client connect 09:41:35.831438 accept_connection 3 returned 4 09:41:35.831787 accept_connection 3 returned 0 09:41:35.832337 Read 93 bytes 09:41:35.832549 Process 93 bytes request 09:41:35.832660 Got request: GET /verifiedserver HTTP/1.1 09:41:35.832735 Are-we-friendly question received 09:41:35.832935 Wrote request (93 bytes) input to log/53/server.input 09:41:35.833108 Identifying ourselves as friends 09:41:35.833650 Response sent (56 bytes) and written to log/53/server.response 09:41:35.833760 special request received, no persistency 09:41:35.833839 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 1555 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind1555 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1555 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/38/server/imap_server.pid" --logfile "log/38/imap_server.log" --logdir "log/38" --portfile "log/38/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37715 (log/38/server/imap_server.port) RUN: IMAP server is PID 152935 port 37715 * pid imap => 152935 152935 test 1553...[IMAP cleanup before a connection was created] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1553 ./libtest/libtests lib1553 imap://non-existing-host.haxx.se:37715/1553 > log/38/stdout1553 2> log/38/stderr1553 libtests returned 1, when expecting 0 1553: exit FAILED == Contents of files in the log/38/ dir after test 1553 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1553 ./libtest/libtests lib1553 imap://non-existing-host.haxx.se:37715/1553 > log/38/stdout1553 2> log/38/stderr1553 === End of file commands.log === Start of file imap_server.log 09:41:35.522734 IMAP server listens on port IPv4/37715 09:41:35.524052 logged pid 152935 in log/38/server/imap_server.pid 09:41:35.524358 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:35.771452 Running IPv4 version 09:41:35.772226 Listening on port 37715 09:41:35.774920 Wrote pid 153772 to log/38/server/imap_sockfilt.pid 09:41:35.775304 Wrote port 37715 to log/38/server/imap_server.port 09:41:35.775592 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1553 === End of file server.cmd === Start of file valgrind1553 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1553 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/55/server/imap_server.pid" --logfile "log/55/imap_server.log" --logdir "log/55" --portfile "log/55/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40729 (log/55/server/imap_server.port) RUN: IMAP server is PID 152851 port 40729 * pid imap => 152851 152851 test 1552...[IMAP multi transfer error without curl_multi_remove_handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1552 ./libtest/libtests lib1552 'imap://127.0.0.1:40729/1552/;MAILINDEX=1' > log/55/stdout1552 2> log/55/stderr1552 libtests returned 1, when expecting 0 1552: exit FAILED == Contents of files in the log/55/ dir after test 1552 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1552 ./libtest/libtests lib1552 'imap://127.0.0.1:40729/1552/;MAILINDEX=1' > log/55/stdout1552 2> log/55/stderr1552 === End of file commands.log === Start of file imap_server.log 09:41:35.755195 IMAP server listens on port IPv4/40729 09:41:35.757323 logged pid 152851 in log/55/server/imap_server.pid 09:41:35.758025 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:35.005668 Running IPv4 version 09:41:35.006230 Listening on port 40729 09:41:35.006773 Wrote pid 154016 to log/55/server/imap_sockfilt.pid 09:41:35.007201 Wrote port 40729 to log/55/server/imap_server.port 09:41:35.007577 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1552 === End of file server.cmd === Start of file valgrind1552 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1552 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1557 ./libtest/libtests lib1557 nothing > log/62/stdout1557 2> log/62/stderr1557 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1558 ./libtest/libtests lib1558 file:///build/curl/src/build-curl/tests/log/63/data1558 > log/63/stdout1558 2> log/63/stderr1558 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1559 ./libtest/libtests lib1559 - > log/27/stdout1559 2> log/27/stderr1559 test 1556...[send long HTTP headers to header callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1556 ./libtest/libtests lib1556 http://127.0.0.1:38843/1556 > log/60/stdout1556 2> log/60/stderr1556 1556: stdout FAILED: --- log/60/check-expected 2025-07-18 09:41:37.262604692 +0000 +++ log/60/check-generated 2025-07-18 09:41:37.261579553 +0000 @@ -1,2 +0,0 @@ --foo-[LF] -Max = 100009[LF] == Contents of files in the log/60/ dir after test 1556 === Start of file check-expected -foo-[LF] Max = 100009[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1556 ./libtest/libtests lib1556 http://127.0.0.1:38843/1556 > log/60/stdout1556 2> log/60/stderr1556 === End of file commands.log === Start of file http_server.log 09:41:36.083988 ====> Client connect 09:41:36.084373 accept_connection 3 returned 4 09:41:36.084738 accept_connection 3 returned 0 09:41:36.085671 Read 93 bytes 09:41:36.085926 Process 93 bytes request 09:41:36.086052 Got request: GET /verifiedserver HTTP/1.1 09:41:36.086161 Are-we-friendly question received 09:41:36.086676 Wrote request (93 bytes) input to log/60/server.input 09:41:36.087054 Identifying ourselves as friends 09:41:36.089428 Response sent (56 bytes) and written to log/60/server.response 09:41:36.089672 special request received, no persistency 09:41:36.089761 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 1556 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind1556 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1556 * starts no server test 1557...[Remove easy handle in pending connections doesn't leave dangling entry] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1557 ./libtest/libtests lib1557 nothing > log/62/stdout1557 2> log/62/stderr1557 libtests returned 1, when expecting 0 1557: exit FAILED == Contents of files in the log/62/ dir after test 1557 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1557 ./libtest/libtests lib1557 nothing > log/62/stdout1557 2> log/62/stderr1557 === End of file commands.log === Start of file server.cmd Testnum 1557 === End of file server.cmd === Start of file valgrind1557 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1557 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1564 ./libtest/libtests lib1564 - > log/59/stdout1564 2> log/59/stderr1564 * starts no server test 1558...[CURLINFO_PROTOCOL for file:// transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1558 ./libtest/libtests lib1558 file:///build/curl/src/build-curl/tests/log/63/data1558 > log/63/stdout1558 2> log/63/stderr1558 1558: stdout FAILED: --- log/63/check-expected 2025-07-18 09:41:37.516704584 +0000 +++ log/63/check-generated 2025-07-18 09:41:37.515579424 +0000 @@ -1,2 +0,0 @@ -hello[LF] -Protocol: 400[LF] == Contents of files in the log/63/ dir after test 1558 === Start of file check-expected hello[LF] Protocol: 400[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1558 ./libtest/libtests lib1558 file:///build/curl/src/build-curl/tests/log/63/data1558 > log/63/stdout1558 2> log/63/stderr1558 === End of file commands.log === Start of file data1558 hello === End of file data1558 === Start of file server.cmd Testnum 1558 === End of file server.cmd === Start of file valgrind1558 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1558 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1565 ./libtest/libtests lib1565 http://127.0.0.1:44921/1 > log/54/stdout1565 2> log/54/stderr1565 * starts no server test 1559...[Set excessive URL lengths] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1559 ./libtest/libtests lib1559 - > log/27/stdout1559 2> log/27/stderr1559 1559: stdout FAILED: --- log/27/check-expected 2025-07-18 09:41:37.665611968 +0000 +++ log/27/check-generated 2025-07-18 09:41:37.664579349 +0000 @@ -1,5 +0,0 @@ -CURLOPT_URL 10000000 bytes URL == 43[LF] -CURLOPT_POSTFIELDS 10000000 bytes data == 0[LF] -CURLUPART_URL 10000000 bytes URL == 3 (Malformed input to a URL function)[LF] -CURLUPART_SCHEME 10000000 bytes scheme == 3 (Malformed input to a URL function)[LF] -CURLUPART_USER 10000000 bytes user == 3 (Malformed input to a URL function)[LF] == Contents of files in the log/27/ dir after test 1559 === Start of file check-expected CURLOPT_URL 10000000 bytes URL == 43[LF] CURLOPT_POSTFIELDS 10000000 bytes data == 0[LF] CURLUPART_URL 10000000 bytes URL == 3 (Malformed input to a URL function)[LF] CURLUPART_SCHEME 10000000 bytes scheme == 3 (Malformed input to a URL function)[LF] CURLUPART_USER 10000000 bytes user == 3 (Malformed input to a URL function)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1559 ./libtest/libtests lib1559 - > log/27/stdout1559 2> log/27/stderr1559 === End of file commands.log === Start of file server.cmd Testnum 1559 === End of file server.cmd === Start of file valgrind1559 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1559 test 1565...[wakeup from another thread] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1565 ./libtest/libtests lib1565 http://127.0.0.1:44921/1 > log/54/stdout1565 2> log/54/stderr1565 libtests returned 1, when expecting 0 1565: exit FAILED == Contents of files in the log/54/ dir after test 1565 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1565 ./libtest/libtests lib1565 http://127.0.0.1:44921/1 > log/54/stdout1565 2> log/54/stderr1565 === End of file commands.log === Start of file http_server.log 09:41:37.328840 ====> Client connect 09:41:37.329120 accept_connection 3 returned 4 09:41:37.329263 accept_connection 3 returned 0 09:41:37.329382 Read 93 bytes 09:41:37.329667 Process 93 bytes request 09:41:37.329859 Got request: GET /verifiedserver HTTP/1.1 09:41:37.329954 Are-we-friendly question received 09:41:37.330155 Wrote request (93 bytes) input to log/54/server.input 09:41:37.330331 Identifying ourselves as friends 09:41:37.331950 Response sent (56 bytes) and written to log/54/server.response 09:41:37.332061 special request received, no persistency 09:41:37.332126 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 1565 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind1565 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1565 * starts no server test 1564...[wakeup before poll with no easy handles] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1564 ./libtest/libtests lib1564 - > log/59/stdout1564 2> log/59/stderr1564 libtests returned 1, when expecting 0 1564: exit FAILED == Contents of files in the log/59/ dir after test 1564 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1564 ./libtest/libtests lib1564 - > log/59/stdout1564 2> log/59/stderr1564 === End of file commands.log === Start of file server.cmd Testnum 1564 === End of file server.cmd === Start of file valgrind1564 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, loCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1563 ../src/curl -q --output log/16/curl1563.out --include --trace-ascii log/16/trace1563 --trace-config all --trace-time http://127.0.0.1:34829/15630001 -L -H "Host: www.example.com" > log/16/stdout1563 2> log/16/stderr1563 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1572 ./libtest/libtests lib1571 http://127.0.0.1:39259/1572 > log/24/stdout1572 2> log/24/stderr1572 nger term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1564 test 1563...[Make sure redirects to CURLPROTO_GOPHER are forbidden by default] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1563 ../src/curl -q --output log/16/curl1563.out --include --trace-ascii log/16/trace1563 --trace-config all --trace-time http://127.0.0.1:34829/15630001 -L -H "Host: www.example.com" > log/16/stdout1563 2> log/16/stderr1563 1563: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 1563 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1563 ../src/curl -q --output log/16/curl1563.out --include --trace-ascii log/16/trace1563 --trace-config all --trace-time http://127.0.0.1:34829/15630001 -L -H "Host: www.example.com" > log/16/stdout1563 2> log/16/stderr1563 === End of file commands.log === Start of file http_server.log 09:41:37.370291 ====> Client connect 09:41:37.370711 accept_connection 3 returned 4 09:41:37.370882 accept_connection 3 returned 0 09:41:37.371024 Read 93 bytes 09:41:37.371121 Process 93 bytes request 09:41:37.371303 Got request: GET /verifiedserver HTTP/1.1 09:41:37.371432 Are-we-friendly question received 09:41:37.371812 Wrote request (93 bytes) input to log/16/server.input 09:41:37.371997 Identifying ourselves as friends 09:41:37.372864 Response sent (56 bytes) and written to log/16/server.response 09:41:37.372970 special request received, no persistency 09:41:37.373037 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 1563 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind1563 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1563 test 1572...[CURLFOLLOW_OBEYCODE with custom POST method, 308 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1572 ./libtest/libtests lib1571 http://127.0.0.1:39259/1572 > log/24/stdout1572 2> log/24/stderr1572 1572: protocol FAILED! There was no content at all in the file log/24/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/24/ dir after test 1572 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1572 ./libtest/libtests lib1571 http://127.0.0.1:39259/1572 > log/24/stdout1572 2> log/24/stderr1572 === End of file commands.log === Start of file http_server.log 09:41:37.399025 ====> Client connect 09:41:37.399396 accept_connection 3 returned 4 09:41:37.399801 accept_connection 3 returned 0 09:41:37.400025 Read 93 bytes 09:41:37.400120 Process 93 bytes request 09:41:37.400213 Got request: GET /verifiedserver HTTP/1.1 09:41:37.400305 Are-we-friendly question received 09:41:37.400749 Wrote request (93 bytes) input to log/24/server.input 09:41:37.401012 Identifying ourselves as friends 09:41:37.402013 Response sent (56 bytes) and written to log/24/server.response 09:41:37.402118 special request received, no persistency 09:41:37.402191 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 1572 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind1572 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1592 ./libtest/libtests lib1592 http://a-site-never-accessed.example.org/1592 > log/18/stdout1592 2> log/18/stderr1592 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1571 ./libtest/libtests lib1571 http://127.0.0.1:45557/1571 > log/31/stdout1571 2> log/31/stderr1571 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1569 ./libtest/libtests lib1569 "ftp://127.0.0.1:45965/1569;type=A" ftp://127.0.0.1:45965/1569 > log/36/stdout1569 2> log/36/stderr1569 : Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1572 * starts no server test 1592...[HTTP request, remove handle while resolving, don't block] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1592 ./libtest/libtests lib1592 http://a-site-never-accessed.example.org/1592 > log/18/stdout1592 2> log/18/stderr1592 libtests returned 1, when expecting 0 1592: exit FAILED == Contents of files in the log/18/ dir after test 1592 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1592 ./libtest/libtests lib1592 http://a-site-never-accessed.example.org/1592 > log/18/stdout1592 2> log/18/stderr1592 === End of file commands.log === Start of file server.cmd Testnum 1592 === End of file server.cmd === Start of file valgrind1592 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1592 test 1571...[CURLFOLLOW_OBEYCODE with custom POST method, 302 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1571 ./libtest/libtests lib1571 http://127.0.0.1:45557/1571 > log/31/stdout1571 2> log/31/stderr1571 1571: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1571 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1571 ./libtest/libtests lib1571 http://127.0.0.1:45557/1571 > log/31/stdout1571 2> log/31/stderr1571 === End of file commands.log === Start of file http_server.log 09:41:37.405752 ====> Client connect 09:41:37.406003 accept_connection 3 returned 4 09:41:37.406139 accept_connection 3 returned 0 09:41:37.406245 Read 93 bytes 09:41:37.406322 Process 93 bytes request 09:41:37.406398 Got request: GET /verifiedserver HTTP/1.1 09:41:37.406527 Are-we-friendly question received 09:41:37.406754 Wrote request (93 bytes) input to log/31/server.input 09:41:37.406905 Identifying ourselves as friends 09:41:37.407603 Response sent (56 bytes) and written to log/31/server.response 09:41:37.407697 special request received, no persistency 09:41:37.407752 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 1571 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1571 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1571 test 1569...[FTP first type=A then regular URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1569 ./libtest/libtests lib1569 "ftp://127.0.0.1:45965/1569;type=A" ftp://127.0.0.1:45965/1569 > log/36/stdout1569 2> log/36/stderr1569 1569: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 1569 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1569 ./libtest/libtests lib1569 "ftp://127.0.0.1:45965/1569;type=A" ftp://127.0.0.1:45965/1569 > log/36/stdout1569 2> log/36/stderr1569 === End of file commands.log === Start of file ftp_server.log 09:41:37.120259 ====> Client connect 09:41:37.121373 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:37.124518 < "USER anonymous" 09:41:37.125194 > "331 We are happy you popped in![CR][LF]" 09:41:37.127691 < "PASS ftp@example.com" 09:41:37.130250 > "230 Welcome you silly person[CR][LF]" 09:41:37.131589 < "PWD" 09:41:37.133544 > "257 "/" is current directory[CR][LF]" 09:41:37.134945 < "EPSV" 09:41:37.135183 ====> Passive DATA channel requested by client 09:41:37.135409 DATA sockfilt for passive data channel starting... 09:41:37.155089 DATA sockfilt for passive data channel started (pid 154860) 09:41:37.156473 DATA sockfilt for passive data channel listens on port 35447 09:41:37.157002 > CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1567 ./libtest/libtests lib1567 http://127.0.0.1:35093/1567 > log/41/stdout1567 2> log/41/stderr1567 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1566 ../src/curl -q --trace-ascii log/46/trace1566 --trace-config all --trace-time http://127.0.0.1:46523/1566 -o log/46/output1566 --etag-compare log/46/etag1566 > log/46/stdout1566 2> log/46/stderr1566 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1568 ./libtest/libtests lib1568 http://127.0.0.1/1568 37551 > log/37/stdout1568 2> log/37/stderr1568 "229 Entering Passive Mode (|||35447|)[LF]" 09:41:37.157264 Client has been notified that DATA conn will be accepted on port 35447 09:41:37.159829 Client connects to port 35447 09:41:37.160116 ====> Client established passive DATA connection on port 35447 09:41:37.161306 < "TYPE I" 09:41:37.161720 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:37.163293 < "SIZE verifiedserver" 09:41:37.163565 > "213 17[CR][LF]" 09:41:37.165214 < "RETR verifiedserver" 09:41:37.166435 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:37.167183 =====> Closing passive DATA connection... 09:41:37.167342 Server disconnects passive DATA connection 09:41:37.168333 Server disconnected passive DATA connection 09:41:37.168607 DATA sockfilt for passive data channel quits (pid 154860) 09:41:37.170230 DATA sockfilt for passive data channel quit (pid 154860) 09:41:37.170462 =====> Closed passive DATA connection 09:41:37.171315 > "226 File transfer complete[CR][LF]" 09:41:37.211046 < "QUIT" 09:41:37.212038 > "221 bye bye baby[CR][LF]" 09:41:37.212510 MAIN sockfilt said DISC 09:41:37.213177 ====> Client disconnected 09:41:37.213604 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:37.373372 ====> Client connect 09:41:37.375621 Received DATA (on stdin) 09:41:37.375770 > 160 bytes data, server => client 09:41:37.375862 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:37.375951 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:37.376041 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:37.376923 < 16 bytes data, client => server 09:41:37.377072 'USER anonymous\r\n' 09:41:37.378621 Received DATA (on stdin) 09:41:37.378750 > 33 bytes data, server => client 09:41:37.379181 '331 We are happy you popped in!\r\n' 09:41:37.379798 < 22 bytes data, client => server 09:41:37.379930 'PASS ftp@example.com\r\n' 09:41:37.382289 Received DATA (on stdin) 09:41:37.382416 > 30 bytes data, server => client 09:41:37.382831 '230 Welcome you silly person\r\n' 09:41:37.383403 < 5 bytes data, client => server 09:41:37.383640 'PWD\r\n' 09:41:37.386625 Received DATA (on stdin) 09:41:37.386765 > 30 bytes data, server => client 09:41:37.386835 '257 "/" is current directory\r\n' 09:41:37.387953 < 6 bytes data, client => server 09:41:37.388077 'EPSV\r\n' 09:41:37.410728 Received DATA (on stdin) 09:41:37.410875 > 38 bytes data, server => client 09:41:37.410954 '229 Entering Passive Mode (|||35447|)\n' 09:41:37.413364 < 8 bytes data, client => server 09:41:37.413574 'TYPE I\r\n' 09:41:37.415537 Received DATA (on stdin) 09:41:37.415691 > 33 bytes data, server => client 09:41:37.415763 '200 I modify TYPE as you wanted\r\n' 09:41:37.416261 < 21 bytes data, client => server 09:41:37.417566 'SIZE verifiedserver\r\n' 09:41:37.417704 Received DATA (on stdin) 09:41:37.417772 > 8 bytes data, server => client 09:41:37.417834 '213 17\r\n' 09:41:37.418280 < 21 bytes data, client => server 09:41:37.418387 'RETR verifiedserver\r\n' 09:41:37.419256 Received DATA (on stdin) 09:41:37.419362 > 29 bytes data, server => client 09:41:37.419643 '150 Binary junk (17 bytes).\r\n' 09:41:37.424525 Received DATA (on stdin) 09:41:37.424652 > 28 bytes data, server => client 09:41:37.424800 '226 File transfer complete\r\n' 09:41:37.463227 < 6 bytes data, client => server 09:41:37.463417 'QUIT\r\n' 09:41:37.465085 Received DATA (on stdin) 09:41:37.465201 > 18 bytes data, server => client 09:41:37.465346 '221 bye bye baby\r\n' 09:41:37.465929 ====> Client disconnect 09:41:37.466431 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:37.405305 Running IPv4 version 09:41:37.407921 Listening on port 35447 09:41:37.408279 Wrote pid 154860 to log/36/server/ftp_sockdata.pid 09:41:37.408437 Received PING (on stdin) 09:41:37.409196 Received PORT (on stdin) 09:41:37.413212 ====> Client connect 09:41:37.420744 Received DATA (on stdin) 09:41:37.420901 > 17 bytes data, server => client 09:41:37.420984 'WE ROOLZ: 82698\r\n' 09:41:37.421759 Received DISC (on stdin) 09:41:37.421940 ====> Client forcibly disconnected 09:41:37.422601 Received QUIT (on stdin) 09:41:37.422734 quits 09:41:37.423072 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1569 === End of file server.cmd === Start of file valgrind1569 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1569 test 1568...[HTTP with Digest authorization on custom CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1568 ./libtest/libtests lib1568 http://127.0.0.1/1568 37551 > log/37/stdout1568 2> log/37/stderr1568 1568: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 1568 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1568 ./libtest/libtests lib1568 http://127.0.0.1/1568 37551 > log/37/stdout1568 2> log/37/stderr1568 === End of file commands.log === Start of file http_server.log 09:41:37.320066 ====> Client connect 09:41:37.320441 accept_connection 3 returned 4 09:41:37.320788 accept_connection 3 returned 0 09:41:37.320934 Read 93 bytes 09:41:37.321039 Process 93 bytes request 09:41:37.321145 Got request: GET /verifiedserver HTTP/1.1 09:41:37.321237 Are-we-friendly question received 09:41:37.321547 Wrote request (93 bytes) input to log/37/server.input 09:41:37.321772 Identifying ourselves as friends 09:41:37.322605 Response sent (56 bytes) and written to log/37/server.response 09:41:37.322737 special request received, no persistency 09:41:37.322806 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 1568 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind1568 valgrind: Fatal errorCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1577 ./libtest/libtests lib1576 http://127.0.0.1:42467/1577 1577 > log/23/stdout1577 2> log/23/stderr1577 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1574 ./libtest/libtests lib1571 http://127.0.0.1:34639/1574 > log/53/stdout1574 2> log/53/stderr1574 at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1568 test 1567...[re-run redirected transfer without setting CURLU URL again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1567 ./libtest/libtests lib1567 http://127.0.0.1:35093/1567 > log/41/stdout1567 2> log/41/stderr1567 1567: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 1567 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1567 ./libtest/libtests lib1567 http://127.0.0.1:35093/1567 > log/41/stdout1567 2> log/41/stderr1567 === End of file commands.log === Start of file http_server.log 09:41:37.359380 ====> Client connect 09:41:37.359798 accept_connection 3 returned 4 09:41:37.359947 accept_connection 3 returned 0 09:41:37.360058 Read 93 bytes 09:41:37.360132 Process 93 bytes request 09:41:37.360202 Got request: GET /verifiedserver HTTP/1.1 09:41:37.360260 Are-we-friendly question received 09:41:37.360448 Wrote request (93 bytes) input to log/41/server.input 09:41:37.360687 Identifying ourselves as friends 09:41:37.361321 Response sent (56 bytes) and written to log/41/server.response 09:41:37.361413 special request received, no persistency 09:41:37.363562 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 1567 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind1567 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1567 test 1566...[--etag-compare that gets a 304 back shouldn't overwrite the file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1566 ../src/curl -q --trace-ascii log/46/trace1566 --trace-config all --trace-time http://127.0.0.1:46523/1566 -o log/46/output1566 --etag-compare log/46/etag1566 > log/46/stdout1566 2> log/46/stderr1566 1566: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 1566 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1566 ../src/curl -q --trace-ascii log/46/trace1566 --trace-config all --trace-time http://127.0.0.1:46523/1566 -o log/46/output1566 --etag-compare log/46/etag1566 > log/46/stdout1566 2> log/46/stderr1566 === End of file commands.log === Start of file etag1566 "123456" === End of file etag1566 === Start of file http_server.log 09:41:37.407850 ====> Client connect 09:41:37.408150 accept_connection 3 returned 4 09:41:37.408318 accept_connection 3 returned 0 09:41:37.411291 Read 93 bytes 09:41:37.411451 Process 93 bytes request 09:41:37.411705 Got request: GET /verifiedserver HTTP/1.1 09:41:37.411803 Are-we-friendly question received 09:41:37.412045 Wrote request (93 bytes) input to log/46/server.input 09:41:37.412264 Identifying ourselves as friends 09:41:37.417754 Response sent (56 bytes) and written to log/46/server.response 09:41:37.417862 special request received, no persistency 09:41:37.417937 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file output1566 downloaded already === End of file output1566 === Start of file server.cmd Testnum 1566 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind1566 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the objeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1570 ./libtest/libtests lib1569 "ftp://127.0.0.1:42387/1570;type=D" ftp://127.0.0.1:42387/1570 > log/32/stdout1570 2> log/32/stderr1570 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1573 ./libtest/libtests lib1571 http://127.0.0.1:41727/1573 > log/25/stdout1573 2> log/25/stderr1573 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1593 ./libtest/libtests lib1593 http://127.0.0.1:32895/1593 > log/17/stdout1593 2> log/17/stderr1593 ct with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1566 test 1577...[CURLFOLLOW_OBEYCODE with custom PUT method, 308 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1577 ./libtest/libtests lib1576 http://127.0.0.1:42467/1577 1577 > log/23/stdout1577 2> log/23/stderr1577 1577: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 1577 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1577 ./libtest/libtests lib1576 http://127.0.0.1:42467/1577 1577 > log/23/stdout1577 2> log/23/stderr1577 === End of file commands.log === Start of file http_server.log 09:41:37.577713 ====> Client connect 09:41:37.578059 accept_connection 3 returned 4 09:41:37.578218 accept_connection 3 returned 0 09:41:37.578352 Read 93 bytes 09:41:37.578448 Process 93 bytes request 09:41:37.578672 Got request: GET /verifiedserver HTTP/1.1 09:41:37.578755 Are-we-friendly question received 09:41:37.578981 Wrote request (93 bytes) input to log/23/server.input 09:41:37.579232 Identifying ourselves as friends 09:41:37.580135 Response sent (56 bytes) and written to log/23/server.response 09:41:37.580248 special request received, no persistency 09:41:37.580318 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 1577 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind1577 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1577 test 1573...[CURLFOLLOW_OBEYCODE with custom GET method, 301 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1573 ./libtest/libtests lib1571 http://127.0.0.1:41727/1573 > log/25/stdout1573 2> log/25/stderr1573 1573: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 1573 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1573 ./libtest/libtests lib1571 http://127.0.0.1:41727/1573 > log/25/stdout1573 2> log/25/stderr1573 === End of file commands.log === Start of file http_server.log 09:41:37.524296 ====> Client connect 09:41:37.524768 accept_connection 3 returned 4 09:41:37.524945 accept_connection 3 returned 0 09:41:37.525864 Read 93 bytes 09:41:37.526011 Process 93 bytes request 09:41:37.526096 Got request: GET /verifiedserver HTTP/1.1 09:41:37.526167 Are-we-friendly question received 09:41:37.526400 Wrote request (93 bytes) input to log/25/server.input 09:41:37.526674 Identifying ourselves as friends 09:41:37.530742 Response sent (56 bytes) and written to log/25/server.response 09:41:37.530881 special request received, no persistency 09:41:37.530951 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd Testnum 1573 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind1573 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit syCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1597 ./libtest/libtests lib1597 - > log/60/stdout1597 2> log/60/stderr1597 stem, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1573 test 1570...[FTP first type=D then regular URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1570 ./libtest/libtests lib1569 "ftp://127.0.0.1:42387/1570;type=D" ftp://127.0.0.1:42387/1570 > log/32/stdout1570 2> log/32/stderr1570 1570: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 1570 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1570 ./libtest/libtests lib1569 "ftp://127.0.0.1:42387/1570;type=D" ftp://127.0.0.1:42387/1570 > log/32/stdout1570 2> log/32/stderr1570 === End of file commands.log === Start of file ftp_server.log 09:41:37.115697 ====> Client connect 09:41:37.117864 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:37.120487 < "USER anonymous" 09:41:37.120960 > "331 We are happy you popped in![CR][LF]" 09:41:37.124690 < "PASS ftp@example.com" 09:41:37.125171 > "230 Welcome you silly person[CR][LF]" 09:41:37.127865 < "PWD" 09:41:37.129369 > "257 "/" is current directory[CR][LF]" 09:41:37.130483 < "EPSV" 09:41:37.130917 ====> Passive DATA channel requested by client 09:41:37.131216 DATA sockfilt for passive data channel starting... 09:41:37.148460 DATA sockfilt for passive data channel started (pid 154852) 09:41:37.150050 DATA sockfilt for passive data channel listens on port 40223 09:41:37.151302 > "229 Entering Passive Mode (|||40223|)[LF]" 09:41:37.151571 Client has been notified that DATA conn will be accepted on port 40223 09:41:37.153841 Client connects to port 40223 09:41:37.154165 ====> Client established passive DATA connection on port 40223 09:41:37.155011 < "TYPE I" 09:41:37.155426 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:37.157282 < "SIZE verifiedserver" 09:41:37.158694 > "213 17[CR][LF]" 09:41:37.159951 < "RETR verifiedserver" 09:41:37.160346 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:37.161352 =====> Closing passive DATA connection... 09:41:37.161573 Server disconnects passive DATA connection 09:41:37.163923 Server disconnected passive DATA connection 09:41:37.164171 DATA sockfilt for passive data channel quits (pid 154852) 09:41:37.167437 DATA sockfilt for passive data channel quit (pid 154852) 09:41:37.167681 =====> Closed passive DATA connection 09:41:37.168709 > "226 File transfer complete[CR][LF]" 09:41:37.206896 < "QUIT" 09:41:37.207397 > "221 bye bye baby[CR][LF]" 09:41:37.212406 MAIN sockfilt said DISC 09:41:37.212727 ====> Client disconnected 09:41:37.213341 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:36.368876 ====> Client connect 09:41:36.370835 Received DATA (on stdin) 09:41:36.371041 > 160 bytes data, server => client 09:41:36.372023 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:36.372153 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:36.372234 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:36.373066 < 16 bytes data, client => server 09:41:36.373212 'USER anonymous\r\n' 09:41:36.376600 Received DATA (on stdin) 09:41:36.376871 > 33 bytes data, server => client 09:41:36.376983 '331 We are happy you popped in!\r\n' 09:41:36.377889 < 22 bytes data, client => server 09:41:36.378050 'PASS ftp@example.com\r\n' 09:41:36.379331 Received DATA (on stdin) 09:41:36.379458 > 30 bytes data, server => client 09:41:36.379633 '230 Welcome you silly person\r\n' 09:41:36.380432 < 5 bytes data, client => server 09:41:36.380713 'PWD\r\n' 09:41:36.382188 Received DATA (on stdin) 09:41:36.382340 > 30 bytes data, server => client 09:41:36.382583 '257 "/" is current directory\r\n' 09:41:36.383396 < 6 bytes data, client => server 09:41:36.385740 'EPSV\r\n' 09:41:36.404160 Received DATA (on stdin) 09:41:36.404307 > 38 bytes data, server => client 09:41:36.404556 '229 Entering Passive Mode (|||40223|)\n' 09:41:36.406344 < 8 bytes data, client => server 09:41:36.406547 'TYPE I\r\n' 09:41:36.409178 Received DATA (on stdin) 09:41:36.409328 > 33 bytes data, server => client 09:41:36.409400 '200 I modify TYPE as you wanted\r\n' 09:41:36.410230 < 21 bytes data, client => server 09:41:36.410370 'SIZE verifiedserver\r\n' 09:41:36.411404 Received DATA (on stdin) 09:41:36.411624 > 8 bytes data, server => client 09:41:36.411798 '213 17\r\n' 09:41:36.412622 < 21 bytes data, client => server 09:41:36.412771 'RETR verifiedserver\r\n' 09:41:36.415610 Received DATA (on stdin) 09:41:36.415742 > 29 bytes data, server => client 09:41:36.415830 '150 Binary junk (17 bytes).\r\n' 09:41:36.421817 Received DATA (on stdin) 09:41:36.421966 > 28 bytes data, server => client 09:41:36.422147 '226 File transfer complete\r\n' 09:41:36.459152 < 6 bytes data, client => server 09:41:36.459397 'QUIT\r\n' 09:41:36.461691 Received DATA (on stdin) 09:41:36.461998 > 18 bytes data, server => client 09:41:36.462147 '221 bye bye baby\r\n' 09:41:36.465817 ====> Client disconnect 09:41:36.467360 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:37.398216 Running IPv4 version 09:41:37.400916 Listening on port 40223 09:41:37.401408 Wrote pid 154852 to log/32/server/ftp_sockdata.pid 09:41:37.401837 Received PING (on stdin) 09:41:37.403104 Received PORT (on stdin) 09:41:37.407224 ====> Client connect 09:41:37.416572 Received DATA (on stdin) 09:41:37.416738 > 17 bytes data, server => client 09:41:37.416821 'WE ROOLZ: 77461\r\n' 09:41:37.417132 Received DISC (on stdin) 09:41:37.417305 ====> Client forcibly disconnected 09:41:37.418157 Received QUIT (on stdin) 09:41:37.418275 quits 09:41:37.418720 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1570 === End of file server.cmd === Start of file valgrind1570 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1570 test 1574...[CURLFOLLOW_FIRSTONLY with custom GET method, 301 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1574 ./libtest/libtests lib1571 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1600 ./unit/units unit1600 - > log/3/stdout1600 2> log/3/stderr1600 http://127.0.0.1:34639/1574 > log/53/stdout1574 2> log/53/stderr1574 1574: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 1574 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1574 ./libtest/libtests lib1571 http://127.0.0.1:34639/1574 > log/53/stdout1574 2> log/53/stderr1574 === End of file commands.log === Start of file http_server.log 09:41:37.573170 ====> Client connect 09:41:37.573615 accept_connection 3 returned 4 09:41:37.573839 accept_connection 3 returned 0 09:41:37.573990 Read 93 bytes 09:41:37.574078 Process 93 bytes request 09:41:37.574163 Got request: GET /verifiedserver HTTP/1.1 09:41:37.574232 Are-we-friendly question received 09:41:37.574450 Wrote request (93 bytes) input to log/53/server.input 09:41:37.574749 Identifying ourselves as friends 09:41:37.575609 Response sent (56 bytes) and written to log/53/server.response 09:41:37.575720 special request received, no persistency 09:41:37.575792 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 1574 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind1574 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1574 test 1593...[HTTP custom header overrides CURLOPT_TIMECONDITION] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1593 ./libtest/libtests lib1593 http://127.0.0.1:32895/1593 > log/17/stdout1593 2> log/17/stderr1593 1593: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1593 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1593 ./libtest/libtests lib1593 http://127.0.0.1:32895/1593 > log/17/stdout1593 2> log/17/stderr1593 === End of file commands.log === Start of file http_server.log 09:41:36.641067 ====> Client connect 09:41:36.641796 accept_connection 3 returned 4 09:41:36.642162 accept_connection 3 returned 0 09:41:36.642430 Read 93 bytes 09:41:36.642631 Process 93 bytes request 09:41:36.642931 Got request: GET /verifiedserver HTTP/1.1 09:41:36.643108 Are-we-friendly question received 09:41:36.646571 Wrote request (93 bytes) input to log/17/server.input 09:41:36.646859 Identifying ourselves as friends 09:41:36.647874 Response sent (57 bytes) and written to log/17/server.response 09:41:36.647987 special request received, no persistency 09:41:36.648073 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:32895... * Connected to 127.0.0.1 (127.0.0.1) port 32895 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:32895 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 150350 === End of file http_verify.out === Start of file server.cmd Testnum 1593 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 150350 === End of file server.response === Start of file valgrind1593 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1593 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1576 ./libtest/libtests lib1576 http://127.0.0.1:35697/1576 > log/19/stdout1576 2> log/19/stderr1576 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1596 ./libtest/libtests lib1594 http://127.0.0.1:44647/1596 > log/7/stdout1596 2> log/7/stderr1596 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1601 ./unit/units unit1601 - > log/1/stdout1601 2> log/1/stderr1601 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1602 ./unit/units unit1602 - > log/61/stdout1602 2> log/61/stderr1602 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1595 ./libtest/libtests lib1594 http://127.0.0.1:46129/1595 > log/8/stdout1595 2> log/8/stderr1595 * starts no server test 1597...[CURLOPT_PROTOCOLS_STR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1597 ./libtest/libtests lib1597 - > log/60/stdout1597 2> log/60/stderr1597 1597: stdout FAILED: --- log/60/check-expected 2025-07-18 09:41:38.258617628 +0000 +++ log/60/check-generated 2025-07-18 09:41:38.257579048 +0000 @@ -1 +0,0 @@ -Tested 15 strings[LF] == Contents of files in the log/60/ dir after test 1597 === Start of file check-expected Tested 15 strings[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1597 ./libtest/libtests lib1597 - > log/60/stdout1597 2> log/60/stderr1597 === End of file commands.log === Start of file server.cmd Testnum 1597 === End of file server.cmd === Start of file valgrind1597 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1597 * starts no server test 1601...[MD5 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1601 ./unit/units unit1601 - > log/1/stdout1601 2> log/1/stderr1601 units returned 1, when expecting 0 1601: exit FAILED == Contents of files in the log/1/ dir after test 1601 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1601 ./unit/units unit1601 - > log/1/stdout1601 2> log/1/stderr1601 === End of file commands.log === Start of file server.cmd Testnum 1601 === End of file server.cmd === Start of file valgrind1601 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1601 * starts no server test 1600...[NTLM unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1600 ./unit/units unit1600 - > log/3/stdout1600 2> log/3/stderr1600 units returned 1, when expecting 0 1600: exit FAILED == Contents of files in the log/3/ dir after test 1600 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1600 ./unit/units unit1600 - > log/3/stdout1600 2> log/3/stderr1600 === End of file commands.log === Start of file server.cmd Testnum 1600 === End of file server.cmd === Start of file valgrind1600 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1600 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1591 ./libtest/libtests lib1591 http://127.0.0.1:45475/bzz/1591 log/20/stdout1591 2> log/20/stderr1591 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1594 ./libtest/libtests lib1594 http://127.0.0.1:43309/1594 > log/14/stdout1594 2> log/14/stderr1594 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1603 ./unit/units unit1603 - > log/63/stdout1603 2> log/63/stderr1603 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1580 ./libtest/libtests lib1576 http://127.0.0.1:33511/1580 1578 > log/38/stdout1580 2> log/38/stderr1580 test 1596...[HTTP Retry-After header parsing using a date] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1596 ./libtest/libtests lib1594 http://127.0.0.1:44647/1596 > log/7/stdout1596 2> log/7/stderr1596 1596: stdout FAILED: --- log/7/check-expected 2025-07-18 09:41:38.391578981 +0000 +++ log/7/check-generated 2025-07-18 09:41:38.390578981 +0000 @@ -1 +0,0 @@ -Retry-After 21600[LF] == Contents of files in the log/7/ dir after test 1596 === Start of file check-expected Retry-After 21600[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1596 ./libtest/libtests lib1594 http://127.0.0.1:44647/1596 > log/7/stdout1596 2> log/7/stderr1596 === End of file commands.log === Start of file http_server.log 09:41:37.695094 ====> Client connect 09:41:37.695772 accept_connection 3 returned 4 09:41:37.695946 accept_connection 3 returned 0 09:41:37.699669 Read 93 bytes 09:41:37.699822 Process 93 bytes request 09:41:37.699906 Got request: GET /verifiedserver HTTP/1.1 09:41:37.699979 Are-we-friendly question received 09:41:37.700217 Wrote request (93 bytes) input to log/7/server.input 09:41:37.700405 Identifying ourselves as friends 09:41:37.703102 Response sent (56 bytes) and written to log/7/server.response 09:41:37.703228 special request received, no persistency 09:41:37.703303 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 1596 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind1596 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1596 test 1576...[CURLFOLLOW_OBEYCODE with custom PUT method, 302 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1576 ./libtest/libtests lib1576 http://127.0.0.1:35697/1576 > log/19/stdout1576 2> log/19/stderr1576 1576: protocol FAILED! There was no content at all in the file log/19/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/19/ dir after test 1576 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1576 ./libtest/libtests lib1576 http://127.0.0.1:35697/1576 > log/19/stdout1576 2> log/19/stderr1576 === End of file commands.log === Start of file http_server.log 09:41:37.578826 ====> Client connect 09:41:37.579209 accept_connection 3 returned 4 09:41:37.579386 accept_connection 3 returned 0 09:41:37.579624 Read 93 bytes 09:41:37.579786 Process 93 bytes request 09:41:37.579891 Got request: GET /verifiedserver HTTP/1.1 09:41:37.579999 Are-we-friendly question received 09:41:37.580306 Wrote request (93 bytes) input to log/19/server.input 09:41:37.580634 Identifying ourselves as friends 09:41:37.581784 Response sent (56 bytes) and written to log/19/server.response 09:41:37.581898 special request received, no persistency 09:41:37.581973 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 1576 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind1576 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1576 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1581 ./libtest/libtests lib1571 http://127.0.0.1:46481/1581 > log/26/stdout1581 2> log/26/stderr1581 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1605 ./unit/units unit1605 - > log/59/stdout1605 2> log/59/stderr1605 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1575 ./libtest/libtests lib1571 http://127.0.0.1:33073/1575 > log/64/stdout1575 2> log/64/stderr1575 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1579 ./libtest/libtests lib1576 http://127.0.0.1:37545/1579 1579 > log/28/stdout1579 2> log/28/stderr1579 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1606 ./unit/units unit1606 - > log/16/stdout1606 2> log/16/stderr1606 test 1595...[HTTP Retry-After header extraction (without header)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1595 ./libtest/libtests lib1594 http://127.0.0.1:46129/1595 > log/8/stdout1595 2> log/8/stderr1595 1595: stdout FAILED: --- log/8/check-expected 2025-07-18 09:41:38.512692139 +0000 +++ log/8/check-generated 2025-07-18 09:41:38.511578920 +0000 @@ -1 +0,0 @@ -Retry-After 0[LF] == Contents of files in the log/8/ dir after test 1595 === Start of file check-expected Retry-After 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1595 ./libtest/libtests lib1594 http://127.0.0.1:46129/1595 > log/8/stdout1595 2> log/8/stderr1595 === End of file commands.log === Start of file http_server.log 09:41:37.662318 ====> Client connect 09:41:37.662771 accept_connection 3 returned 4 09:41:37.662941 accept_connection 3 returned 0 09:41:37.663072 Read 93 bytes 09:41:37.663168 Process 93 bytes request 09:41:37.663248 Got request: GET /verifiedserver HTTP/1.1 09:41:37.663324 Are-we-friendly question received 09:41:37.663861 Wrote request (93 bytes) input to log/8/server.input 09:41:37.664066 Identifying ourselves as friends 09:41:37.664867 Response sent (56 bytes) and written to log/8/server.response 09:41:37.664978 special request received, no persistency 09:41:37.665038 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 1595 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind1595 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1595 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1598 ./libtest/libtests lib1598 http://127.0.0.1:38899/bzz/1598 log/62/stdout1598 2> log/62/stderr1598 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1599 ./libtest/libtests lib1599 ftp://127.0.0.1:40139/1599 log/55/netrc1599 > log/55/stdout1599 2> log/55/stderr1599 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1604 ./tunit/tunits tool1604 - > log/27/stdout1604 2> log/27/stderr1604 test 1594...[HTTP Retry-After header parsing and extraction] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1594 ./libtest/libtests lib1594 http://127.0.0.1:43309/1594 > log/14/stdout1594 2> log/14/stderr1594 1594: stdout FAILED: --- log/14/check-expected 2025-07-18 09:41:38.583578883 +0000 +++ log/14/check-generated 2025-07-18 09:41:38.582578884 +0000 @@ -1 +0,0 @@ -Retry-After 22[LF] == Contents of files in the log/14/ dir after test 1594 === Start of file check-expected Retry-After 22[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1594 ./libtest/libtests lib1594 http://127.0.0.1:43309/1594 > log/14/stdout1594 2> log/14/stderr1594 === End of file commands.log === Start of file http_server.log 09:41:37.698077 ====> Client connect 09:41:37.698441 accept_connection 3 returned 4 09:41:37.698725 accept_connection 3 returned 0 09:41:37.698843 Read 93 bytes 09:41:37.698929 Process 93 bytes request 09:41:37.699012 Got request: GET /verifiedserver HTTP/1.1 09:41:37.699090 Are-we-friendly question received 09:41:37.699311 Wrote request (93 bytes) input to log/14/server.input 09:41:37.699568 Identifying ourselves as friends 09:41:37.701278 Response sent (56 bytes) and written to log/14/server.response 09:41:37.701384 special request received, no persistency 09:41:37.701447 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 1594 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind1594 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1594 test 1591...[HTTP PUT with trailers at the end] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1591 ./libtest/libtests lib1591 http://127.0.0.1:45475/bzz/1591 log/20/stdout1591 2> log/20/stderr1591 1591: protocol FAILED! There was no content at all in the file log/20/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/20/ dir after test 1591 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind1591 ./libtest/libtests lib1591 http://127.0.0.1:45475/bzz/1591 log/20/stdout1591 2> log/20/stderr1591 === End of file commands.log === Start of file http_server.log 09:41:37.659671 ====> Client connect 09:41:37.659994 accept_connection 3 returned 4 09:41:37.660152 accept_connection 3 returned 0 09:41:37.660285 Read 93 bytes 09:41:37.660360 Process 93 bytes request 09:41:37.660437 Got request: GET /verifiedserver HTTP/1.1 09:41:37.660609 Are-we-friendly question received 09:41:37.660845 Wrote request (93 bytes) input to log/20/server.input 09:41:37.661026 Identifying ourselves as friends 09:41:37.661945 Response sent (56 bytes) and written to log/20/server.response 09:41:37.662040 special request received, no persistency 09:41:37.662096 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 1591 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file stdin-for-1591 more than one byte === End of file stdin-for-1591 === Start of file valgrind1591 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1591 * starts no server test 1602...[Internal hash create/add/destroy testing, exercising clean functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1602 ./unit/units unit1602 - > log/61/stdout1602 2> log/61/stderr1602 units returned 1, when expecting 0 1602: exit FAILED == Contents of files in the log/61/ dir after test 1602 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --toCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1611 ./unit/units unit1611 - > log/49/stdout1611 2> log/49/stderr1611 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1607 ./unit/units unit1607 - > log/24/stdout1607 2> log/24/stderr1607 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1612 ./unit/units unit1612 - > log/18/stdout1612 2> log/18/stderr1612 ol=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1602 ./unit/units unit1602 - > log/61/stdout1602 2> log/61/stderr1602 === End of file commands.log === Start of file server.cmd Testnum 1602 === End of file server.cmd === Start of file valgrind1602 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1602 * starts no server test 1603...[Internal hash add, retrieval, deletion testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1603 ./unit/units unit1603 - > log/63/stdout1603 2> log/63/stderr1603 units returned 1, when expecting 0 1603: exit FAILED == Contents of files in the log/63/ dir after test 1603 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1603 ./unit/units unit1603 - > log/63/stdout1603 2> log/63/stderr1603 === End of file commands.log === Start of file server.cmd Testnum 1603 === End of file server.cmd === Start of file valgrind1603 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1603 * starts no server test 1606...[verify speedcheck] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1606 ./unit/units unit1606 - > log/16/stdout1606 2> log/16/stderr1606 units returned 1, when expecting 0 1606: exit FAILED == Contents of files in the log/16/ dir after test 1606 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1606 ./unit/units unit1606 - > log/16/stdout1606 2> log/16/stderr1606 === End of file commands.log === Start of file server.cmd Testnum 1606 === End of file server.cmd === Start of file valgrind1606 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1606 test 1581...[CURLFOLLOW_OBEYCODE with custom POST301 method, 301 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1581 ./libtest/libtests lib1571 http://127.0.0.1:46481/1581 > log/26/stdout1581 2> log/26/stderr1581 1581: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 1581 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1581 ./libtest/libtests lib1571 http://127.0.0.1:46481/1581 > log/26/stdout1581 2> log/26/stderr1581 === End of file commands.log === Start of file http_server.log 09:41:37.674712 ====> Client connect 09:41:37.675040 accept_connection 3 returned 4 09:41:37.675203 accept_connection 3 returned 0 09:41:37.675336 Read 93 bytes 09:41:37.675434 Process 93 bytes request 09:41:37.675615 Got request: GET /verifiedserver HTTP/1.1 09:41:37.675726 Are-we-friendly question received 09:41:37.675943 Wrote request (93 bytes) input to log/26/server.input 09:41:37.676113 Identifying ourselves as friends 09:41:37.676927 Response sent (56 bytes) and written to log/26/server.response 09:41:37.677040 special request received, no persistency 09:41:37.677104 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * ConneCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1608 ./unit/units unit1608 - > log/54/stdout1608 2> log/54/stderr1608 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1609 ./unit/units unit1609 - > log/58/stdout1609 2> log/58/stderr1609 ction #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 1581 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1581 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1581 * starts no server test 1604...[Test Windows/MS-DOS filename sanitization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1604 ./tunit/tunits tool1604 - > log/27/stdout1604 2> log/27/stderr1604 tunits returned 1, when expecting 0 1604: exit FAILED == Contents of files in the log/27/ dir after test 1604 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1604 ./tunit/tunits tool1604 - > log/27/stdout1604 2> log/27/stderr1604 === End of file commands.log === Start of file server.cmd Testnum 1604 === End of file server.cmd === Start of file valgrind1604 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1604 test 1579...[CURLFOLLOW_OBEYCODE with custom PUT method, 303 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1579 ./libtest/libtests lib1576 http://127.0.0.1:37545/1579 1579 > log/28/stdout1579 2> log/28/stderr1579 1579: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 1579 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1579 ./libtest/libtests lib1576 http://127.0.0.1:37545/1579 1579 > log/28/stdout1579 2> log/28/stderr1579 === End of file commands.log === Start of file http_server.log 09:41:37.579419 ====> Client connect 09:41:37.579815 accept_connection 3 returned 4 09:41:37.579960 accept_connection 3 returned 0 09:41:37.580062 Read 93 bytes 09:41:37.580130 Process 93 bytes request 09:41:37.580197 Got request: GET /verifiedserver HTTP/1.1 09:41:37.580253 Are-we-friendly question received 09:41:37.580421 Wrote request (93 bytes) input to log/28/server.input 09:41:37.580645 Identifying ourselves as friends 09:41:37.581224 Response sent (56 bytes) and written to log/28/server.response 09:41:37.581313 special request received, no persistency 09:41:37.581365 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 1579 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind1579 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1579 test 1580...[CURLFOLLOW_FIRSTONLY with custom PUT method, 308 => PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1580 ./libtest/libtests lib1576 http://127.0.0.1:33511/1580 1578 > log/38/stdout1580 2> log/38/stderr1580 1580: protocol FAILED! There was no content at all iCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1615 ./unit/units unit1615 - > log/46/stdout1615 2> log/46/stderr1615 n the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 1580 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1580 ./libtest/libtests lib1576 http://127.0.0.1:33511/1580 1578 > log/38/stdout1580 2> log/38/stderr1580 === End of file commands.log === Start of file http_server.log 09:41:37.613890 ====> Client connect 09:41:37.614194 accept_connection 3 returned 4 09:41:37.614349 accept_connection 3 returned 0 09:41:37.614567 Read 93 bytes 09:41:37.614693 Process 93 bytes request 09:41:37.614790 Got request: GET /verifiedserver HTTP/1.1 09:41:37.614871 Are-we-friendly question received 09:41:37.615091 Wrote request (93 bytes) input to log/38/server.input 09:41:37.615264 Identifying ourselves as friends 09:41:37.617020 Response sent (56 bytes) and written to log/38/server.response 09:41:37.617163 special request received, no persistency 09:41:37.617248 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 1580 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind1580 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1580 * starts no server test 1611...[MD4 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1611 ./unit/units unit1611 - > log/49/stdout1611 2> log/49/stderr1611 units returned 1, when expecting 0 1611: exit FAILED == Contents of files in the log/49/ dir after test 1611 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1611 ./unit/units unit1611 - > log/49/stdout1611 2> log/49/stderr1611 === End of file commands.log === Start of file server.cmd Testnum 1611 === End of file server.cmd === Start of file valgrind1611 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1611 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1614 ./unit/units unit1614 - > log/36/stdout1614 2> log/36/stderr1614 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1610 ./unit/units unit1610 - > log/51/stdout1610 2> log/51/stderr1610 test 1599...[FTP with netrc using no user but control code in password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1599 ./libtest/libtests lib1599 ftp://127.0.0.1:40139/1599 log/55/netrc1599 > log/55/stdout1599 2> log/55/stderr1599 1599: data FAILED: --- log/55/check-expected 2025-07-18 09:41:38.774476067 +0000 +++ log/55/check-generated 2025-07-18 09:41:38.772578788 +0000 @@ -1 +0,0 @@ --foo-[LF] == Contents of files in the log/55/ dir after test 1599 === Start of file check-expected -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1599 ./libtest/libtests lib1599 ftp://127.0.0.1:40139/1599 log/55/netrc1599 > log/55/stdout1599 2> log/55/stderr1599 === End of file commands.log === Start of file ftp_server.log 09:41:37.671296 ====> Client connect 09:41:37.674424 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:37.679855 < "USER anonymous" 09:41:37.683635 > "331 We are happy you popped in![CR][LF]" 09:41:37.684643 < "PASS ftp@example.com" 09:41:37.685153 > "230 Welcome you silly person[CR][LF]" 09:41:37.687312 < "PWD" 09:41:37.687706 > "257 "/" is current directory[CR][LF]" 09:41:37.689880 < "EPSV" 09:41:37.690154 ====> Passive DATA channel requested by client 09:41:37.690326 DATA sockfilt for passive data channel starting... 09:41:37.705454 DATA sockfilt for passive data channel started (pid 155633) 09:41:37.708591 DATA sockfilt for passive data channel listens on port 41693 09:41:37.709104 > "229 Entering Passive Mode (|||41693|)[LF]" 09:41:37.709362 Client has been notified that DATA conn will be accepted on port 41693 09:41:37.711837 Client connects to port 41693 09:41:37.712151 ====> Client established passive DATA connection on port 41693 09:41:37.713321 < "TYPE I" 09:41:37.713665 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:37.719686 < "SIZE verifiedserver" 09:41:37.721643 > "213 17[CR][LF]" 09:41:37.723484 < "RETR verifiedserver" 09:41:37.728145 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:37.729045 =====> Closing passive DATA connection... 09:41:37.729493 Server disconnects passive DATA connection 09:41:37.730424 Server disconnected passive DATA connection 09:41:37.730678 DATA sockfilt for passive data channel quits (pid 155633) 09:41:37.732596 DATA sockfilt for passive data channel quit (pid 155633) 09:41:37.732928 =====> Closed passive DATA connection 09:41:37.735958 > "226 File transfer complete[CR][LF]" 09:41:37.772602 < "QUIT" 09:41:37.773068 > "221 bye bye baby[CR][LF]" 09:41:37.779239 MAIN sockfilt said DISC 09:41:37.780101 ====> Client disconnected 09:41:37.780568 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:37.924349 ====> Client connect 09:41:37.926220 Received DATA (on stdin) 09:41:37.926429 > 160 bytes data, server => client 09:41:37.926835 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:37.927055 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:37.927217 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:37.932526 < 16 bytes data, client => server 09:41:37.932686 'USER anonymous\r\n' 09:41:37.933960 Received DATA (on stdin) 09:41:37.934086 > 33 bytes data, server => client 09:41:37.934241 '331 We are happy you popped in!\r\n' 09:41:37.934989 < 22 bytes data, client => server 09:41:37.935162 'PASS ftp@example.com\r\n' 09:41:37.938942 Received DATA (on stdin) 09:41:37.939307 > 30 bytes data, server => client 09:41:37.939657 '230 Welcome you silly person\r\n' 09:41:37.940551 < 5 bytes data, client => server 09:41:37.940701 'PWD\r\n' 09:41:37.941851 Received DATA (on stdin) 09:41:37.941992 > 30 bytes data, server => client 09:41:37.942078 '257 "/" is current directory\r\n' 09:41:37.942856 < 6 bytes data, client => server 09:41:37.942986 'EPSV\r\n' 09:41:37.963378 Received DATA (on stdin) 09:41:37.963583 > 38 bytes data, server => client 09:41:37.963671 '229 Entering Passive Mode (|||41693|)\n' 09:41:37.966228 < 8 bytes data, client => server 09:41:37.966358 'TYPE I\r\n' 09:41:37.971593 Received DATA (on stdin) 09:41:37.971771 > 33 bytes data, server => client 09:41:37.971866 '200 I modify TYPE as you wanted\r\n' 09:41:37.972430 < 21 bytes data, client => server 09:41:37.972759 'SIZE verifiedserver\r\n' 09:41:37.973885 Received DATA (on stdin) 09:41:37.974020 > 8 bytes data, server => client 09:41:37.974172 '213 17\r\n' 09:41:37.974801 < 21 bytes data, client => server 09:41:37.975180 'RETR verifiedserver\r\n' 09:41:37.983564 Received DATA (on stdin) 09:41:37.983707 > 29 bytes data, server => client 09:41:37.983801 '150 Binary junk (17 bytes).\r\n' 09:41:37.986944 Received DATA (on stdin) 09:41:37.987078 > 28 bytes data, server => client 09:41:37.990046 '226 File transfer complete\r\n' 09:41:38.025383 < 6 bytes data, client => server 09:41:38.025662 'QUIT\r\n' 09:41:38.027172 Received DATA (on stdin) 09:41:38.027302 > 18 bytes data, server => client 09:41:38.027388 '221 bye bye baby\r\n' 09:41:38.032627 ====> Client disconnect 09:41:38.033285 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:37.956083 Running IPv4 version 09:41:37.956680 Listening on port 41693 09:41:37.957032 Wrote pid 155633 to log/55/server/ftp_sockdata.pid 09:41:37.958887 Received PING (on stdin) 09:41:37.961746 Received PORT (on stdin) 09:41:37.964735 ====> Client connect 09:41:37.982409 Received DATA (on stdin) 09:41:37.982667 > 17 bytes data, server => client 09:41:37.982766 'WE ROOLZ: 77586\r\n' 09:41:37.983577 Received DISC (on stdin) 09:41:37.983743 ====> Client forcibly disconnected 09:41:37.984762 Received QUIT (on stdin) 09:41:37.984907 quits 09:41:37.985311 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc1599 default passwor?dlogin anonymou\ ' password login anonymous passwor?d.'macdef === End of file netrc1599 === Start of file server.cmd Testnum 1599 === End of file server.cmd === Start of file valgrind1599 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1599 * starts no server test 1605...[Test negative data lengths as input to libcurl functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1605 ./unit/units unit1605 - > log/59/stdout1605 2> log/59/stderr1605 units returned 1, when expecting 0 1605: exit FAILED == Contents of files in the log/59/ dir after test 1605 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1605 ./unit/units unit1605 - > log/59/stdout1605 2> log/59/stderr1605 === End of file commands.log === Start of file server.cmd Testnum 1605 === End of file server.cmd === Start of file valgrind1605 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1605 test 1598...[HTTP POST with trailers at the end] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1598 ./libtest/libtests lib1598 http://127.0.0.1:38899/bzz/1598 log/62/stdout1598 2> log/62/stderr1598 1598: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 1598 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1598 ./libtest/libtests lib1598 http://127.0.0.1:38899/bzz/1598 log/62/stdout1598 2> log/62/stderr1598 === End of file commands.log === Start of file http_server.log 09:41:37.832882 ====> Client connect 09:41:37.833127 accept_connection 3 returned 4 09:41:37.833254 accept_connection 3 returned 0 09:41:37.833365 Read 93 bytes 09:41:37.833437 Process 93 bytes request 09:41:37.833775 Got request: GET /verifiedserver HTTP/1.1 09:41:37.833865 Are-we-friendly question received 09:41:37.834065 Wrote request (93 bytes) input to log/62/server.input 09:41:37.834218 Identifying ourselves as friends 09:41:37.834837 Response sent (56 bytes) and written to log/62/server.response 09:41:37.834932 special request received, no persistency 09:41:37.834986 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1598 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file stdin-for-1598 more than one byte === End of file stdin-for-1598 === Start of file valgrind1598 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1598 test 1575...[CURLFOLLOW_FIRSTONLY with custom POST method, 308 => POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1575 ./libtest/libtests lib1571 http://127.0.0.1:33073/1575 > log/64/stdout1575 2> log/64/stderr1575 1575: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 1575 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1575 ./libtest/libtests lib1571 http://127.0.0.1:33073/1575 > log/64/stdout1575 2> log/64/stderr1575 === End of file commands.log === Start of file http_server.log 09:41:37.591866 ====> Client connect 09:41:37.592182 accept_connection 3 returned 4 09:41:37.592354 accept_connection 3 returned 0 09:41:37.592783 Read 93 bytes 09:41:37.592925 Process 93 bytes request 09:41:37.593017 Got request: GET /verifiedserver HTTP/1.1 09:41:37.593090 Are-we-friendly question received 09:41:37.593296 Wrote request (93 bytes) input to log/64/server.input 09:41:37.593557 Identifying ourselves as friends 09:41:37.594300 Response sent (56 bytes) and written to log/64/server.response 09:41:37.594409 special request received, no persistency 09:41:37.594564 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1575 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1575 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1575 * starts no server test 1612...[HMAC unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1612 ./unit/units unit1612 - > log/18/stdout1612 2> log/18/stderr1612 units returned 1, when expecting 0 1612: exit FAILED == Contents of files in the log/18/ dir after test 1612 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1612 ./unit/units unit1612 - > log/18/stdout1612 2> log/18/stderr1612 === End of file commands.log === Start of file server.cmd Testnum 1612 === End of file server.cmd === Start of file valgrind1612 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1612 * starts no server test 1607...[CURLOPT_RESOLVE parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1607 ./unit/units unit1607 - > log/24/stdout1607 2> log/24/stderr1607 units returned 1, when expecting 0 1607: exit FAILED == Contents of files in the log/24/ dir after test 1607 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1607 ./unit/units unit1607 - > log/24/stdout1607 2> log/24/stderr1607 === End of file commands.log === Start of file server.cmd Testnum 1607 === End of file server.cmd === Start of file valgrind1607 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1607 * starts no server test 1614...[noproxy and cidr comparisons] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1614 ./unit/units unit1614 - > log/36/stdout1614 2> log/36/stderr1614 units returned 1, when expecting 0 1614: exit FAILED == Contents of files in the log/36/ dir after test 1614 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1614 ./unit/units unit1614 - > log/36/stdout1614 2> log/36/stderr1614 === End of file commands.log === Start of file server.cmd Testnum 1614 === End of file server.cmd === Start of file valgrind1614 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1614 * starts no server test 1615...[SHA-512/256 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1615 ./unit/units unit1615 - > log/46/stdout1615 2> log/46/stderr1615 units returned 1, when expecting 0 1615: exit FAILED == Contents of files in the log/46/ dir after test 1615 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1615 ./unit/units unit1615 - > log/46/stdout1615 2> log/46/stderr1615 === End of file commands.log === Start of file server.cmd Testnum 1615 === End of file server.cmd === Start of file valgrind1615 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1615 * starts no server test 1610...[SHA256 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1610 ./unit/units unit1610 - > log/51/stdout1610 2> log/51/stderr1610 units returned 1, when expecting 0 1610: exit FAILED == Contents of files in the log/51/ dir after test 1610 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1610 ./unit/units unit1610 - > log/51/stdout1610 2> log/51/stderr1610 === End of file commands.log === Start of file server.cmd Testnum 1610 === End of file server.cmd === Start of file valgrind1610 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1610 * starts no server test 1608...[verify DNS shuffling] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1608 ./unit/units unit1608 - > log/54/stdout1608 2> log/54/stderr1608 units returned 1, when expecting 0 1608: exit FAILED == Contents of files in the log/54/ dir after test 1608 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1608 ./unit/units unit1608 - > log/54/stdout1608 2> log/54/stderr1608 === End of file commands.log === Start of file server.cmd Testnum 1608 === End of file server.cmd === Start of file valgrind1608 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1608 * starts no server test 1609...[CURLOPT_RESOLVE parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1609 ./unit/units unit1609 - > log/58/stdout1609 2> log/58/stderr1609 units returned 1, when expecting 0 1609: exit FAILED == Contents of files in the log/58/ dir after test 1609 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind1609 ./unit/units unit1609 - > log/58/stdout1609 2> log/58/stderr1609 === End of file commands.log === Start of file server.cmd Testnum 1609 === End of file server.cmd === Start of file valgrind1609 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1616 ./unit/units unit1616 - > log/53/stdout1616 2> log/53/stderr1616 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1590 ./libtest/libtests lib1553 imap://localhost:42887/1590 > log/21/stdout1590 2> log/21/stderr1590 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1578 ./libtest/libtests lib1576 http://127.0.0.1:40909/1578 > log/29/stdout1578 2> log/29/stderr1578 valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1609 * starts no server test 1616...[Internal uint_hash create/add/destroy testing, exercising clean functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1616 ./unit/units unit1616 - > log/53/stdout1616 2> log/53/stderr1616 units returned 1, when expecting 0 1616: exit FAILED == Contents of files in the log/53/ dir after test 1616 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1616 ./unit/units unit1616 - > log/53/stdout1616 2> log/53/stderr1616 === End of file commands.log === Start of file server.cmd Testnum 1616 === End of file server.cmd === Start of file valgrind1616 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1616 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/21/server/imap_server.pid" --logfile "log/21/imap_server.log" --logdir "log/21" --portfile "log/21/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42887 (log/21/server/imap_server.port) RUN: IMAP server is PID 154895 port 42887 * pid imap => 154895 154895 test 1590...[IMAP cleanup before a connection was created] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1590 ./libtest/libtests lib1553 imap://localhost:42887/1590 > log/21/stdout1590 2> log/21/stderr1590 libtests returned 1, when expecting 0 1590: exit FAILED == Contents of files in the log/21/ dir after test 1590 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1590 ./libtest/libtests lib1553 imap://localhost:42887/1590 > log/21/stdout1590 2> log/21/stderr1590 === End of file commands.log === Start of file imap_server.log 09:41:37.754421 IMAP server listens on port IPv4/42887 09:41:37.755479 logged pid 154895 in log/21/server/imap_server.pid 09:41:37.755836 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:37.005916 Running IPv4 version 09:41:37.006615 Listening on port 42887 09:41:37.007030 Wrote pid 155731 to log/21/server/imap_sockfilt.pid 09:41:37.007357 Wrote port 42887 to log/21/server/imap_server.port 09:41:37.007589 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1590 === End of file server.cmd === Start of file valgrind1590 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1590 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/29/server/http_server.pid" --logfile "log/29/http_server.log" --logdir "log/29" --portfile log/29/server/http_server.port --config log/29/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 154862 port 40909 * pid http => 154862 154862 test 1578...[CURLFOLLOW_FIRSTONLY with custom PUT method, 302 => PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1578 ./libtest/libtests lib1576 http://127.0.0.1:40909/1578 > log/29/stdout1578 2> log/29/stderr1578 1578: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 1578 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1578 ./libtest/libtests lib1576 http://127.0.0.1:40909/1578 > log/29/stdout1578 2> log/29/stderr1578 === End of file commands.log === Start of file http_server.log 09:41:37.000252 Running HTTP IPv4 version on port 40909 09:41:37.001178 Wrote pid 154862 to log/29/server/http_server.pid 09:41:37.001574 Wrote port 40909 to log/29/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 1578 === End of file server.cmd === Start of file valgrind1578 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1620 ./unit/units unit1620 - > log/60/stdout1620 2> log/60/stderr1620 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1621 ./tunit/tunits tool1621 - > log/19/stdout1621 2> log/19/stderr1621 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1613 ../src/curl -q --output log/31/curl1613.out --include --trace-ascii log/31/trace1613 --trace-config all --trace-time --request-target '*' -X OPTIONS --proxy http://127.0.0.1:45557/ -H "Testno: 1613" http://www.example.org/ > log/31/stdout1613 2> log/31/stderr1613 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1650 ./unit/units unit1650 - > log/53/stdout1650 2> log/53/stderr1650 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1651 ./unit/units unit1651 - > log/46/stdout1651 2> log/46/stderr1651 irected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1578 * starts no server test 1620...[unit tests for url.c] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1620 ./unit/units unit1620 - > log/60/stdout1620 2> log/60/stderr1620 units returned 1, when expecting 0 1620: exit FAILED == Contents of files in the log/60/ dir after test 1620 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1620 ./unit/units unit1620 - > log/60/stdout1620 2> log/60/stderr1620 === End of file commands.log === Start of file server.cmd Testnum 1620 === End of file server.cmd === Start of file valgrind1620 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1620 * starts no server test 1621...[unit tests for stripcredentials from URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1621 ./tunit/tunits tool1621 - > log/19/stdout1621 2> log/19/stderr1621 tunits returned 1, when expecting 0 1621: exit FAILED == Contents of files in the log/19/ dir after test 1621 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind1621 ./tunit/tunits tool1621 - > log/19/stdout1621 2> log/19/stderr1621 === End of file commands.log === Start of file server.cmd Testnum 1621 === End of file server.cmd === Start of file valgrind1621 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1621 test 1613...[Send "OPTIONS *" with --request-target to a proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1613 ../src/curl -q --output log/31/curl1613.out --include --trace-ascii log/31/trace1613 --trace-config all --trace-time --request-target '*' -X OPTIONS --proxy http://127.0.0.1:45557/ -H "Testno: 1613" http://www.example.org/ > log/31/stdout1613 2> log/31/stderr1613 1613: protocol FAILED! There was no content at all in the file log/31/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/31/ dir after test 1613 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1613 ../src/curl -q --output log/31/curl1613.out --include --trace-ascii log/31/trace1613 --trace-config all --trace-time --request-target '*' -X OPTIONS --proxy http://127.0.0.1:45557/ -H "Testno: 1613" http://www.example.org/ > log/31/stdout1613 2> log/31/stderr1613 === End of file commands.log === Start of file http_server.log 09:41:38.633431 ====> Client connect 09:41:38.634004 accept_connection 3 returned 4 09:41:38.634149 accept_connection 3 returned 0 09:41:38.634272 Read 93 bytes 09:41:38.634356 Process 93 bytes request 09:41:38.634435 Got request: GET /verifiedserver HTTP/1.1 09:41:38.634596 Are-we-friendly question received 09:41:38.634827 Wrote request (93 bytes) input to log/31/server.input 09:41:38.634996 Identifying ourselves as friends 09:41:38.635754 Response sent (56 bytes) and written to log/31/server.response 09:41:38.635885 special request received, no persistency 09:41:38.636017 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 1613 === End of file server.cmd === Start CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1653 ./unit/units unit1653 - > log/24/stdout1653 2> log/24/stderr1653 of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1613 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1613 * starts no server test 1651...[x509 parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1651 ./unit/units unit1651 - > log/46/stdout1651 2> log/46/stderr1651 units returned 1, when expecting 0 1651: exit FAILED == Contents of files in the log/46/ dir after test 1651 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1651 ./unit/units unit1651 - > log/46/stdout1651 2> log/46/stderr1651 === End of file commands.log === Start of file server.cmd Testnum 1651 === End of file server.cmd === Start of file valgrind1651 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1651 * starts no server test 1650...[DoH parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1650 ./unit/units unit1650 - > log/53/stdout1650 2> log/53/stderr1650 units returned 1, when expecting 0 1650: exit FAILED == Contents of files in the log/53/ dir after test 1650 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1650 ./unit/units unit1650 - > log/53/stdout1650 2> log/53/stderr1650 === End of file commands.log === Start of file server.cmd Testnum 1650 === End of file server.cmd === Start of file valgrind1650 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1650 * starts no server test 1653...[urlapi port number parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1653 ./unit/units unit1653 - > log/24/stdout1653 2> log/24/stderr1653 units returned 1, when expecting 0 1653: exit FAILED == Contents of files in the log/24/ dir after test 1653 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1653 ./unit/units unit1653 - > log/24/stdout1653 2> log/24/stderr1653 === End of file commands.log === Start of file server.cmd Testnum 1653 === End of file server.cmd === Start of file valgrind1653 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1654 ./unit/units unit1654 log/18/1654 > log/18/stdout1654 2> log/18/stderr1654 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1655 ./unit/units unit1655 - > log/62/stdout1655 2> log/62/stderr1655 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1652 ./unit/units unit1652 - > log/36/stdout1652 2> log/36/stderr1652 86). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1653 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1656 ./unit/units unit1656 - > log/21/stdout1656 2> log/21/stderr1656 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1658 ./unit/units unit1658 - > log/55/stdout1658 2> log/55/stderr1658 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1657 ./unit/units unit1657 - > log/59/stdout1657 2> log/59/stderr1657 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1661 ./unit/units unit1661 - > log/29/stdout1661 2> log/29/stderr1661 * starts no server setenv CURL_TIME = 1548369261 test 1654...[alt-svc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1654 ./unit/units unit1654 log/18/1654 > log/18/stdout1654 2> log/18/stderr1654 1654: output (log/18/1654-out) FAILED: --- log/18/check-expected 2025-07-18 09:41:39.725236085 +0000 +++ log/18/check-generated 2025-07-18 09:41:39.724102446 +0000 @@ -1,12 +0,0 @@ -# Your alt-svc cache. https://curl.se/docs/alt-svc.html[CR][LF] -# This file was generated by libcurl! Edit at your own risk.[CR][LF] -h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0[CR][LF] -h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0[CR][LF] -h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0[CR][LF] -h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0[CR][LF] -h1 example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] -h1 2.example.org 8080 h3 2.example.org 8080 "20190125 22:34:21" 0 0[CR][LF] -h1 3.example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] -h1 3.example.org 8080 h3 yesyes.com 8080 "20190125 22:34:21" 0 0[CR][LF] -h2 example.org 80 h2 example.com 443 "20190124 22:36:21" 0 0[CR][LF] -h2 example.net 80 h2 example.net 443 "20190124 22:37:21" 0 0[CR][LF] == Contents of files in the log/18/ dir after test 1654 === Start of file 1654 h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0 # a comment h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0 h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0 h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0 # also a comment bad example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0 rubbish === End of file 1654 === Start of file check-expected # Your alt-svc cache. https://curl.se/docs/alt-svc.html[CR][LF] # This file was generated by libcurl! Edit at your own risk.[CR][LF] h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0[CR][LF] h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0[CR][LF] h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0[CR][LF] h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0[CR][LF] h1 example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] h1 2.example.org 8080 h3 2.example.org 8080 "20190125 22:34:21" 0 0[CR][LF] h1 3.example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] h1 3.example.org 8080 h3 yesyes.com 8080 "20190125 22:34:21" 0 0[CR][LF] h2 example.org 80 h2 example.com 443 "20190124 22:36:21" 0 0[CR][LF] h2 example.net 80 h2 example.net 443 "20190124 22:37:21" 0 0[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1654 ./unit/units unit1654 log/18/1654 > log/18/stdout1654 2> log/18/stderr1654 === End of file commands.log === Start of file server.cmd Testnum 1654 === End of file server.cmd === Start of file valgrind1654 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1654 * starts no server test 1656...[Curl_x509_GTime2str unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1656 ./unit/units unit1656 - > log/21/stdout1656 2> log/21/stderr1656 units returned 1, when expecting 0 1656: exit FAILED == Contents of files in the log/21/ dir after test 1656 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind1656 ./unit/units unit1656 - > log/21/stdout1656 2> log/21/stderr1656 === End of file commands.log === Start of file server.cmd Testnum 1656 === End of file server.cmd === Start of file valgrind1656 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1656 * starts no server test 1652...[infof] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1652 ./unit/units unit1652 - > log/36/stdout1652 2> log/36/stderr1652 units returned 1, when expecting 0 1652: exit FAILED == Contents of files in the log/36/ dir after test 1652 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind1652 ./unit/units unit1652 - > log/36/stdout1652 2> log/36/stderr1652 === End of file commands.log === Start of file server.cmd Testnum 1652 === End of file server.cmd === Start of file valgrind1652 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1652 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1660 ./unit/units unit1660 log/49/hsts1660 > log/49/stdout1660 2> log/49/stderr1660 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1663 ./unit/units unit1663 - > log/60/stdout1663 2> log/60/stderr1663 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1635 ../src/curl -q --trace-ascii log/51/trace1635 --trace-config all --trace-time http://127.0.0.1:34903/1635 --retry 1 --fail-with-body > log/51/stdout1635 2> log/51/stderr1635 * starts no server test 1658...[unit test for doh_resp_decode_httpsrr] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1658 ./unit/units unit1658 - > log/55/stdout1658 2> log/55/stderr1658 1658: stderr FAILED: --- log/55/check-expected 2025-07-18 09:41:39.891548021 +0000 +++ log/55/check-generated 2025-07-18 09:41:39.890578222 +0000 @@ -1,2 +0,0 @@ -URL: -[CR][LF] -Test ended with result 0[CR][LF] == Contents of files in the log/55/ dir after test 1658 === Start of file check-expected URL: -[CR][LF] Test ended with result 0[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind1658 ./unit/units unit1658 - > log/55/stdout1658 2> log/55/stderr1658 === End of file commands.log === Start of file server.cmd Testnum 1658 === End of file server.cmd === Start of file valgrind1658 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1658 * starts no server test 1657...[Curl_x509_getASN1Element unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1657 ./unit/units unit1657 - > log/59/stdout1657 2> log/59/stderr1657 units returned 1, when expecting 0 1657: exit FAILED == Contents of files in the log/59/ dir after test 1657 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind1657 ./unit/units unit1657 - > log/59/stdout1657 2> log/59/stderr1657 === End of file commands.log === Start of file server.cmd Testnum 1657 === End of file server.cmd === Start of file valgrind1657 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1657 * starts no server test 1655...[unit test for doh_req_encode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1655 ./unit/units unit1655 - > log/62/stdout1655 2> log/62/stderr1655 units returned 1, when expecting 0 1655: exit FAILED == Contents of files in the log/62/ dir after test 1655 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1655 ./unit/units unit1655 - > log/62/stdout1655 2> log/62/stderr1655 === End of file commands.log === Start of file server.cmd Testnum 1655 === End of file server.cmd === Start of file valgrind1655 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1655 * starts no server test 1661...[bufref unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1661 ./unit/units unit1661 - > log/29/stdout1661 2> log/29/stderr1661 units returned 1, when expecting 0 1661: exit FAILED == Contents of files in the log/29/ dir after test 1661 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind1661 ./unit/units unit1661 - > log/29/stdout1661 2> log/29/stderr1661 === End of file commands.log === Start of file server.cmd Testnum 1661 === End of file server.cmd === Start of file valgrind1661 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1661 * starts no server setenv CURL_TIME = 1548369261 test 1660...[HSTS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1660 ./unit/units unit1660 log/49/hsts1660 > log/49/stdout1660 2> log/49/stderr1660 1660: stdout FAILED: --- log/49/check-expected 2025-07-18 09:41:40.004356284 +0000 +++ log/49/check-generated 2025-07-18 09:41:40.003870504 +0000 @@ -1,34 +0,0 @@ -readfrom.example [readfrom.example]: 1633063661 includeSubDomains[LF] -'old.example' is not HSTS[LF] -'readfrom.example' is not HSTS[LF] -example.com [example.com]: 1579905261[LF] -example.com [example.com]: 1569905261[LF] -example.com [example.com]: 1569905261[LF] -example.com [example.com]: 1569905261 includeSubDomains[LF] -example.org [example.org]: 1579905261[LF] -Input 8: error 43[LF] -Input 9: error 43[LF] -this.example [this.example]: 1548400797[LF] -'this.example' is not HSTS[LF] -Input 12: error 43[LF] -Input 13: error 43[LF] -Input 14: error 43[LF] -3.example.com [3.example.com]: 1569905261 includeSubDomains[LF] -3.example.com [example.com]: 1569905261 includeSubDomains[LF] -foo.example.com [example.com]: 1569905261 includeSubDomains[LF] -'foo.xample.com' is not HSTS[LF] -'forexample.net' is not HSTS[LF] -'forexample.net' is not HSTS[LF] -'example.net' is not HSTS[LF] -expire.example [expire.example]: 1548369268[LF] -Number of entries: 4[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -'expire.example' is not HSTS[LF] -'expire.example' is not HSTS[LF] -'expire.example' is not HSTS[LF] == Contents of files in the log/49/ dir after test 1660 === Start of file check-expected readfrom.example [readfrom.example]: 1633063661 includeSubDomains[LF] 'old.example' is not HSTS[LF] 'readfrom.example' is not HSTS[LF] example.com [example.com]: 1579905261[LF] example.com [example.com]: 1569905261[LF] example.com [example.com]: 1569905261[LF] example.com [example.com]: 1569905261 includeSubDomains[LF] example.org [example.org]: 1579905261[LF] Input 8: error 43[LF] Input 9: error 43[LF] this.example [this.example]: 1548400797[LF] 'this.example' is not HSTS[LF] Input 12: error 43[LF] Input 13: error 43[LF] Input 14: error 43[LF] 3.example.com [3.example.com]: 1569905261 includeSubDomains[LF] 3.example.com [example.com]: 1569905261 includeSubDomains[LF] foo.example.com [example.com]: 1569905261 includeSubDomains[LF] 'foo.xample.com' is not HSTS[LF] 'forexample.net' is not HSTS[LF] 'forexample.net' is not HSTS[LF] 'example.net' is not HSTS[LF] expire.example [expire.example]: 1548369268[LF] Number of entries: 4[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] 'expire.example' is not HSTS[LF] 'expire.example' is not HSTS[LF] 'expire.example' is not HSTS[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind1660 ./unit/units unit1660 log/49/hsts1660 > log/49/stdout1660 2> log/49/stderr1660 === End of file commands.log === Start of file hsts1660 # Your HSTS cache. https://curl.se/docs/hsts.html # This file was generated by libcurl! Edit at your own risk. .readfrom.example "20211001 04:47:41" .old.example "20161001 04:47:41" .new.example "unlimited" === End of file hsts1660 === Start of file server.cmd Testnum 1660 === End of file server.cmd === Start of file valgrind1660 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1660 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1634 ../src/curl -q --output log/54/curl1634.out --include --trace-ascii log/54/trace1634 --trace-config all --trace-time http://127.0.0.1:44921/1634 --retry 1 --fail > log/54/stdout1634 2> log/54/stderr1634 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d log/8 -I /build/curl/src/curl/tests/../include mainpage option1.md option2.md > log/8/stdout1705 2> log/8/stderr1705 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1633 ../src/curl -q --output log/63/curl1633.out --include --trace-ascii log/63/trace1633 --trace-config all --trace-time http://127.0.0.1:38797/1633 -d moo --retry 1 -L > log/63/stdout1633 2> log/63/stderr1633 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1911 ./libtest/libtests lib1911 - > log/34/stdout1911 2> log/34/stderr1911 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1900 ./libtest/libtests lib1900 http://127.0.0.1:47/not-there/1900 > log/1/stdout1900 2> log/1/stderr1900 test 1635...[--retry with a 429 response and Retry-After: and --fail-with-body] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1635 ../src/curl -q --trace-ascii log/51/trace1635 --trace-config all --trace-time http://127.0.0.1:34903/1635 --retry 1 --fail-with-body > log/51/stdout1635 2> log/51/stderr1635 1635: stdout FAILED: --- log/51/check-expected 2025-07-18 09:41:40.138292976 +0000 +++ log/51/check-generated 2025-07-18 09:41:40.137578097 +0000 @@ -1,2 +0,0 @@ -moo[LF] -hey[LF] == Contents of files in the log/51/ dir after test 1635 === Start of file check-expected moo[LF] hey[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1635 ../src/curl -q --trace-ascii log/51/trace1635 --trace-config all --trace-time http://127.0.0.1:34903/1635 --retry 1 --fail-with-body > log/51/stdout1635 2> log/51/stderr1635 === End of file commands.log === Start of file http_server.log 09:41:39.351759 ====> Client connect 09:41:39.352057 accept_connection 3 returned 4 09:41:39.352196 accept_connection 3 returned 0 09:41:39.352311 Read 93 bytes 09:41:39.352398 Process 93 bytes request 09:41:39.352569 Got request: GET /verifiedserver HTTP/1.1 09:41:39.352672 Are-we-friendly question received 09:41:39.352889 Wrote request (93 bytes) input to log/51/server.input 09:41:39.353062 Identifying ourselves as friends 09:41:39.357907 Response sent (56 bytes) and written to log/51/server.response 09:41:39.358028 special request received, no persistency 09:41:39.358097 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 1635 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind1635 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1635 * starts no server test 1663...[unit tests for interface option parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1663 ./unit/units unit1663 - > log/60/stdout1663 2> log/60/stderr1663 units returned 1, when expecting 0 1663: exit FAILED == Contents of files in the log/60/ dir after test 1663 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1663 ./unit/units unit1663 - > log/60/stdout1663 2> log/60/stderr1663 === End of file commands.log === Start of file server.cmd Testnum 1663 === End of file server.cmd === Start of file valgrind1663 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1663 prechecked ./libtest/lib1960 check test 1634...[--retry with a 429 response and Retry-After: and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1634 ../src/curl -q --output log/54/curl1634.out --include --trace-ascii log/54/trace1634 --trace-config all --trace-time http://127.0.0.1:44921/1634 --retry 1 --fail > log/54/stdout1634 2> log/54/stderr1634 1634: protocol FAILED! There was no content at all in the file log/54/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/54/ dir after test 1634 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind1634 ../src/curl -q --output log/54/curl1634.out --include --trace-ascii log/54/trace1634 --trace-config all --trace-time http://127.0.0.1:44921/1634 --retry 1 --fail > log/54/stdout1634 2> log/54/stderr1634 === End of file commands.log === Start of file http_server.log 09:41:39.389252 ====> Client connect 09:41:39.389659 accept_connection 3 returned 4 09:41:39.389827 accept_connection 3 returned 0 09:41:39.389950 Read 93 bytes 09:41:39.390032 Process 93 bytes request 09:41:39.390110 Got request: GET /verifiedserver HTTP/1.1 09:41:39.390176 Are-we-friendly question received 09:41:39.390387 Wrote request (93 bytes) input to log/54/server.input 09:41:39.390658 Identifying ourselves as friends 09:41:39.392343 Response sent (56 bytes) and written to log/54/server.response 09:41:39.392453 special request received, no persistency 09:41:39.392628 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (12CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -I /build/curl/src/curl/tests/../include -d log/7 ascii option1.md option2.md > log/7/stdout1706 2> log/7/stderr1706 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1670 ../src/curl -q --include --trace-ascii log/28/trace1670 --trace-config all --trace-time http://127.0.0.1:37545/1670 -w '%header{etag} %header{nope} %header{DATE}\n' -o log/28/1670.out > log/28/stdout1670 2> log/28/stderr1670 7.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 1634 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file valgrind1634 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1634 * starts no server test 1900...[HSTS curl_easy_duphandle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1900 ./libtest/libtests lib1900 http://127.0.0.1:47/not-there/1900 > log/1/stdout1900 2> log/1/stderr1900 libtests returned 1, when expecting 0 1900: exit FAILED == Contents of files in the log/1/ dir after test 1900 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1900 ./libtest/libtests lib1900 http://127.0.0.1:47/not-there/1900 > log/1/stdout1900 2> log/1/stderr1900 === End of file commands.log === Start of file server.cmd Testnum 1900 === End of file server.cmd === Start of file valgrind1900 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1900 * starts no server test 1705...[managen makes manpage] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d log/8 -I /build/curl/src/curl/tests/../include mainpage option1.md option2.md > log/8/stdout1705 2> log/8/stderr1705 valgrind SKIPPED sr-----e--- OK (1538 out of 1707, remaining: 00:08, took 1.097s, duration: 01:14) * starts no server test 1911...[verify that curl_easy_setopt() rejects too long string inputs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1911 ./libtest/libtests lib1911 - > log/34/stdout1911 2> log/34/stderr1911 libtests returned 1, when expecting 0 1911: exit FAILED == Contents of files in the log/34/ dir after test 1911 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind1911 ./libtest/libtests lib1911 - > log/34/stdout1911 2> log/34/stderr1911 === End of file commands.log === Start of file server.cmd Testnum 1911 === End of file server.cmd === Start of file valgrind1911 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1911 test 1633...[--retry with a 429 response and Retry-After:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1633 ../src/curl -q --output log/63/curl1633.out --include --trace-ascii log/63/trace1633 --trace-config all --trace-time http://127.0.0.1:38797/1633 -d moo --retry 1 -L > log/63/stdout1633 2> log/63/stderr1633 1633: protocol FAILED! There was no content at all in the file log/63/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/63/ dir after test 1633 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/63/valgrind1633 ../src/curl -q --output log/63/curl1633.out --include --trace-ascii log/63/trace1633 --trace-config all --trace-time http://127.0.0.1:38797/1633 -d moo --retry 1 -L > log/63/stdout1633 2> log/63/stderr1633 === End of file commands.log === Start of file http_server.log 09:41:39.364027 ====> ClieCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1704 ../src/curl -q --output log/14/curl1704.out --include --trace-ascii log/14/trace1704 --trace-config all --trace-time http://127.0.0.1:43309/1704 --http2 > log/14/stdout1704 2> log/14/stderr1704 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1918 ./libtest/libtests lib1918 - > log/10/stdout1918 2> log/10/stderr1918 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1671 ../src/curl -q --include --trace-ascii log/27/trace1671 --trace-config all --trace-time http://127.0.0.1:42323/1671 -w '%{header_json}\n' -o log/27/1671.out > log/27/stdout1671 2> log/27/stderr1671 nt connect 09:41:39.364316 accept_connection 3 returned 4 09:41:39.364596 accept_connection 3 returned 0 09:41:39.367007 Read 93 bytes 09:41:39.367167 Process 93 bytes request 09:41:39.367259 Got request: GET /verifiedserver HTTP/1.1 09:41:39.367346 Are-we-friendly question received 09:41:39.367714 Wrote request (93 bytes) input to log/63/server.input 09:41:39.367901 Identifying ourselves as friends 09:41:39.368385 Response sent (56 bytes) and written to log/63/server.response 09:41:39.368570 special request received, no persistency 09:41:39.368652 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38797... * Connected to 127.0.0.1 (127.0.0.1) port 38797 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38797 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73747 === End of file http_verify.out === Start of file server.cmd Testnum 1633 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73747 === End of file server.response === Start of file valgrind1633 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1633 * starts no server test 1706...[managen makes ASCII page] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -I /build/curl/src/curl/tests/../include -d log/7 ascii option1.md option2.md > log/7/stdout1706 2> log/7/stderr1706 valgrind SKIPPED sr-----e--- OK (1539 out of 1707, remaining: 00:08, took 1.168s, duration: 01:14) CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1915 ./libtest/libtests lib1915 http://127.0.0.1:47/not-there/1915 > log/13/stdout1915 2> log/13/stderr1915 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1912 ./libtest/libtests lib1912 - > log/33/stdout1912 2> log/33/stderr1912 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1681 ../src/curl -q --include --trace-ascii log/26/trace1681 --trace-config all --trace-time http://127.0.0.1:46481/1681 -o log/26/exist1681 --no-clobber -w '%{filename_effective}\n' > log/26/stdout1681 2> log/26/stderr1681 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1680 ../src/curl -q --include --trace-ascii log/64/trace1680 --trace-config all --trace-time http://127.0.0.1:33073/1680 -o log/64/exist1680 --clobber > log/64/stdout1680 2> log/64/stderr1680 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1682 ../src/curl -q --include --trace-ascii log/16/trace1682 --trace-config all --trace-time http://127.0.0.1:34829/1682 --output-dir log/16 -o exist1682 --no-clobber > log/16/stdout1682 2> log/16/stderr1682 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1800 ../src/curl -q --output log/3/curl1800.out --include --trace-ascii log/3/trace1800 --trace-config all --trace-time http://127.0.0.1:42107/1800 --http2 > log/3/stdout1800 2> log/3/stderr1800 test 1670...[-w individual header output] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1670 ../src/curl -q --include --trace-ascii log/28/trace1670 --trace-config all --trace-time http://127.0.0.1:37545/1670 -w '%header{etag} %header{nope} %header{DATE}\n' -o log/28/1670.out > log/28/stdout1670 2> log/28/stderr1670 1670: stdout FAILED: --- log/28/check-expected 2025-07-18 09:41:40.484577921 +0000 +++ log/28/check-generated 2025-07-18 09:41:40.481577922 +0000 @@ -1 +0,0 @@ -"21025-dc7-39462498" Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] == Contents of files in the log/28/ dir after test 1670 === Start of file check-expected "21025-dc7-39462498" Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind1670 ../src/curl -q --include --trace-ascii log/28/trace1670 --trace-config all --trace-time http://127.0.0.1:37545/1670 -w '%header{etag} %header{nope} %header{DATE}\n' -o log/28/1670.out > log/28/stdout1670 2> log/28/stderr1670 === End of file commands.log === Start of file http_server.log 09:41:39.613912 ====> Client connect 09:41:39.614201 accept_connection 3 returned 4 09:41:39.614376 accept_connection 3 returned 0 09:41:39.616594 Read 93 bytes 09:41:39.616748 Process 93 bytes request 09:41:39.616828 Got request: GET /verifiedserver HTTP/1.1 09:41:39.616906 Are-we-friendly question received 09:41:39.617203 Wrote request (93 bytes) input to log/28/server.input 09:41:39.617434 Identifying ourselves as friends 09:41:39.618260 Response sent (56 bytes) and written to log/28/server.response 09:41:39.618374 special request received, no persistency 09:41:39.618452 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 1670 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind1670 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1670 * starts no server test 1918...[curl_easy_option_by_name() and curl_easy_option_by_id()] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1918 ./libtest/libtests lib1918 - > log/10/stdout1918 2> log/10/stderr1918 libtests returned 1, when expecting 0 1918: exit FAILED == Contents of files in the log/10/ dir after test 1918 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind1918 ./libtest/libtests lib1918 - > log/10/stdout1918 2> log/10/stderr1918 === End of file commands.log === Start of file server.cmd Testnum 1918 === End of file server.cmd === Start of file valgrind1918 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1918 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1683 ../src/curl -q --include --trace-ascii log/61/trace1683 --trace-config all --trace-time http://127.0.0.1:44381/1683 -o log/61/exist1683 --no-clobber > log/61/stdout1683 2> log/61/stderr1683 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1905 ./libtest/libtests lib1905 http://127.0.0.1:42467/we/want/1905 log/23/cookies1905 > log/23/stdout1905 2> log/23/stderr1905 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1910 ./libtest/libtests lib1910 127.0.0.1:41267/1910 > log/43/stdout1910 2> log/43/stderr1910 * starts no server test 1915...[HSTS read/write callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1915 ./libtest/libtests lib1915 http://127.0.0.1:47/not-there/1915 > log/13/stdout1915 2> log/13/stderr1915 1915: stdout FAILED: --- log/13/check-expected 2025-07-18 09:41:40.651577836 +0000 +++ log/13/check-generated 2025-07-18 09:41:40.650577837 +0000 @@ -1,6 +0,0 @@ -[0/4] 1.example.com 25250320 01:02:03[LF] -[1/4] 2.example.com 25250320 03:02:01[LF] -[2/4] 3.example.com 25250319 01:02:03[LF] -[3/4] 4.example.com unlimited[LF] -First request returned 7[LF] -Second request returned 42[LF] == Contents of files in the log/13/ dir after test 1915 === Start of file check-expected [0/4] 1.example.com 25250320 01:02:03[LF] [1/4] 2.example.com 25250320 03:02:01[LF] [2/4] 3.example.com 25250319 01:02:03[LF] [3/4] 4.example.com unlimited[LF] First request returned 7[LF] Second request returned 42[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind1915 ./libtest/libtests lib1915 http://127.0.0.1:47/not-there/1915 > log/13/stdout1915 2> log/13/stderr1915 === End of file commands.log === Start of file server.cmd Testnum 1915 === End of file server.cmd === Start of file valgrind1915 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1915 test 1704...[HTTP/1 doing HTTP/2 Upgrade: getting an HTTP/2 101 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1704 ../src/curl -q --output log/14/curl1704.out --include --trace-ascii log/14/trace1704 --trace-config all --trace-time http://127.0.0.1:43309/1704 --http2 > log/14/stdout1704 2> log/14/stderr1704 1704: protocol FAILED! There was no content at all in the file log/14/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/14/ dir after test 1704 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind1704 ../src/curl -q --output log/14/curl1704.out --include --trace-ascii log/14/trace1704 --trace-config all --trace-time http://127.0.0.1:43309/1704 --http2 > log/14/stdout1704 2> log/14/stderr1704 === End of file commands.log === Start of file http_server.log 09:41:39.747074 ====> Client connect 09:41:39.747374 accept_connection 3 returned 4 09:41:39.747679 accept_connection 3 returned 0 09:41:39.747836 Read 93 bytes 09:41:39.747929 Process 93 bytes request 09:41:39.748047 Got request: GET /verifiedserver HTTP/1.1 09:41:39.748136 Are-we-friendly question received 09:41:39.748457 Wrote request (93 bytes) input to log/14/server.input 09:41:39.748736 Identifying ourselves as friends 09:41:39.749583 Response sent (56 bytes) and written to log/14/server.response 09:41:39.749750 special request received, no persistency 09:41:39.749849 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43309... * Connected to 127.0.0.1 (127.0.0.1) port 43309 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43309 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73795 === End of file http_verify.out === Start of file server.cmd Testnum 1704 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73795 === End of file server.response === Start of file valgrind1704 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1704 CMD (0): /usr/bin/perl -e 'for my $i ((1..100)) { my $filename = "log/61/exist1683.$i"; open(FH, "<", $filename) or die $!; ( eq "to stay the same" and eq "") or die "incorrect $filename" ; close(FH) }' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1901 ./libtest/libtests lib1901 http://127.0.0.1:32895/boom > log/17/stdout1901 2> log/17/stderr1901 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1903 ./libtest/libtests lib1903 http://127.0.0.1:45607/we/want/1903 log/32/cookies1903 log/32/cookiesout1903 > log/32/stdout1903 2> log/32/stderr1903 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1907 ./libtest/libtests lib1907 127.0.0.1:37551/hello/../1907 > log/37/stdout1907 2> log/37/stderr1907 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1906 ./libtest/libtests lib1906 http://127.0.0.1:35093/1906 > log/41/stdout1906 2> log/41/stderr1906 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1940 ./libtest/libtests lib1940 http://127.0.0.1:39659/1940 > log/2/stdout1940 2> log/2/stderr1940 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1919 ./libtest/libtests lib1919 http://127.0.0.1:33413/1919 > log/5/stdout1919 2> log/5/stderr1919 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1664 ./unit/units unit1664 - > log/38/stdout1664 2> log/38/stderr1664 test 1671...[-w header JSON output] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1671 ../src/curl -q --include --trace-ascii log/27/trace1671 --trace-config all --trace-time http://127.0.0.1:42323/1671 -w '%{header_json}\n' -o log/27/1671.out > log/27/stdout1671 2> log/27/stderr1671 1671: stdout FAILED: --- log/27/check-expected 2025-07-18 09:41:40.759391482 +0000 +++ log/27/check-generated 2025-07-18 09:41:40.758577782 +0000 @@ -1,11 +0,0 @@ -{"date":["Tue, 09 Nov 2010 14:49:00 GMT"],[CR][LF] -"server":["test-server/fake"],[CR][LF] -"last-modified":["Tue, 13 Jun 2000 12:10:00 GMT"],[CR][LF] -"etag":["\"21025-dc7-39462498\""],[CR][LF] -"accept-ranges":["bytes"],[CR][LF] -"set-cookie":["firstcookie=want1; path=/","2cookie=want2; path=/","cookie3=want3; path=/"],[CR][LF] -"funny-head":["yesyes"],[CR][LF] -"content-type":["text/html"],[CR][LF] -"content-length":["6"],[CR][LF] -"connection":["close"][CR][LF] -}[CR][LF] == Contents of files in the log/27/ dir after test 1671 === Start of file check-expected {"date":["Tue, 09 Nov 2010 14:49:00 GMT"],[CR][LF] "server":["test-server/fake"],[CR][LF] "last-modified":["Tue, 13 Jun 2000 12:10:00 GMT"],[CR][LF] "etag":["\"21025-dc7-39462498\""],[CR][LF] "accept-ranges":["bytes"],[CR][LF] "set-cookie":["firstcookie=want1; path=/","2cookie=want2; path=/","cookie3=want3; path=/"],[CR][LF] "funny-head":["yesyes"],[CR][LF] "content-type":["text/html"],[CR][LF] "content-length":["6"],[CR][LF] "connection":["close"][CR][LF] }[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind1671 ../src/curl -q --include --trace-ascii log/27/trace1671 --trace-config all --trace-time http://127.0.0.1:42323/1671 -w '%{header_json}\n' -o log/27/1671.out > log/27/stdout1671 2> log/27/stderr1671 === End of file commands.log === Start of file http_server.log 09:41:39.657111 ====> Client connect 09:41:39.657627 accept_connection 3 returned 4 09:41:39.657850 accept_connection 3 returned 0 09:41:39.658006 Read 93 bytes 09:41:39.658121 Process 93 bytes request 09:41:39.658226 Got request: GET /verifiedserver HTTP/1.1 09:41:39.658327 Are-we-friendly question received 09:41:39.662729 Wrote request (93 bytes) input to log/27/server.input 09:41:39.662970 Identifying ourselves as friends 09:41:39.663882 Response sent (56 bytes) and written to log/27/server.response 09:41:39.664008 special request received, no persistency 09:41:39.664095 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 1671 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind1671 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1671 * starts no server test 1912...[Cross validate that gcc-typecheck macros match the option types.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1912 ./libtest/libtests lib1912 - > log/33/stdout1912 2> log/33/stderr1912 libtests returned 1, when expecting 0 1912: exit FAILED == Contents of files in the log/33/ dir after test 1912 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind1912 ./libtest/libtests lib1912 - > log/33/stdout1912 2> log/33/stderr1912 === End of file commands.log === Start of file server.cmd Testnum 1912 === End of file server.cmd === Start of file valgrind1912 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1912 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1942 ./libtest/libtests lib1940 http://127.0.0.1:34639/1942 > log/53/stdout1942 2> log/53/stderr1942 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1909 ../src/curl -q --trace-ascii log/48/trace1909 --trace-config all --trace-time --retry 1 --retry-all-errors -o log/48/outfile1909 http://127.0.0.1:46339/1909 > log/48/stdout1909 2> log/48/stderr1909 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1914 ./libtest/libtests lib1913 ftp://127.0.0.1:38699/not-there/1913 1 > log/15/stdout1914 2> log/15/stderr1914 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1913 ./libtest/libtests lib1913 ftp://127.0.0.1:41867/not-there/1913 > log/22/stdout1913 2> log/22/stderr1913 test 1940...[curl_easy_header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1940 ./libtest/libtests lib1940 http://127.0.0.1:39659/1940 > log/2/stdout1940 2> log/2/stderr1940 1940: stdout FAILED: --- log/2/check-expected 2025-07-18 09:41:40.909373886 +0000 +++ log/2/check-generated 2025-07-18 09:41:40.908659186 +0000 @@ -1,11 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19400002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] - Fold == is folding a line[LF] - Blank == [LF] - Blank2 == [LF] == Contents of files in the log/2/ dir after test 1940 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19400002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] Fold == is folding a line[LF] Blank == [LF] Blank2 == [LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1940 ./libtest/libtests lib1940 http://127.0.0.1:39659/1940 > log/2/stdout1940 2> log/2/stderr1940 === End of file commands.log === Start of file http_server.log 09:41:40.074861 ====> Client connect 09:41:40.075151 accept_connection 3 returned 4 09:41:40.075305 accept_connection 3 returned 0 09:41:40.075957 Read 93 bytes 09:41:40.076126 Process 93 bytes request 09:41:40.076230 Got request: GET /verifiedserver HTTP/1.1 09:41:40.076318 Are-we-friendly question received 09:41:40.076782 Wrote request (93 bytes) input to log/2/server.input 09:41:40.077026 Identifying ourselves as friends 09:41:40.077639 Response sent (56 bytes) and written to log/2/server.response 09:41:40.077748 special request received, no persistency 09:41:40.077815 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 1940 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind1940 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1940 test 1800...[HTTP/2 upgrade refused] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1800 ../src/curl -q --output log/3/curl1800.out --include --trace-ascii log/3/trace1800 --trace-config all --trace-time http://127.0.0.1:42107/1800 --http2 > log/3/stdout1800 2> log/3/stderr1800 1800: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1800 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1800 ../src/curl -q --output log/3/curl1800.out --include --trace-ascii log/3/trace1800 --trace-config all --trace-time http://127.0.0.1:42107/1800 --http2 > log/3/stdout1800 2> log/3/stderr1800 === End of file commands.log === Start of file http_server.log 09:41:39.843091 ====> Client connect 09:41:39.843682 accept_connection 3 returned 4 09:41:39.843864 accept_connection 3 returned 0 09:41:39.844057 Read 93 bytes 09:41:39.844188 Process 93 bytes request 09:41:39.844302 Got request: GET /verifiedserver HTTP/1.1 09:41:39.844390 Are-we-friendly question received 09:41:39.844812 Wrote request (93 bytes) input to log/3/server.input 09:41:39.845135 Identifying ourselves as friends 09:41:39.846007 Response sent (56 bytes) and written to log/3/server.response 09:41:39.846141 special request received, no persistency 09:41:39.846204 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42107... * Connected to 127.0.0.1 (127.0.0.1) port 42107 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42107 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73802 === End of file http_verify.out === Start of file server.cmd Testnum 1800 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73802 === End of file server.response === Start of file valgrind1800 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1979 ./unit/units unit1979 - > log/60/stdout1979 2> log/60/stderr1979 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1946 ./libtest/libtests lib1940 http://127.0.0.1:35945/1946 > log/57/stdout1946 2> log/57/stderr1946 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1948 ./libtest/libtests lib1948 http://127.0.0.1:40089/1948 > log/52/stdout1948 2> log/52/stderr1948 e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1800 test 1919...[set CURLOPT_XOAUTH2_BEARER and do connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1919 ./libtest/libtests lib1919 http://127.0.0.1:33413/1919 > log/5/stdout1919 2> log/5/stderr1919 1919: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1919 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1919 ./libtest/libtests lib1919 http://127.0.0.1:33413/1919 > log/5/stdout1919 2> log/5/stderr1919 === End of file commands.log === Start of file http_server.log 09:41:40.067821 ====> Client connect 09:41:40.068103 accept_connection 3 returned 4 09:41:40.068251 accept_connection 3 returned 0 09:41:40.070705 Read 93 bytes 09:41:40.070849 Process 93 bytes request 09:41:40.070934 Got request: GET /verifiedserver HTTP/1.1 09:41:40.071014 Are-we-friendly question received 09:41:40.071410 Wrote request (93 bytes) input to log/5/server.input 09:41:40.071836 Identifying ourselves as friends 09:41:40.072435 Response sent (56 bytes) and written to log/5/server.response 09:41:40.075705 special request received, no persistency 09:41:40.075784 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33413... * Connected to 127.0.0.1 (127.0.0.1) port 33413 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33413 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73798 === End of file http_verify.out === Start of file server.cmd Testnum 1919 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73798 === End of file server.response === Start of file valgrind1919 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1919 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1944 ./libtest/libtests lib1940 http://127.0.0.1:46523/1944 > log/46/stdout1944 2> log/46/stderr1944 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1947 ./libtest/libtests lib1947 http://127.0.0.1:43265/1947 http://127.0.0.1:43265/19470003 > log/56/stdout1947 2> log/56/stderr1947 cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1943 ./libtest/libtests lib1940 http://127.0.0.1:39259/1943 > log/24/stdout1943 2> log/24/stderr1943 test 1682...[HTTP GET without clobber and --output-dir] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1682 ../src/curl -q --include --trace-ascii log/16/trace1682 --trace-config all --trace-time http://127.0.0.1:34829/1682 --output-dir log/16 -o exist1682 --no-clobber > log/16/stdout1682 2> log/16/stderr1682 1682: output (log/16/exist1682.1) FAILED: --- log/16/check-expected 2025-07-18 09:41:41.023577648 +0000 +++ log/16/check-generated 2025-07-18 09:41:41.022577648 +0000 @@ -1,6 +0,0 @@ -HTTP/1.0 200 OK[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -Content-Length: 4[LF] -[LF] -foo[LF] == Contents of files in the log/16/ dir after test 1682 === Start of file check-expected HTTP/1.0 200 OK[LF] Connection: close[LF] Content-Type: text/plain[LF] Content-Length: 4[LF] [LF] foo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind1682 ../src/curl -q --include --trace-ascii log/16/trace1682 --trace-config all --trace-time http://127.0.0.1:34829/1682 --output-dir log/16 -o exist1682 --no-clobber > log/16/stdout1682 2> log/16/stderr1682 === End of file commands.log === Start of file exist1682 to stay the same === End of file exist1682 === Start of file http_server.log 09:41:39.741829 ====> Client connect 09:41:39.742080 accept_connection 3 returned 4 09:41:39.742214 accept_connection 3 returned 0 09:41:39.742982 Read 93 bytes 09:41:39.743118 Process 93 bytes request 09:41:39.743191 Got request: GET /verifiedserver HTTP/1.1 09:41:39.743246 Are-we-friendly question received 09:41:39.743433 Wrote request (93 bytes) input to log/16/server.input 09:41:39.743715 Identifying ourselves as friends 09:41:39.744361 Response sent (56 bytes) and written to log/16/server.response 09:41:39.744455 special request received, no persistency 09:41:39.744589 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 1682 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind1682 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1682 test 1901...[Chunked HTTP POST from callback with CURLOPT_POSTFIELDSIZE set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1901 ./libtest/libtests lib1901 http://127.0.0.1:32895/boom > log/17/stdout1901 2> log/17/stderr1901 1901: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 1901 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind1901 ./libtest/libtests lib1901 http://127.0.0.1:32895/boom > log/17/stdout1901 2> log/17/stderr1901 === End of file commands.log === Start of file http_server.log 09:41:38.845233 ====> Client connect 09:41:38.845761 accept_connection 3 returned 4 09:41:38.846014 accept_connection 3 returned 0 09:41:38.846159 Read 93 bytes 09:41:38.846240 Process 93 bytes request 09:41:38.846352 Got request: GET /verifiedserver HTTP/1.1 09:41:38.846448 Are-we-friendly question received 09:41:38.850007 Wrote request (93 bytes) input to log/17/server.input 09:41:38.850314 Identifying ourselves as friends 09:41:38.851420 Response sent (57 bytes) and written to log/17/server.response 09:41:38.851689 special request received, no persistency 09:41:38.851777 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:32895... * Connected to 127.0.0.1 (127.0.0.1) port 32895 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:32895 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 150350 === End of file http_verify.out === Start of file server.cmd Testnum 1901 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 150350 === End of file server.response === Start of file valgrind1901 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1901 test 1905...[CURLOPT_COOKIELIST set to "FLUSH" of a shared cookie object] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1905 ./libtest/libtests lib1905 http://127.0.0.1:42467/we/want/1905 log/23/cookies1905 > log/23/stdout1905 2> log/23/stderr1905 1905: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 1905 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind1905 ./libtest/libtests lib1905 http://127.0.0.1:42467/we/want/1905 log/23/cookies1905 > log/23/stdout1905 2> log/23/stderr1905 === End of file commands.log === Start of file http_server.log 09:41:39.886951 ====> Client connect 09:41:39.887265 accept_connection 3 returned 4 09:41:39.887428 accept_connection 3 returned 0 09:41:39.887695 Read 93 bytes 09:41:39.887805 Process 93 bytes request 09:41:39.887900 Got request: GET /verifiedserver HTTP/1.1 09:41:39.887981 Are-we-friendly question received 09:41:39.888197 Wrote request (93 bytes) input to log/23/server.input 09:41:39.888370 Identifying ourselves as friends 09:41:39.894216 Response sent (56 bytes) and written to log/23/server.response 09:41:39.894341 special request received, no persistency 09:41:39.894417 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 1905 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind1905 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1905 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1980 ./unit/units unit1980 - > log/51/stdout1980 2> log/51/stderr1980 test 1681...[HTTP GET without clobber] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1681 ../src/curl -q --include --trace-ascii log/26/trace1681 --trace-config all --trace-time http://127.0.0.1:46481/1681 -o log/26/exist1681 --no-clobber -w '%{filename_effective}\n' > log/26/stdout1681 2> log/26/stderr1681 1681: stdout FAILED: --- log/26/check-expected 2025-07-18 09:41:41.106577606 +0000 +++ log/26/check-generated 2025-07-18 09:41:41.105577606 +0000 @@ -1 +0,0 @@ -log/26/exist1681.1[CR][LF] == Contents of files in the log/26/ dir after test 1681 === Start of file check-expected log/26/exist1681.1[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind1681 ../src/curl -q --include --trace-ascii log/26/trace1681 --trace-config all --trace-time http://127.0.0.1:46481/1681 -o log/26/exist1681 --no-clobber -w '%{filename_effective}\n' > log/26/stdout1681 2> log/26/stderr1681 === End of file commands.log === Start of file exist1681 to stay the same === End of file exist1681 === Start of file http_server.log 09:41:39.680342 ====> Client connect 09:41:39.680782 accept_connection 3 returned 4 09:41:39.680946 accept_connection 3 returned 0 09:41:39.681080 Read 93 bytes 09:41:39.681171 Process 93 bytes request 09:41:39.681259 Got request: GET /verifiedserver HTTP/1.1 09:41:39.681338 Are-we-friendly question received 09:41:39.681648 Wrote request (93 bytes) input to log/26/server.input 09:41:39.681828 Identifying ourselves as friends 09:41:39.682546 Response sent (56 bytes) and written to log/26/server.response 09:41:39.682662 special request received, no persistency 09:41:39.682729 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 1681 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind1681 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1681 test 1903...[CURLOPT_COOKIEFILE then reset then set again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1903 ./libtest/libtests lib1903 http://127.0.0.1:45607/we/want/1903 log/32/cookies1903 log/32/cookiesout1903 > log/32/stdout1903 2> log/32/stderr1903 1903: output (log/32/cookiesout1903) FAILED: --- log/32/check-expected 2025-07-18 09:41:41.157725360 +0000 +++ log/32/check-generated 2025-07-18 09:41:41.156577581 +0000 @@ -1,6 +0,0 @@ -# Netscape HTTP Cookie File[CR][LF] -# https://curl.se/docs/http-cookies.html[CR][LF] -# This file was generated by libcurl! Edit at your own risk.[CR][LF] -[CR][LF] -127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09foobar%09name[CR][LF] -127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09secondcookie%09present[CR][LF] == Contents of files in the log/32/ dir after test 1903 === Start of file check-expected # Netscape HTTP Cookie File[CR][LF] # https://curl.se/docs/http-cookies.html[CR][LF] # This file was generated by libcurl! Edit at your own risk.[CR][LF] [CR][LF] 127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09foobar%09name[CR][LF] 127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09secondcookie%09present[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind1903 ./libtest/libtests lib1903 http://127.0.0.1:45607/we/want/1903 log/32/cookies1903 log/32/cookiesout1903 > log/32/stdout1903 2> log/32/stderr1903 === End of file commands.log === Start of file cookies1903 # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. 127.0.0.1 FALSE /we/want/ FALSE 0 secondcookie present 127.0.0.1 FALSE /we/want/ FALSE 0 foobar name === End of file cookies1903 === Start of file http_server.log 09:41:39.859032 ====> Client connect 09:41:39.859370 accept_connection 3 returned 4 09:41:39.859660 accept_connection 3 returned 0 09:41:39.859812 Read 93 bytes 09:41:39.859901 Process 93 bytes request 09:41:39.859990 Got request: GET /verifiedserver HTTP/1.1 09:41:39.860074 Are-we-friendly question received 09:41:39.860350 Wrote request (93 bytes) input to log/32/server.input 09:41:39.860611 Identifying ourselves as friends 09:41:39.861372 Response sent (56 bytes) and written to log/32/server.response 09:41:39.861549 special request received, no persistency 09:41:39.861622 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 1903 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind1903 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1903 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1916 ./libtest/libtests lib1916 "mqtt://127.0.0.1:34607/%20" > log/12/stdout1916 2> log/12/stderr1916 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1964 ./libtest/libtests lib1964 http://xxx:yyy@127.0.0.1:9000/1964/testapi/test 127.0.0.1:9000:127.0.0.1:41285 > log/18/stdout1964 2> log/18/stderr1964 test 1907...[CURLINFO_EFFECTIVE_URL with non-scheme URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1907 ./libtest/libtests lib1907 127.0.0.1:37551/hello/../1907 > log/37/stdout1907 2> log/37/stderr1907 1907: stdout FAILED: --- log/37/check-expected 2025-07-18 09:41:41.217301410 +0000 +++ log/37/check-generated 2025-07-18 09:41:41.215577551 +0000 @@ -1 +0,0 @@ -Effective URL: http://127.0.0.1:37551/1907[LF] == Contents of files in the log/37/ dir after test 1907 === Start of file check-expected Effective URL: http://127.0.0.1:37551/1907[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind1907 ./libtest/libtests lib1907 127.0.0.1:37551/hello/../1907 > log/37/stdout1907 2> log/37/stderr1907 === End of file commands.log === Start of file http_server.log 09:41:40.018879 ====> Client connect 09:41:40.019175 accept_connection 3 returned 4 09:41:40.019332 accept_connection 3 returned 0 09:41:40.020024 Read 93 bytes 09:41:40.020155 Process 93 bytes request 09:41:40.020244 Got request: GET /verifiedserver HTTP/1.1 09:41:40.020330 Are-we-friendly question received 09:41:40.020698 Wrote request (93 bytes) input to log/37/server.input 09:41:40.020894 Identifying ourselves as friends 09:41:40.023928 Response sent (56 bytes) and written to log/37/server.response 09:41:40.024049 special request received, no persistency 09:41:40.024125 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 1907 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind1907 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1907 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1977 ./libtest/libtests lib1977 http://127.0.0.1:38899/1977 > log/62/stdout1977 2> log/62/stderr1977 * starts no server test 1664...[unit tests for strparse.c string parsing functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1664 ./unit/units unit1664 - > log/38/stdout1664 2> log/38/stderr1664 1664: stdout FAILED: --- log/38/check-expected 2025-07-18 09:41:41.275577520 +0000 +++ log/38/check-generated 2025-07-18 09:41:41.274577521 +0000 @@ -1,212 +0,0 @@ -curlx_str_word[LF] -0: ("word") 0, "word" [4], line 4[LF] -1: ("word ") 0, "word" [4], line 4[LF] -2: (" word ") 2, "" [0], line 0[LF] -3: ("wo rd") 0, "wo" [2], line 2[LF] -4: ("word(") 0, "word(" [5], line 5[LF] -5: ("wor(d") 0, "wor(d" [5], line 5[LF] -6: ("perfect") 0, "perfect" [7], line 7[LF] -7: ("") 2, "" [0], line 0[LF] -8: ("longerth") 1, "" [0], line 0[LF] -curlx_str_until[LF] -0: ("word") 0, "wor" [3], line 3[LF] -1: ("word ") 0, "wor" [3], line 3[LF] -2: (" word ") 0, " wor" [4], line 4[LF] -3: ("wo rd") 0, "wo r" [4], line 4[LF] -4: ("word(") 0, "wor" [3], line 3[LF] -5: ("wor(d") 0, "wor(" [4], line 4[LF] -6: ("perfect") 0, "perfect" [7], line 7[LF] -7: ("") 2, "" [0], line 0[LF] -8: ("longerth") 1, "" [0], line 0[LF] -curlx_str_quotedword[LF] -0: (""word"") 0, "word" [4], line 6[LF] -1: (""word") 4, "" [0], line 0[LF] -2: ("word"") 3, "" [0], line 0[LF] -3: (""word""") 0, "word" [4], line 6[LF] -4: (""word" ") 0, "word" [4], line 6[LF] -5: (" "word"") 3, "" [0], line 0[LF] -6: (""perfect"") 0, "perfect" [7], line 9[LF] -7: (""p r e t"") 0, "p r e t" [7], line 9[LF] -8: (""perfec\"") 0, "perfec\" [7], line 9[LF] -9: ("""") 0, "" [0], line 2[LF] -10: ("") 3, "" [0], line 0[LF] -11: (""longerth"") 1, "" [0], line 0[LF] -curlx_str_single[LF] -0: ("a") 0, line 1[LF] -1: ("aa") 0, line 1[LF] -2: ("A") 5, line 0[LF] -3: ("b") 5, line 0[LF] -4: ("\") 5, line 0[LF] -5: (" ") 5, line 0[LF] -6: ("") 5, line 0[LF] -curlx_str_singlespace[LF] -0: ("a") 5, line 0[LF] -1: ("aa") 5, line 0[LF] -2: ("A") 5, line 0[LF] -3: ("b") 5, line 0[LF] -4: ("\") 5, line 0[LF] -5: (" ") 0, line 1[LF] -6: ("%09") 5, line 0[LF] -7: ("[LF] -") 5, line 0[LF] -8: ("") 5, line 0[LF] -curlx_str_single[LF] -0: ("a") 0, line 1[LF] -1: ("aa") 0, line 1[LF] -2: ("A") 5, line 0[LF] -3: ("b") 5, line 0[LF] -4: ("\") 5, line 0[LF] -5: (" ") 5, line 0[LF] -6: ("") 5, line 0[LF] -curlx_str_number[LF] -0: ("1") 0, [1] line 1[LF] -1: ("10000") 7, [0] line 0[LF] -2: ("1234") 0, [1234] line 4[LF] -3: ("1235") 0, [1235] line 4[LF] -4: ("1236") 7, [0] line 0[LF] -5: ("01234") 0, [1234] line 5[LF] -6: ("00000000000000000000000000001234") 0, [1234] line 32[LF] -7: ("0123 345") 0, [123] line 4[LF] -8: ("0123O345") 0, [123] line 4[LF] -9: ("-12") 8, [0] line 0[LF] -10: (" 123") 8, [0] line 0[LF] -11: ("") 8, [0] line 0[LF] -curlx_str_number varying max[LF] -0: ("00") max 8 == 0, [0][LF] -1: ("1") max 8 == 0, [1][LF] -2: ("1") max 1 == 0, [1][LF] -3: ("2") max 1 == 7, [0][LF] -4: ("2") max 2 == 0, [2][LF] -5: ("5") max 6 == 0, [5][LF] -6: ("000000000000000000000006") max 6 == 0, [6][LF] -7: ("7") max 6 == 7, [0][LF] -8: ("8") max 6 == 7, [0][LF] -9: ("9") max 8 == 7, [0][LF] -10: ("10") max 10 == 0, [10][LF] -11: ("11") max 10 == 7, [0][LF] -12: ("12") max 10 == 7, [0][LF] -curlx_str_hex varying max[LF] -0: ("00") max 8 == 0, [0][LF] -1: ("1") max 8 == 0, [1][LF] -2: ("1") max 1 == 0, [1][LF] -3: ("2") max 1 == 7, [0][LF] -4: ("2") max 2 == 0, [2][LF] -5: ("5") max 6 == 0, [5][LF] -6: ("000000000000000000000006") max 6 == 0, [6][LF] -7: ("7") max 6 == 7, [0][LF] -8: ("8") max 6 == 7, [0][LF] -9: ("9") max 8 == 7, [0][LF] -10: ("a") max 14 == 0, [10][LF] -11: ("b") max 14 == 0, [11][LF] -12: ("c") max 14 == 0, [12][LF] -13: ("d") max 14 == 0, [13][LF] -14: ("e") max 14 == 0, [14][LF] -15: ("f") max 14 == 7, [0][LF] -16: ("f") max 15 == 0, [15][LF] -17: ("10") max 16 == 0, [16][LF] -18: ("11") max 16 == 7, [0][LF] -19: ("12") max 16 == 7, [0][LF] -curlx_str_octal varying max[LF] -0: ("00") max 4 == 0, [0][LF] -1: ("1") max 4 == 0, [1][LF] -2: ("1") max 4 == 0, [1][LF] -3: ("2") max 4 == 0, [2][LF] -4: ("3") max 4 == 0, [3][LF] -5: ("4") max 4 == 0, [4][LF] -6: ("5") max 4 == 7, [0][LF] -7: ("000000000000000000000006") max 6 == 0, [6][LF] -8: ("7") max 7 == 0, [7][LF] -9: ("10") max 8 == 0, [8][LF] -10: ("11") max 8 == 7, [0][LF] -11: ("11") max 9 == 0, [9][LF] -12: ("12") max 9 == 7, [0][LF] -13: ("13") max 9 == 7, [0][LF] -14: ("8") max 10 == 8, [0][LF] -curlx_str_number / max[LF] -0: ("9223372036854775807") 0, [9223372036854775807] line 19[LF] -1: ("9223372036854775808") 7, [0] line 0[LF] -2: ("18446744073709551615") 7, [0] line 0[LF] -3: ("18446744073709551616") 7, [0] line 0[LF] -4: ("18446744073709551617") 7, [0] line 0[LF] -5: ("0123456799a") 0, [123456799] line 10[LF] -6: ("0123456789") 0, [123456789] line 10[LF] -7: ("123498760b") 0, [123498760] line 9[LF] -8: ("1234987607611298232") 0, [1234987607611298232] line 19[LF] -9: ("1111111111111111111") 0, [1111111111111111111] line 19[LF] -10: ("2222222222222222222") 0, [2222222222222222222] line 19[LF] -11: ("00000000000000000000000000000009223372036854775807") 0, [9223372036854775807] line 50[LF] -12: ("3333333333333333333") 0, [3333333333333333333] line 19[LF] -13: ("4444444444444444444") 0, [4444444444444444444] line 19[LF] -14: ("5555555555555555555") 0, [5555555555555555555] line 19[LF] -15: ("6666666666666666666") 0, [6666666666666666666] line 19[LF] -16: ("7777777777777777777") 0, [7777777777777777777] line 19[LF] -17: ("8888888888888888888") 0, [8888888888888888888] line 19[LF] -18: ("999999999999999999") 0, [999999999999999999] line 18[LF] -curlx_str_newline[LF] -0: (%61) 6, line 0[LF] -1: (%61) 6, line 0[LF] -2: (%41) 6, line 0[LF] -3: (%62) 6, line 0[LF] -4: (%5c) 6, line 0[LF] -5: (%20) 6, line 0[LF] -6: (%0a) 0, line 1[LF] -7: (%0d) 0, line 1[LF] -8: (%0d) 0, line 1[LF] -9: (%0c) 6, line 0[LF] -10: (%00) 6, line 0[LF] -curlx_str_hex[LF] -0: ("1") 0, [1] line 1[LF] -1: ("1000") 0, [4096] line 4[LF] -2: ("1234") 0, [4660] line 4[LF] -3: ("1235") 0, [4661] line 4[LF] -4: ("1236") 7, [0] line 0[LF] -5: ("01234") 0, [4660] line 5[LF] -6: ("00000000000000000000000000001234") 0, [4660] line 32[LF] -7: ("0123 345") 0, [291] line 4[LF] -8: ("0123O345") 0, [291] line 4[LF] -9: ("-12") 8, [0] line 0[LF] -10: (" 123") 8, [0] line 0[LF] -11: ("") 8, [0] line 0[LF] -curlx_str_octal[LF] -0: ("1") 0, [1] line 1[LF] -1: ("1000") 0, [512] line 4[LF] -2: ("1234") 0, [668] line 4[LF] -3: ("1235") 0, [669] line 4[LF] -4: ("1236") 7, [0] line 0[LF] -5: ("01234") 0, [668] line 5[LF] -6: ("00000000000000000000000000001234") 0, [668] line 32[LF] -7: ("0123 345") 0, [83] line 4[LF] -8: ("0123O345") 0, [83] line 4[LF] -9: ("-12") 8, [0] line 0[LF] -10: (" 123") 8, [0] line 0[LF] -11: ("") 8, [0] line 0[LF] -curlx_str_octal / max[LF] -0: ("777777777777777777777") 0, [9223372036854775807] line 21[LF] -1: ("1000000000000000000000") 7, [0] line 0[LF] -2: ("111111111111111111111") 0, [1317624576693539401] line 21[LF] -3: ("222222222222222222222") 0, [2635249153387078802] line 21[LF] -4: ("333333333333333333333") 0, [3952873730080618203] line 21[LF] -5: ("444444444444444444444") 0, [5270498306774157604] line 21[LF] -6: ("555555555555555555555") 0, [6588122883467697005] line 21[LF] -7: ("666666666666666666666") 0, [7905747460161236406] line 21[LF] -curlx_str_hex / max[LF] -0: ("7FFFFFFFFFFFFFFF") 0, [9223372036854775807] line 16[LF] -1: ("8000000000000000") 7, [0] line 0[LF] -2: ("1111111111111111") 0, [1229782938247303441] line 16[LF] -3: ("2222222222222222") 0, [2459565876494606882] line 16[LF] -4: ("3333333333333333") 0, [3689348814741910323] line 16[LF] -5: ("4444444444444444") 0, [4919131752989213764] line 16[LF] -6: ("5555555555555555") 0, [6148914691236517205] line 16[LF] -7: ("6666666666666666") 0, [7378697629483820646] line 16[LF] -8: ("7777777777777777") 0, [8608480567731124087] line 16[LF] -9: ("888888888888888") 0, [614891469123651720] line 15[LF] -10: ("999999999999999") 0, [691752902764108185] line 15[LF] -11: ("aaaaaaaaAAAAAAA") 0, [768614336404564650] line 15[LF] -12: ("bbbbbbbbBBBBBBB") 0, [845475770045021115] line 15[LF] -13: ("BBBBBBBBbbbbbbb") 0, [845475770045021115] line 15[LF] -14: ("ccccccccCCCCCCC") 0, [922337203685477580] line 15[LF] -15: ("ddddddddDDDDDDD") 0, [999198637325934045] line 15[LF] -16: ("eeeeeeeeEEEEEEE") 0, [1076060070966390510] line 15[LF] -17: ("ffffffffFFFFFFF") 0, [1152921504606846975] line 15[LF] -18: ("abcdef") 0, [11259375] line 6[LF] -19: ("ABCDEF") 0, [11259375] line 6[LF] == Contents of files in the log/38/ dir after test 1664 === Start of file check-expected curlx_str_word[LF] 0: ("word") 0, "word" [4], line 4[LF] 1: ("word ") 0, "word" [4], line 4[LF] 2: (" word ") 2, "" [0], line 0[LF] 3: ("wo rd") 0, "wo" [2], line 2[LF] 4: ("word(") 0, "word(" [5], line 5[LF] 5: ("wor(d") 0, "wor(d" [5], line 5[LF] 6: ("perfect") 0, "perfect" [7], line 7[LF] 7: ("") 2, "" [0], line 0[LF] 8: ("longerth") 1, "" [0], line 0[LF] curlx_str_until[LF] 0: ("word") 0, "wor" [3], line 3[LF] 1: ("word ") 0, "wor" [3], line 3[LF] 2: (" word ") 0, " wor" [4], line 4[LF] 3: ("wo rd") 0, "wo r" [4], line 4[LF] 4: ("word(") 0, "wor" [3], line 3[LF] 5: ("wor(d") 0, "wor(" [4], line 4[LF] 6: ("perfect") 0, "perfect" [7], line 7[LF] 7: ("") 2, "" [0], line 0[LF] 8: ("longerth") 1, "" [0], line 0[LF] curlx_str_quotedword[LF] 0: (""word"") 0, "word" [4], line 6[LF] 1: (""word") 4, "" [0], line 0[LF] 2: ("word"") 3, "" [0], line 0[LF] 3: (""word""") 0, "word" [4], line 6[LF] 4: (""word" ") 0, "word" [4], line 6[LF] 5: (" "word"") 3, "" [0], line 0[LF] 6: (""perfect"") 0, "perfect" [7], line 9[LF] 7: (""p r e t"") 0, "p r e t" [7], line 9[LF] 8: (""perfec\"") 0, "perfec\" [7], line 9[LF] 9: ("""") 0, "" [0], line 2[LF] 10: ("") 3, "" [0], line 0[LF] 11: (""longerth"") 1, "" [0], line 0[LF] curlx_str_single[LF] 0: ("a") 0, line 1[LF] 1: ("aa") 0, line 1[LF] 2: ("A") 5, line 0[LF] 3: ("b") 5, line 0[LF] 4: ("\") 5, line 0[LF] 5: (" ") 5, line 0[LF] 6: ("") 5, line 0[LF] curlx_str_singlespace[LF] 0: ("a") 5, line 0[LF] 1: ("aa") 5, line 0[LF] 2: ("A") 5, line 0[LF] 3: ("b") 5, line 0[LF] 4: ("\") 5, line 0[LF] 5: (" ") 0, line 1[LF] 6: ("%09") 5, line 0[LF] 7: ("[LF] ") 5, line 0[LF] 8: ("") 5, line 0[LF] curlx_str_single[LF] 0: ("a") 0, line 1[LF] 1: ("aa") 0, line 1[LF] 2: ("A") 5, line 0[LF] 3: ("b") 5, line 0[LF] 4: ("\") 5, line 0[LF] 5: (" ") 5, line 0[LF] 6: ("") 5, line 0[LF] curlx_str_number[LF] 0: ("1") 0, [1] line 1[LF] 1: ("10000") 7, [0] line 0[LF] 2: ("1234") 0, [1234] line 4[LF] 3: ("1235") 0, [1235] line 4[LF] 4: ("1236") 7, [0] line 0[LF] 5: ("01234") 0, [1234] line 5[LF] 6: ("00000000000000000000000000001234") 0, [1234] line 32[LF] 7: ("0123 345") 0, [123] line 4[LF] 8: ("0123O345") 0, [123] line 4[LF] 9: ("-12") 8, [0] line 0[LF] 10: (" 123") 8, [0] line 0[LF] 11: ("") 8, [0] line 0[LF] curlx_str_number varying max[LF] 0: ("00") max 8 == 0, [0][LF] 1: ("1") max 8 == 0, [1][LF] 2: ("1") max 1 == 0, [1][LF] 3: ("2") max 1 == 7, [0][LF] 4: ("2") max 2 == 0, [2][LF] 5: ("5") max 6 == 0, [5][LF] 6: ("000000000000000000000006") max 6 == 0, [6][LF] 7: ("7") max 6 == 7, [0][LF] 8: ("8") max 6 == 7, [0][LF] 9: ("9") max 8 == 7, [0][LF] 10: ("10") max 10 == 0, [10][LF] 11: ("11") max 10 == 7, [0][LF] 12: ("12") max 10 == 7, [0][LF] curlx_str_hex varying max[LF] 0: ("00") max 8 == 0, [0][LF] 1: ("1") max 8 == 0, [1][LF] 2: ("1") max 1 == 0, [1][LF] 3: ("2") max 1 == 7, [0][LF] 4: ("2") max 2 == 0, [2][LF] 5: ("5") max 6 == 0, [5][LF] 6: ("000000000000000000000006") max 6 == 0, [6][LF] 7: ("7") max 6 == 7, [0][LF] 8: ("8") max 6 == 7, [0][LF] 9: ("9") max 8 == 7, [0][LF] 10: ("a") max 14 == 0, [10][LF] 11: ("b") max 14 == 0, [11][LF] 12: ("c") max 14 == 0, [12][LF] 13: ("d") max 14 == 0, [13][LF] 14: ("e") max 14 == 0, [14][LF] 15: ("f") max 14 == 7, [0][LF] 16: ("f") max 15 == 0, [15][LF] 17: ("10") max 16 == 0, [16][LF] 18: ("11") max 16 == 7, [0][LF] 19: ("12") max 16 == 7, [0][LF] curlx_str_octal varying max[LF] 0: ("00") max 4 == 0, [0][LF] 1: ("1") max 4 == 0, [1][LF] 2: ("1") max 4 == 0, [1][LF] 3: ("2") max 4 == 0, [2][LF] 4: ("3") max 4 == 0, [3][LF] 5: ("4") max 4 == 0, [4][LF] 6: ("5") max 4 == 7, [0][LF] 7: ("000000000000000000000006") max 6 == 0, [6][LF] 8: ("7") max 7 == 0, [7][LF] 9: ("10") max 8 == 0, [8][LF] 10: ("11") max 8 == 7, [0][LF] 11: ("11") max 9 == 0, [9][LF] 12: ("12") max 9 == 7, [0][LF] 13: ("13") max 9 == 7, [0][LF] 14: ("8") max 10 == 8, [0][LF] curlx_str_number / max[LF] 0: ("9223372036854775807") 0, [9223372036854775807] line 19[LF] 1: ("9223372036854775808") 7, [0] line 0[LF] 2: ("18446744073709551615") 7, [0] line 0[LF] 3: ("18446744073709551616") 7, [0] line 0[LF] 4: ("18446744073709551617") 7, [0] line 0[LF] 5: ("0123456799a") 0, [123456799] line 10[LF] 6: ("0123456789") 0, [123456789] line 10[LF] 7: ("123498760b") 0, [123498760] line 9[LF] 8: ("1234987607611298232") 0, [1234987607611298232] line 19[LF] 9: ("1111111111111111111") 0, [1111111111111111111] line 19[LF] 10: ("2222222222222222222") 0, [2222222222222222222] line 19[LF] 11: ("00000000000000000000000000000009223372036854775807") 0, [9223372036854775807] line 50[LF] 12: ("3333333333333333333") 0, [3333333333333333333] line 19[LF] 13: ("4444444444444444444") 0, [4444444444444444444] line 19[LF] 14: ("5555555555555555555") 0, [5555555555555555555] line 19[LF] 15: ("6666666666666666666") 0, [6666666666666666666] line 19[LF] 16: ("7777777777777777777") 0, [7777777777777777777] line 19[LF] 17: ("8888888888888888888") 0, [8888888888888888888] line 19[LF] 18: ("999999999999999999") 0, [999999999999999999] line 18[LF] curlx_str_newline[LF] 0: (%61) 6, line 0[LF] 1: (%61) 6, line 0[LF] 2: (%41) 6, line 0[LF] 3: (%62) 6, line 0[LF] 4: (%5c) 6, line 0[LF] 5: (%20) 6, line 0[LF] 6: (%0a) 0, line 1[LF] 7: (%0d) 0, line 1[LF] 8: (%0d) 0, line 1[LF] 9: (%0c) 6, line 0[LF] 10: (%00) 6, line 0[LF] curlx_str_hex[LF] 0: ("1") 0, [1] line 1[LF] 1: ("1000") 0, [4096] line 4[LF] 2: ("1234") 0, [4660] line 4[LF] 3: ("1235") 0, [4661] line 4[LF] 4: ("1236") 7, [0] line 0[LF] 5: ("01234") 0, [4660] line 5[LF] 6: ("00000000000000000000000000001234") 0, [4660] line 32[LF] 7: ("0123 345") 0, [291] line 4[LF] 8: ("0123O345") 0, [291] line 4[LF] 9: ("-12") 8, [0] line 0[LF] 10: (" 123") 8, [0] line 0[LF] 11: ("") 8, [0] line 0[LF] curlx_str_octal[LF] 0: ("1") 0, [1] line 1[LF] 1: ("1000") 0, [512] line 4[LF] 2: ("1234") 0, [668] line 4[LF] 3: ("1235") 0, [669] line 4[LF] 4: ("1236") 7, [0] line 0[LF] 5: ("01234") 0, [668] line 5[LF] 6: ("00000000000000000000000000001234") 0, [668] line 32[LF] 7: ("0123 345") 0, [83] line 4[LF] 8: ("0123O345") 0, [83] line 4[LF] 9: ("-12") 8, [0] line 0[LF] 10: (" 123") 8, [0] line 0[LF] 11: ("") 8, [0] line 0[LF] curlx_str_octal / max[LF] 0: ("777777777777777777777") 0, [9223372036854775807] line 21[LF] 1: ("1000000000000000000000") 7, [0] line 0[LF] 2: ("111111111111111111111") 0, [1317624576693539401] line 21[LF] 3: ("222222222222222222222") 0, [2635249153387078802] line 21[LF] 4: ("333333333333333333333") 0, [3952873730080618203] line 21[LF] 5: ("444444444444444444444") 0, [5270498306774157604] line 21[LF] 6: ("555555555555555555555") 0, [6588122883467697005] line 21[LF] 7: ("666666666666666666666") 0, [7905747460161236406] line 21[LF] curlx_str_hex / max[LF] 0: ("7FFFFFFFFFFFFFFF") 0, [9223372036854775807] line 16[LF] 1: ("8000000000000000") 7, [0] line 0[LF] 2: ("1111111111111111") 0, [1229782938247303441] line 16[LF] 3: ("2222222222222222") 0, [2459565876494606882] line 16[LF] 4: ("3333333333333333") 0, [3689348814741910323] line 16[LF] 5: ("4444444444444444") 0, [4919131752989213764] line 16[LF] 6: ("5555555555555555") 0, [6148914691236517205] line 16[LF] 7: ("6666666666666666") 0, [7378697629483820646] line 16[LF] 8: ("7777777777777777") 0, [8608480567731124087] line 16[LF] 9: ("888888888888888") 0, [614891469123651720] line 15[LF] 10: ("999999999999999") 0, [691752902764108185] line 15[LF] 11: ("aaaaaaaaAAAAAAA") 0, [768614336404564650] line 15[LF] 12: ("bbbbbbbbBBBBBBB") 0, [845475770045021115] line 15[LF] 13: ("BBBBBBBBbbbbbbb") 0, [845475770045021115] line 15[LF] 14: ("ccccccccCCCCCCC") 0, [922337203685477580] line 15[LF] 15: ("ddddddddDDDDDDD") 0, [999198637325934045] line 15[LF] 16: ("eeeeeeeeEEEEEEE") 0, [1076060070966390510] line 15[LF] 17: ("ffffffffFFFFFFF") 0, [1152921504606846975] line 15[LF] 18: ("abcdef") 0, [11259375] line 6[LF] 19: ("ABCDEF") 0, [11259375] line 6[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind1664 ./unit/units unit1664 - > log/38/stdout1664 2> log/38/stderr1664 === End of file commands.log === Start of file server.cmd Testnum 1664 === End of file server.cmd === Start of file valgrind1664 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1664 test 1906...[CURLOPT_CURLU and CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1906 ./libtest/libtests lib1906 http://127.0.0.1:35093/1906 > log/41/stdout1906 2> log/41/stderr1906 1906: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 1906 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind1906 ./libtest/libtests lib1906 http://127.0.0.1:35093/1906 > log/41/stdout1906 2> log/41/stderr1906 === End of file commands.log === Start of file http_server.log 09:41:40.008268 ====> Client connect 09:41:40.008906 accept_connection 3 returned 4 09:41:40.009343 accept_connection 3 returned 0 09:41:40.009610 Read 93 bytes 09:41:40.009741 Process 93 bytes request 09:41:40.009846 Got request: GET /verifiedserver HTTP/1.1 09:41:40.009935 Are-we-friendly question received 09:41:40.010184 Wrote request (93 bytes) input to log/41/server.input 09:41:40.010372 Identifying ourselves as friends 09:41:40.021198 Response sent (56 bytes) and written to log/41/server.response 09:41:40.021325 special request received, no persistency 09:41:40.021401 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 1906 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind1906 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1906 test 1910...[HTTP credentials with newline and redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1910 ./libtest/libtests lib1910 127.0.0.1:41267/1910 > log/43/stdout1910 2> log/43/stderr1910 1910: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 1910 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind1910 ./libtest/libtests lib1910 127.0.0.1:41267/1910 > log/43/stdout1910 2> log/43/stderr1910 === End of file commands.log === Start of file http_server.log 09:41:39.948998 ====> Client connect 09:41:39.949348 accept_connection 3 returned 4 09:41:39.949715 accept_connection 3 returned 0 09:41:39.949889 Read 93 bytes 09:41:39.949991 Process 93 bytes request 09:41:39.950093 Got request: GET /verifiedserver HTTP/1.1 09:41:39.950191 Are-we-friendly question received 09:41:39.950433 Wrote request (93 bytes) input to log/43/server.input 09:41:39.950737 Identifying ourselves as friends 09:41:39.951360 Response sent (56 bytes) and written to log/43/server.response 09:41:39.951458 special request received, no persistency 09:41:39.951616 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 1910 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind1910 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1910 prechecked /usr/bin/perl -e 'for my $i ((1..100)) { my $filename = "log/61/exist1683.$i"; open(FH, ">", $filename) or die $!; print FH "to stay the same" ; close(FH) }' test 1683...[HTTP GET without clobber when 100 files already exist] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1683 ../src/curl -q --include --trace-ascii log/61/trace1683 --trace-config all --trace-time http://127.0.0.1:44381/1683 -o log/61/exist1683 --no-clobber > log/61/stdout1683 2> log/61/stderr1683 postcheck /usr/bin/perl -e 'for my $i ((1..100)) { my $filename = "log/61/exist1683.$i"; open(FH, "<", $filename) or die $!; ( eq "to stay the same" and eq "") or die "incorrect $filename" ; close(FH) }' curl returned 1, when expecting 23 1683: exit FAILED == Contents of files in the log/61/ dir after test 1683 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind1683 ../src/curl -q --include --trace-ascii log/61/trace1683 --trace-config all --trace-time http://127.0.0.1:44381/1683 -o log/61/exist1683 --no-clobber > log/61/stdout1683 2> log/61/stderr1683 === End of file commands.log === Start of file exist1683 to stay the same === End of file exist1683 === Start of file exist1683.1 to stay the same === End of file exist1683.1 === Start of file exist1683.10 to stay the same === End of file exist1683.10 === Start of file exist1683.100 to stay the same === End of file exist1683.100 === Start of file exist1683.11 to stay the same === End of file exist1683.11 === Start of file exist1683.12 to stay the same === End of file exist1683.12 === Start of file exist1683.13 to stay the same === End of file exist1683.13 === Start of file exist1683.14 to stay the same === End of file exist1683.14 === Start of file exist1683.15 to stay the same === End of file exist1683.15 === Start of file exist1683.16 to stay the same === End of file exist1683.16 === Start of file exist1683.17 to stay the same === End of file exist1683.17 === Start of file exist1683.18 to stay the same === End of file exist1683.18 === Start of file exist1683.19 to stay the same === End of file exist1683.19 === Start of file exist1683.2 to stay the same === End of file exist1683.2 === Start of file exist1683.20 to stay the same === End of file exist1683.20 === Start of file exist1683.21 to stay the same === End of file exist1683.21 === Start of file exist1683.22 to stay the same === End of file exist1683.22 === Start of file exist1683.23 to stay the same === End of file exist1683.23 === Start of file exist1683.24 to stay the same === End of file exist1683.24 === Start of file exist1683.25 to stay the same === End of file exist1683.25 === Start of file exist1683.26 to stay the same === End of file exist1683.26 === Start of file exist1683.27 to stay the same === End of file exist1683.27 === Start of file exist1683.28 to stay the same === End of file exist1683.28 === Start of file exist1683.29 to stay the same === End of file exist1683.29 === Start of file exist1683.3 to stay the same === End of file exist1683.3 === Start of file exist1683.30 to stay the same === End of file exist1683.30 === Start of file exist1683.31 to stay the same === End of file exist1683.31 === Start of file exist1683.32 to stay the same === End of file exist1683.32 === Start of file exist1683.33 to stay the same === End of file exist1683.33 === Start of file exist1683.34 to stay the same === End of file exist1683.34 === Start of file exist1683.35 to stay the same === End of file exist1683.35 === Start of file exist1683.36 to stay the same === End of file exist1683.36 === Start of file exist1683.37 to stay the same === End of file exist1683.37 === Start of file exist1683.38 to stay the same === End of file exist1683.38 === Start of file exist1683.39 to stay the same === End of file exist1683.39 === Start of file exist1683.4 to stay the same === End of file exist1683.4 === Start of file exist1683.40 to stay the same === End of file exist1683.40 === Start of file exist1683.41 to stay the same === End of file exist1683.41 === Start of file exist1683.42 to stay the same === End of file exist1683.42 === Start of file exist1683.43 to stay the same === End of file exist1683.43 === Start of file exist1683.44 to stay the same === End of file exist1683.44 === Start of file exist1683.45 to stay the same === End of file exist1683.45 === Start of file exist1683.46 to stay the same === End of file exist1683.46 === Start of file exist1683.47 to stay the same === End of file exist1683.47 === Start of file exist1683.48 to stay the same === End of file exist1683.48 === Start of file exist1683.49 to stay the same === End of file exist1683.49 === Start of file exist1683.5 to stay the same === End of file exist1683.5 === Start of file exist1683.50 to stay the same === End of file exist1683.50 === Start of file exist1683.51 to stay the same === End of file exist1683.51 === Start of file exist1683.52 to stay the same === End of file exist1683.52 === Start of file exist1683.53 to stay the same === End of file exist1683.53 === Start of file exist1683.54 to stay the same === End of file exist1683.54 === Start of file exist1683.55 to stay the same === End of file exist1683.55 === Start of file exist1683.56 to stay the same === End of file exist1683.56 === Start of file exist1683.57 to stay the same === End of file exist1683.57 === Start of file exist1683.58 to stay the same === End of file exist1683.58 === Start of file exist1683.59 to stay the same === End of file exist1683.59 === Start of file exist1683.6 to stay the same === End of file exist1683.6 === Start of file exist1683.60 to stay the same === End of file exist1683.60 === Start of file exist1683.61 to stay the same === End of file exist1683.61 === Start of file exist1683.62 to stay the same === End of file exist1683.62 === Start of file exist1683.63 to stay the same === End of file exist1683.63 === Start of file exist1683.64 to stay the same === End of file exist1683.64 === Start of file exist1683.65 to stay the same === End of file exist1683.65 === Start of file exist1683.66 to stay the same === End of file exist1683.66 === Start of file exist1683.67 to stay the same === End of file exist1683.67 === Start of file exist1683.68 to stay the same === End of file exist1683.68 === Start of file exist1683.69 to stay the same === End of file exist1683.69 === Start of file exist1683.7 to stay the same === End of file exist1683.7 === Start of file exist1683.70 to stay the same === End of file exist1683.70 === Start of file exist1683.71 to stay the same === End of file exist1683.71 === Start of file exist1683.72 to stay the same === End of file exist1683.72 === Start of file exist1683.73 to stay the same === End of file exist1683.73 === Start of file exist1683.74 to stay the same === End of file exist1683.74 === Start of file exist1683.75 to stay the same === End of file exist1683.75 === Start of file exist1683.76 to stay the same === End of file exist1683.76 === Start of file exist1683.77 to stay the same === End of file exist1683.77 === Start of file exist1683.78 to stay the same === End of file exist1683.78 === Start of file exist1683.79 to stay the same === End of file exist1683.79 === Start of file exist1683.8 to stay the same === End of file exist1683.8 === Start of file exist1683.80 to stay the same === End of file exist1683.80 === Start of file exist1683.81 to stay the same === End of file exist1683.81 === Start of file exist1683.82 to stay the same === End of file exist1683.82 === Start of file exist1683.83 to stay the same === End of file exist1683.83 === Start of file exist1683.84 to stay the same === End of file exist1683.84 === Start of file exist1683.85 to stay the same === End of file exist1683.85 === Start of file exist1683.86 to stay the same === End of file exist1683.86 === Start of file exist1683.87 to stay the same === End of file exist1683.87 === Start of file exist1683.88 to stay the same === End of file exist1683.88 === Start of file exist1683.89 to stay the same === End of file exist1683.89 === Start of file exist1683.9 to stay the same === End of file exist1683.9 === Start of file exist1683.90 to stay the same === End of file exist1683.90 === Start of file exist1683.91 to stay the same === End of file exist1683.91 === Start of file exist1683.92 to stay the same === End of file exist1683.92 === Start of file exist1683.93 to stay the same === End of file exist1683.93 === Start of file exist1683.94 to stay the same === End of file exist1683.94 === Start of file exist1683.95 to stay the same === End of file exist1683.95 === Start of file exist1683.96 to stay the same === End of file exist1683.96 === Start of file exist1683.97 to stay the same === End of file exist1683.97 === Start of file exist1683.98 to stay the same === End of file exist1683.98 === Start of file exist1683.99 to stay the same === End of file exist1683.99 === Start of file http_server.log 09:41:39.778865 ====> Client connect 09:41:39.779164 accept_connection 3 returned 4 09:41:39.779327 accept_connection 3 returned 0 09:41:39.779594 Read 93 bytes 09:41:39.779724 Process 93 bytes request 09:41:39.779802 Got request: GET /verifiedserver HTTP/1.1 09:41:39.779888 Are-we-friendly question received 09:41:39.780107 Wrote request (93 bytes) input to log/61/server.input 09:41:39.780290 Identifying ourselves as friends 09:41:39.781138 Response sent (56 bytes) and written to log/61/server.response 09:41:39.781261 special request received, no persistency 09:41:39.781330 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 1683 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind1683 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1683 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1941 ./libtest/libtests lib1940 http://hello:45557/1941 127.0.0.1:37997 > log/31/stdout1941 2> log/31/stderr1941 test 1680...[HTTP GET with explicit clobber] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1680 ../src/curl -q --include --trace-ascii log/64/trace1680 --trace-config all --trace-time http://127.0.0.1:33073/1680 -o log/64/exist1680 --clobber > log/64/stdout1680 2> log/64/stderr1680 1680: output (log/64/exist1680) FAILED: --- log/64/check-expected 2025-07-18 09:41:41.369579953 +0000 +++ log/64/check-generated 2025-07-18 09:41:41.369273153 +0000 @@ -1,6 +1 @@ -HTTP/1.0 200 OK[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -Content-Length: 4[LF] -[LF] -foo[LF] +to be overwritten[LF] == Contents of files in the log/64/ dir after test 1680 === Start of file check-expected HTTP/1.0 200 OK[LF] Connection: close[LF] Content-Type: text/plain[LF] Content-Length: 4[LF] [LF] foo[LF] === End of file check-expected === Start of file check-generated to be overwritten[LF] === End of file check-generated === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind1680 ../src/curl -q --include --trace-ascii log/64/trace1680 --trace-config all --trace-time http://127.0.0.1:33073/1680 -o log/64/exist1680 --clobber > log/64/stdout1680 2> log/64/stderr1680 === End of file commands.log === Start of file exist1680 to be overwritten === End of file exist1680 === Start of file http_server.log 09:41:39.739402 ====> Client connect 09:41:39.739848 accept_connection 3 returned 4 09:41:39.740010 accept_connection 3 returned 0 09:41:39.740134 Read 93 bytes 09:41:39.740217 Process 93 bytes request 09:41:39.740296 Got request: GET /verifiedserver HTTP/1.1 09:41:39.740368 Are-we-friendly question received 09:41:39.740661 Wrote request (93 bytes) input to log/64/server.input 09:41:39.740853 Identifying ourselves as friends 09:41:39.744905 Response sent (56 bytes) and written to log/64/server.response 09:41:39.745025 special request received, no persistency 09:41:39.745094 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 1680 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind1680 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1680 startnew: ./server/servers mqttd --port 0 --pidfile log/12/server/mqtt_server.pid --portfile log/12/server/mqtt_server.port --config log/12/server.cmd --logfile log/12/mqtt_server.log --logdir log/12 RUN: MQTT server is now running PID 157881 on PORT 34607 * pid mqtt => 157881 157881 test 1916...[MQTT PUBLISH with no POSTFIELDSIZE set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1916 ./libtest/libtests lib1916 "mqtt://127.0.0.1:34607/%20" > log/12/stdout1916 2> log/12/stderr1916 1916: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 1916 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind1916 ./libtest/libtests lib1916 "mqtt://127.0.0.1:34607/%20" > log/12/stdout1916 2> log/12/stderr1916 === End of file commands.log === Start of file mqtt_server.log 09:41:39.758195 Running IPv4 version 09:41:39.758844 Listening on port 34607 09:41:39.759322 Wrote pid 157881 to log/12/server/mqtt_server.pid 09:41:39.761532 Wrote port 34607 to log/12/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1916 === End of file server.cmd === Start of file valgrind1916 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1916 test 1914...[FTP with NOBODY and FILETIME set, getting a missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1914 ./libtest/libtests lib1913 ftp://127.0.0.1:38699/not-there/1913 1 > log/15/stdout1914 2> log/15/stderr1914 libtests returned 1, when expecting 78 1914: exit FAILED == Contents of files in the log/15/ dir after test 1914 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind1914 ./libtest/libtests lib1913 ftp://127.0.0.1:38699/not-there/1913 1 > log/15/stdout1914 2> log/15/stderr1914 === End of file commands.log === Start of file ftp_server.log 09:41:39.808588 ====> Client connect 09:41:39.809923 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:39.818144 < "USER anonymous" 09:41:39.820952 > "331 We are happy you popped in![CR][LF]" 09:41:39.825945 < "PASS ftp@example.com" 09:41:39.827638 > "230 Welcome you silly person[CR][LF]" 09:41:39.828399 < "PWD" 09:41:39.831922 > "257 "/" is current directory[CR][LF]" 09:41:39.833829 < "EPSV" 09:41:39.834121 ====> Passive DATA channel requested by client 09:41:39.834289 DATA sockfilt for passive data channel starting... 09:41:39.855983 DATA sockfilt for passive data channel started (pid 158394) 09:41:39.857064 DATA sockfilt for passive data channel listens on port 41175 09:41:39.857528 > "229 Entering Passive Mode (|||41175|)[LF]" 09:41:39.857847 Client has been notified that DATA conn will be accepted on port 41175 09:41:39.859491 Client connects to port 41175 09:41:39.859859 ====> Client established passive DATA connection on port 41175 09:41:39.860600 < "TYPE I" 09:41:39.861058 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:39.863064 < "SIZE verifiedserver" 09:41:39.863456 > "213 17[CR][LF]" 09:41:39.865449 < "RETR verifiedserver" 09:41:39.865955 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:39.868377 =====> Closing passive DATA connection... 09:41:39.868612 Server disconnects passive DATA connection 09:41:39.870099 Server disconnected passive DATA connection 09:41:39.870365 DATA sockfilt for passive data channel quits (pid 158394) 09:41:39.872499 DATA sockfilt for passive data channel quit (pid 158394) 09:41:39.872832 =====> Closed passive DATA connection 09:41:39.873207 > "226 File transfer complete[CR][LF]" 09:41:39.909688 < "QUIT" 09:41:39.910908 > "221 bye bye baby[CR][LF]" 09:41:39.915133 MAIN sockfilt said DISC 09:41:39.915991 ====> Client disconnected 09:41:39.916489 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:40.061777 ====> Client connect 09:41:40.064077 Received DATA (on stdin) 09:41:40.064220 > 160 bytes data, server => client 09:41:40.064306 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:40.064383 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:40.064452 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:40.070665 < 16 bytes data, client => server 09:41:40.070812 'USER anonymous\r\n' 09:41:40.072230 Received DATA (on stdin) 09:41:40.072375 > 33 bytes data, server => client 09:41:40.075097 '331 We are happy you popped in!\r\n' 09:41:40.078624 < 22 bytes data, client => server 09:41:40.078756 'PASS ftp@example.com\r\n' 09:41:40.080039 Received DATA (on stdin) 09:41:40.080176 > 30 bytes data, server => client 09:41:40.080339 '230 Welcome you silly person\r\n' 09:41:40.081025 < 5 bytes data, client => server 09:41:40.081167 'PWD\r\n' 09:41:40.083633 Received DATA (on stdin) 09:41:40.083786 > 30 bytes data, server => client 09:41:40.085979 '257 "/" is current directory\r\n' 09:41:40.086747 < 6 bytes data, client => server 09:41:40.086891 'EPSV\r\n' 09:41:40.111290 Received DATA (on stdin) 09:41:40.111459 > 38 bytes data, server => client 09:41:40.111642 '229 Entering Passive Mode (|||41175|)\n' 09:41:40.113285 < 8 bytes data, client => server 09:41:40.113425 'TYPE I\r\n' 09:41:40.115090 Received DATA (on stdin) 09:41:40.115218 > 33 bytes data, server => client 09:41:40.115301 '200 I modify TYPE as you wanted\r\n' 09:41:40.115991 < 21 bytes data, client => server 09:41:40.116135 'SIZE verifiedserver\r\n' 09:41:40.117549 Received DATA (on stdin) 09:41:40.117679 > 8 bytes data, server => client 09:41:40.117749 '213 17\r\n' 09:41:40.118308 < 21 bytes data, client => server 09:41:40.118444 'RETR verifiedserver\r\n' 09:41:40.120357 Received DATA (on stdin) 09:41:40.120548 > 29 bytes data, server => client 09:41:40.120661 '150 Binary junk (17 bytes).\r\n' 09:41:40.127257 Received DATA (on stdin) 09:41:40.127387 > 28 bytes data, server => client 09:41:40.127550 '226 File transfer complete\r\n' 09:41:40.162577 < 6 bytes data, client => server 09:41:40.162750 'QUIT\r\n' 09:41:40.163883 Received DATA (on stdin) 09:41:40.164026 > 18 bytes data, server => client 09:41:40.164183 '221 bye bye baby\r\n' 09:41:40.168598 ====> Client disconnect 09:41:40.169173 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:39.107844 Running IPv4 version 09:41:39.108331 Listening on port 41175 09:41:39.108808 Wrote pid 158394 to log/15/server/ftp_sockdata.pid 09:41:39.109304 Received PING (on stdin) 09:41:39.110127 Received PORT (on stdin) 09:41:39.112913 ====> Client connect 09:41:39.120064 Received DATA (on stdin) 09:41:39.120216 > 17 bytes data, server => client 09:41:39.121258 'WE ROOLZ: 90579\r\n' 09:41:39.123088 Received DISC (on stdin) 09:41:39.123255 ====> Client forcibly disconnected 09:41:39.124338 Received QUIT (on stdin) 09:41:39.124584 quits 09:41:39.125010 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 550 no such file Testnum 1914 === End of file server.cmd === Start of file valgrind1914 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1914 test 1964...[HTTP AWS_SIGV4 with X-Xxx-Date header set manually] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1964 ./libtest/libtests lib1964 http://xxx:yyy@127.0.0.1:9000/1964/testapi/test 127.0.0.1:9000:127.0.0.1:41285 > log/18/stdout1964 2> log/18/stderr1964 1964: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 1964 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind1964 ./libtest/libtests lib1964 http://xxx:yyy@127.0.0.1:9000/1964/testapi/test 127.0.0.1:9000:127.0.0.1:41285 > log/18/stdout1964 2> log/18/stderr1964 === End of file commands.log === Start of file http_server.log 09:41:40.484088 ====> Client connect 09:41:40.484696 accept_connection 3 returned 4 09:41:40.484945 accept_connection 3 returned 0 09:41:40.485111 Read 93 bytes 09:41:40.485237 Process 93 bytes request 09:41:40.485349 Got request: GET /verifiedserver HTTP/1.1 09:41:40.485439 Are-we-friendly question received 09:41:40.485864 Wrote request (93 bytes) input to log/18/server.input 09:41:40.486083 Identifying ourselves as friends 09:41:40.486969 Response sent (56 bytes) and written to log/18/server.response 09:41:40.487094 special request received, no persistency 09:41:40.487175 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 1964 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind1964 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1964 test 1913...[FTP with NOBODY set, getting a missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1913 ./libtest/libtests lib1913 ftp://127.0.0.1:41867/not-there/1913 > log/22/stdout1913 2> log/22/stderr1913 libtests returned 1, when expecting 78 1913: exit FAILED == Contents of files in the log/22/ dir after test 1913 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind1913 ./libtest/libtests lib1913 ftp://127.0.0.1:41867/not-there/1913 > log/22/stdout1913 2> log/22/stderr1913 === End of file commands.log === Start of file ftp_server.log 09:41:39.804446 ====> Client connect 09:41:39.807080 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:39.808894 < "USER anonymous" 09:41:39.809269 > "331 We are happy you popped in![CR][LF]" 09:41:39.811103 < "PASS ftp@example.com" 09:41:39.812734 > "230 Welcome you silly person[CR][LF]" 09:41:39.813448 < "PWD" 09:41:39.815194 > "257 "/" is current directory[CR][LF]" 09:41:39.816991 < "EPSV" 09:41:39.817309 ====> Passive DATA channel requested by client 09:41:39.817549 DATA sockfilt for passive data channel starting... 09:41:39.841195 DATA sockfilt for passive data channel started (pid 158354) 09:41:39.843471 DATA sockfilt for passive data channel listens on port 40057 09:41:39.844047 > "229 Entering Passive Mode (|||40057|)[LF]" 09:41:39.844329 Client has been notified that DATA conn will be accepted on port 40057 09:41:39.849269 Client connects to port 40057 09:41:39.849582 ====> Client established passive DATA connection on port 40057 09:41:39.850617 < "TYPE I" 09:41:39.853171 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:39.855447 < "SIZE verifiedserver" 09:41:39.856056 > "213 17[CR][LF]" 09:41:39.861463 < "RETR verifiedserver" 09:41:39.862838 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:39.863520 =====> Closing passive DATA connection... 09:41:39.866895 Server disconnects passive DATA connection 09:41:39.868973 Server disconnected passive DATA connection 09:41:39.869227 DATA sockfilt for passive data channel quits (pid 158354) 09:41:39.871267 DATA sockfilt for passive data channel quit (pid 158354) 09:41:39.871519 =====> Closed passive DATA connection 09:41:39.875971 > "226 File transfer complete[CR][LF]" 09:41:39.905620 < "QUIT" 09:41:39.906121 > "221 bye bye baby[CR][LF]" 09:41:39.911337 MAIN sockfilt said DISC 09:41:39.911633 ====> Client disconnected 09:41:39.912165 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:40.057650 ====> Client connect 09:41:40.059396 Received DATA (on stdin) 09:41:40.059649 > 160 bytes data, server => client 09:41:40.060773 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:40.060919 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:40.061000 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:40.061760 < 16 bytes data, client => server 09:41:40.061894 'USER anonymous\r\n' 09:41:40.063117 Received DATA (on stdin) 09:41:40.063256 > 33 bytes data, server => client 09:41:40.063342 '331 We are happy you popped in!\r\n' 09:41:40.063952 < 22 bytes data, client => server 09:41:40.064085 'PASS ftp@example.com\r\n' 09:41:40.065192 Received DATA (on stdin) 09:41:40.065319 > 30 bytes data, server => client 09:41:40.065555 '230 Welcome you silly person\r\n' 09:41:40.066141 < 5 bytes data, client => server 09:41:40.066271 'PWD\r\n' 09:41:40.067575 Received DATA (on stdin) 09:41:40.067712 > 30 bytes data, server => client 09:41:40.067879 '257 "/" is current directory\r\n' 09:41:40.068609 < 6 bytes data, client => server 09:41:40.068736 'EPSV\r\n' 09:41:40.098572 Received DATA (on stdin) 09:41:40.098971 > 38 bytes data, server => client 09:41:40.099108 '229 Entering Passive Mode (|||40057|)\n' 09:41:40.101784 < 8 bytes data, client => server 09:41:40.101949 'TYPE I\r\n' 09:41:40.106909 Received DATA (on stdin) 09:41:40.107059 > 33 bytes data, server => client 09:41:40.107143 '200 I modify TYPE as you wanted\r\n' 09:41:40.107783 < 21 bytes data, client => server 09:41:40.107911 'SIZE verifiedserver\r\n' 09:41:40.113580 Received DATA (on stdin) 09:41:40.113723 > 8 bytes data, server => client 09:41:40.113808 '213 17\r\n' 09:41:40.114400 < 21 bytes data, client => server 09:41:40.114601 'RETR verifiedserver\r\n' 09:41:40.115644 Received DATA (on stdin) 09:41:40.115780 > 29 bytes data, server => client 09:41:40.115944 '150 Binary junk (17 bytes).\r\n' 09:41:40.125632 Received DATA (on stdin) 09:41:40.125779 > 28 bytes data, server => client 09:41:40.130115 '226 File transfer complete\r\n' 09:41:40.158429 < 6 bytes data, client => server 09:41:40.158674 'QUIT\r\n' 09:41:40.160170 Received DATA (on stdin) 09:41:40.160338 > 18 bytes data, server => client 09:41:40.160440 '221 bye bye baby\r\n' 09:41:40.164566 ====> Client disconnect 09:41:40.166219 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:39.091296 Running IPv4 version 09:41:39.093974 Listening on port 40057 09:41:39.094310 Wrote pid 158354 to log/22/server/ftp_sockdata.pid 09:41:39.094537 Received PING (on stdin) 09:41:39.095657 Received PORT (on stdin) 09:41:39.100778 ====> Client connect 09:41:39.120987 Received DATA (on stdin) 09:41:39.121129 > 17 bytes data, server => client 09:41:39.121237 'WE ROOLZ: 77494\r\n' 09:41:39.121634 Received DISC (on stdin) 09:41:39.121818 ====> Client forcibly disconnected 09:41:39.123274 Received QUIT (on stdin) 09:41:39.123421 quits 09:41:39.123912 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 550 no such file Testnum 1913 === End of file server.cmd === Start of file valgrind1913 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1913 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1917 ./libtest/libtests lib1916 "mqtt://127.0.0.1:35769/%20" > log/11/stdout1917 2> log/11/stderr1917 test 1943...[curl_easy_header with trailers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1943 ./libtest/libtests lib1940 http://127.0.0.1:39259/1943 > log/24/stdout1943 2> log/24/stderr1943 1943: stdout FAILED: --- log/24/check-expected 2025-07-18 09:41:41.475264039 +0000 +++ log/24/check-generated 2025-07-18 09:41:41.474577420 +0000 @@ -1,3 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == fakeit/0.9 fakeitbad/1.0[LF] - Server == sent-as-trailer[LF] == Contents of files in the log/24/ dir after test 1943 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == fakeit/0.9 fakeitbad/1.0[LF] Server == sent-as-trailer[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind1943 ./libtest/libtests lib1940 http://127.0.0.1:39259/1943 > log/24/stdout1943 2> log/24/stderr1943 === End of file commands.log === Start of file http_server.log 09:41:40.226713 ====> Client connect 09:41:40.227059 accept_connection 3 returned 4 09:41:40.227243 accept_connection 3 returned 0 09:41:40.227399 Read 93 bytes 09:41:40.227696 Process 93 bytes request 09:41:40.227843 Got request: GET /verifiedserver HTTP/1.1 09:41:40.227935 Are-we-friendly question received 09:41:40.228157 Wrote request (93 bytes) input to log/24/server.input 09:41:40.228355 Identifying ourselves as friends 09:41:40.229220 Response sent (56 bytes) and written to log/24/server.response 09:41:40.229343 special request received, no persistency 09:41:40.229420 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 1943 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind1943 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1943 test 1941...[curl_easy_header with CONNECT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1941 ./libtest/libtests lib1940 http://hello:45557/1941 127.0.0.1:37997 > log/31/stdout1941 2> log/31/stderr1941 1941: stdout FAILED: --- log/31/check-expected 2025-07-18 09:41:41.537509428 +0000 +++ log/31/check-generated 2025-07-18 09:41:41.536577388 +0000 @@ -1,10 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19410002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] - Server == from the connect[LF] - Silly-thing == yes yes[LF] == Contents of files in the log/31/ dir after test 1941 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19410002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] Server == from the connect[LF] Silly-thing == yes yes[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind1941 ./libtest/libtests lib1940 http://hello:45557/1941 127.0.0.1:37997 > log/31/stdout1941 2> log/31/stderr1941 === End of file commands.log === Start of file http2_server.log 09:41:40.599874 ====> Client connect 09:41:40.600142 accept_connection 3 returned 4 09:41:40.600287 accept_connection 3 returned 0 09:41:40.600424 Read 93 bytes 09:41:40.600683 Process 93 bytes request 09:41:40.600786 Got request: GET /verifiedserver HTTP/1.1 09:41:40.600862 Are-we-friendly question received 09:41:40.601078 Wrote request (93 bytes) input to log/31/proxy.input 09:41:40.601359 Identifying ourselves as friends 09:41:40.602380 Response sent (57 bytes) and written to log/31/proxy.response 09:41:40.602790 special request received, no persistency 09:41:40.602901 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:37997... * Connected to 127.0.0.1 (127.0.0.1) port 37997 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37997 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 138836 === End of file http2_verify.out === Start of file http_server.log 09:41:40.203888 ====> Client connect 09:41:40.204192 accept_connection 3 returned 4 09:41:40.204354 accept_connection 3 returned 0 09:41:40.204614 Read 93 bytes 09:41:40.204733 Process 93 bytes request 09:41:40.204819 Got request: GET /verifiedserver HTTP/1.1 09:41:40.204890 Are-we-friendly question received 09:41:40.205115 Wrote request (93 bytes) input to log/31/server.input 09:41:40.205309 Identifying ourselves as friends 09:41:40.206126 Response sent (56 bytes) and written to log/31/server.response 09:41:40.206230 special request received, no persistency 09:41:40.206299 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 138836 === End of file proxy.response === Start of file server.cmd Testnum 1941 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind1941 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1941 test 1944...[curl_easy_header with redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1944 ./libtest/libtests lib1940 http://127.0.0.1:46523/1944 > log/46/stdout1944 2> log/46/stderr1944 1944: stdout FAILED: --- log/46/check-expected 2025-07-18 09:41:41.600273956 +0000 +++ log/46/check-generated 2025-07-18 09:41:41.596577358 +0000 @@ -1,6 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == the other one[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] -- Set-Cookie == 1cookie=data1; (0/2)[LF] -- Set-Cookie == 2cookie=data2; (1/2)[LF] == Contents of files in the log/46/ dir after test 1944 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == the other one[LF] Content-Type == text/html[LF] Content-Length == 0[LF] - Set-Cookie == 1cookie=data1; (0/2)[LF] - Set-Cookie == 2cookie=data2; (1/2)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind1944 ./libtest/libtests lib1940 http://127.0.0.1:46523/1944 > log/46/stdout1944 2> log/46/stderr1944 === End of file commands.log === Start of file http_server.log 09:41:40.194079 ====> Client connect 09:41:40.194370 accept_connection 3 returned 4 09:41:40.194639 accept_connection 3 returned 0 09:41:40.195338 Read 93 bytes 09:41:40.195577 Process 93 bytes request 09:41:40.195684 Got request: GET /verifiedserver HTTP/1.1 09:41:40.195759 Are-we-friendly question received 09:41:40.196001 Wrote request (93 bytes) input to log/46/server.input 09:41:40.196175 Identifying ourselves as friends 09:41:40.196779 Response sent (56 bytes) and written to log/46/server.response 09:41:40.196884 special request received, no persistency 09:41:40.196938 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 1944 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind1944 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1944 test 1909...[HTTP GET --retry-all-errors to overcome partial transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1909 ../src/curl -q --trace-ascii log/48/trace1909 --trace-config all --trace-time --retry 1 --retry-all-errors -o log/48/outfile1909 http://127.0.0.1:46339/1909 > log/48/stdout1909 2> log/48/stderr1909 1909: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 1909 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind1909 ../src/curl -q --trace-ascii log/48/trace1909 --trace-config all --trace-time --retry 1 --retry-all-errors -o log/48/outfile1909 http://127.0.0.1:46339/1909 > log/48/stdout1909 2> log/48/stderr1909 === End of file commands.log === Start of file http_server.log 09:41:39.989761 ====> Client connect 09:41:39.990033 accept_connection 3 returned 4 09:41:39.990168 accept_connection 3 returned 0 09:41:39.990279 Read 93 bytes 09:41:39.990357 Process 93 bytes request 09:41:39.990432 Got request: GET /verifiedserver HTTP/1.1 09:41:39.990611 Are-we-friendly question received 09:41:39.990827 Wrote request (93 bytes) input to log/48/server.input 09:41:39.991026 Identifying ourselves as friends 09:41:39.992634 Response sent (56 bytes) and written to log/48/server.response 09:41:39.992742 special request received, no persistency 09:41:39.992808 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46339... * Connected to 127.0.0.1 (127.0.0.1) port 46339 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46339 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73764 === End of file http_verify.out === Start of file server.cmd Testnum 1909 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73764 === End of file server.response === Start of file valgrind1909 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1909 * starts no server test 1980...[sigv4 canon_query unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1980 ./unit/units unit1980 - > log/51/stdout1980 2> log/51/stderr1980 units returned 1, when expecting 0 1980: exit FAILED == Contents of files in the log/51/ dir after test 1980 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind1980 ./unit/units unit1980 - > log/51/stdout1980 2> log/51/stderr1980 === End of file commands.log === Start of file server.cmd Testnum 1980 === End of file server.cmd === Start of file valgrind1980 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1980 test 1948...[CURLOPT_POST after CURLOPT_UPLOAD reusing handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1948 ./libtest/libtests lib1948 http://127.0.0.1:40089/1948 > log/52/stdout1948 2> log/52/stderr1948 1948: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 1948 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind1948 ./libtest/libtests lib1948 http://127.0.0.1:40089/1948 > log/52/stdout1948 2> log/52/stderr1948 === End of file commands.log === Start of file http_server.log 09:41:40.277824 ====> Client connect 09:41:40.278136 accept_connection 3 returned 4 09:41:40.278319 accept_connection 3 returned 0 09:41:40.278446 Read 93 bytes 09:41:40.278649 Process 93 bytes request 09:41:40.278759 Got request: GET /verifiedserver HTTP/1.1 09:41:40.278859 Are-we-friendly question received 09:41:40.282662 Wrote request (93 bytes) input to log/52/server.input 09:41:40.282884 Identifying ourselves as friends 09:41:40.293763 Response sent (56 bytes) and written to log/52/server.response 09:41:40.293922 special request received, no persistency 09:41:40.294007 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 1948 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind1948 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1948 test 1942...[curl_easy_header with 1xx response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1942 ./libtest/libtests lib1940 http://127.0.0.1:34639/1942 > log/53/stdout1942 2> log/53/stderr1942 1942: stdout FAILED: --- log/53/check-expected 2025-07-18 09:41:41.695577308 +0000 +++ log/53/check-generated 2025-07-18 09:41:41.694577308 +0000 @@ -1,10 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19420002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == maybe different[LF] == Contents of files in the log/53/ dir after test 1942 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19420002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == maybe different[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind1942 ./libtest/libtests lib1940 http://127.0.0.1:34639/1942 > log/53/stdout1942 2> log/53/stderr1942 === End of file commands.log === Start of file http_server.log 09:41:40.204797 ====> Client connect 09:41:40.205084 accept_connection 3 returned 4 09:41:40.205235 accept_connection 3 returned 0 09:41:40.205368 Read 93 bytes 09:41:40.205538 Process 93 bytes request 09:41:40.205658 Got request: GET /verifiedserver HTTP/1.1 09:41:40.205804 Are-we-friendly question received 09:41:40.206086 Wrote request (93 bytes) input to log/53/server.input 09:41:40.206312 Identifying ourselves as friends 09:41:40.210177 Response sent (56 bytes) and written to log/53/server.response 09:41:40.210297 special request received, no persistency 09:41:40.210363 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 1942 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind1942 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1942 test 1947...[curl_easy_nextheader on second request after first did redirects] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1947 ./libtest/libtests lib1947 http://127.0.0.1:43265/1947 http://127.0.0.1:43265/19470003 > log/56/stdout1947 2> log/56/stderr1947 1947: stdout FAILED: --- log/56/check-expected 2025-07-18 09:41:41.751399879 +0000 +++ log/56/check-generated 2025-07-18 09:41:41.747577281 +0000 @@ -1,2 +0,0 @@ -count = 2[LF] -count = 1[LF] == Contents of files in the log/56/ dir after test 1947 === Start of file check-expected count = 2[LF] count = 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind1947 ./libtest/libtests lib1947 http://127.0.0.1:43265/1947 http://127.0.0.1:43265/19470003 > log/56/stdout1947 2> log/56/stderr1947 === End of file commands.log === Start of file http_server.log 09:41:40.333915 ====> Client connect 09:41:40.334183 accept_connection 3 returned 4 09:41:40.334324 accept_connection 3 returned 0 09:41:40.334436 Read 93 bytes 09:41:40.334678 Process 93 bytes request 09:41:40.334786 Got request: GET /verifiedserver HTTP/1.1 09:41:40.334856 Are-we-friendly question received 09:41:40.335070 Wrote request (93 bytes) input to log/56/server.input 09:41:40.335299 Identifying ourselves as friends 09:41:40.336117 Response sent (56 bytes) and written to log/56/server.response 09:41:40.336221 special request received, no persistency 09:41:40.336287 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 1947 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind1947 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1947 test 1946...[curl_easy_header with redirect but get headers from first request] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1946 ./libtest/libtests lib1940 http://127.0.0.1:35945/1946 > log/57/stdout1946 2> log/57/stderr1946 1946: stdout FAILED: --- log/57/check-expected 2025-07-18 09:41:41.803177753 +0000 +++ log/57/check-generated 2025-07-18 09:41:41.801577254 +0000 @@ -1,8 +0,0 @@ - Date == Thu, 01 Nov 2001 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19460002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] == Contents of files in the log/57/ dir after test 1946 === Start of file check-expected Date == Thu, 01 Nov 2001 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19460002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind1946 ./libtest/libtests lib1940 http://127.0.0.1:35945/1946 > log/57/stdout1946 2> log/57/stderr1946 === End of file commands.log === Start of file http_server.log 09:41:40.264790 ====> Client connect 09:41:40.265113 accept_connection 3 returned 4 09:41:40.265265 accept_connection 3 returned 0 09:41:40.265395 Read 93 bytes 09:41:40.265558 Process 93 bytes request 09:41:40.265693 Got request: GET /verifiedserver HTTP/1.1 09:41:40.265780 Are-we-friendly question received 09:41:40.266018 Wrote request (93 bytes) input to log/57/server.input 09:41:40.266219 Identifying ourselves as friends 09:41:40.267908 Response sent (56 bytes) and written to log/57/server.response 09:41:40.268009 special request received, no persistency 09:41:40.268073 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 1946 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind1946 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1946 * starts no server test 1979...[sigv4 canon_string unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1979 ./unit/units unit1979 - > log/60/stdout1979 2> log/60/stderr1979 units returned 1, when expecting 0 1979: exit FAILED == Contents of files in the log/60/ dir after test 1979 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind1979 ./unit/units unit1979 - > log/60/stdout1979 2> log/60/stderr1979 === End of file commands.log === Start of file server.cmd Testnum 1979 === End of file server.cmd === Start of file valgrind1979 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1979 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1945 ./libtest/libtests lib1945 http://hello:43013/1945 127.0.0.1:41557 > log/4/stdout1945 2> log/4/stderr1945 test 1977...[CURLOPT_CURLU and CURLINFO_EFFECTIVE_URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1977 ./libtest/libtests lib1977 http://127.0.0.1:38899/1977 > log/62/stdout1977 2> log/62/stderr1977 1977: stdout FAILED: --- log/62/check-expected 2025-07-18 09:41:41.864577222 +0000 +++ log/62/check-generated 2025-07-18 09:41:41.863577223 +0000 @@ -1,3 +0,0 @@ -effective URL: http://127.0.0.1:38899/1977[LF] -effective URL: http://127.0.0.1:38899/1977?foo[LF] -effective URL: http://127.0.0.1:38899/1977?foo&bar[LF] == Contents of files in the log/62/ dir after test 1977 === Start of file check-expected effective URL: http://127.0.0.1:38899/1977[LF] effective URL: http://127.0.0.1:38899/1977?foo[LF] effective URL: http://127.0.0.1:38899/1977?foo&bar[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind1977 ./libtest/libtests lib1977 http://127.0.0.1:38899/1977 > log/62/stdout1977 2> log/62/stderr1977 === End of file commands.log === Start of file http_server.log 09:41:40.489849 ====> Client connect 09:41:40.490117 accept_connection 3 returned 4 09:41:40.490254 accept_connection 3 returned 0 09:41:40.490365 Read 93 bytes 09:41:40.490436 Process 93 bytes request 09:41:40.490656 Got request: GET /verifiedserver HTTP/1.1 09:41:40.490757 Are-we-friendly question received 09:41:40.491019 Wrote request (93 bytes) input to log/62/server.input 09:41:40.491241 Identifying ourselves as friends 09:41:40.492120 Response sent (56 bytes) and written to log/62/server.response 09:41:40.492226 special request received, no persistency 09:41:40.492290 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 1977 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind1977 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1977 startnew: ./server/servers mqttd --port 0 --pidfile log/11/server/mqtt_server.pid --portfile log/11/server/mqtt_server.port --config log/11/server.cmd --logfile log/11/mqtt_server.log --logdir log/11 RUN: MQTT server is now running PID 157890 on PORT 35769 * pid mqtt => 157890 157890 test 1917...[MQTT PUBLISH with CURLOPT_POST set (no payload)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1917 ./libtest/libtests lib1916 "mqtt://127.0.0.1:35769/%20" > log/11/stdout1917 2> log/11/stderr1917 1917: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 1917 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind1917 ./libtest/libtests lib1916 "mqtt://127.0.0.1:35769/%20" > log/11/stdout1917 2> log/11/stderr1917 === End of file commands.log === Start of file mqtt_server.log 09:41:39.775936 Running IPv4 version 09:41:39.776416 Listening on port 35769 09:41:39.776888 Wrote pid 157890 to log/11/server/mqtt_server.pid 09:41:39.777224 Wrote port 35769 to log/11/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1917 === End of file server.cmd === Start of file valgrind1917 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1917 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind2001 ../src/curl -q --trace-ascii log/29/trace2001 --trace-config all --trace-time http://127.0.0.1:40909/20010001 ftp://127.0.0.1:36763/20010002 file://localhost/build/curl/src/build-curl/tests/log/29/test2001.txt > log/29/stdout2001 2> log/29/stderr2001 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind2005 ../src/curl -q --output log/28/curl2005.out --include --trace-ascii log/28/trace2005 --trace-config all --trace-time --netrc-optional --netrc-file log/28/netrc2005 http://127.0.0.1:37545/ > log/28/stdout2005 2> log/28/stderr2005 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/4/server/http2_server.pid" --logfile "log/4/http2_server.log" --logdir "log/4" --portfile log/4/server/http2_server.port --config log/4/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 158728 port 41557 * pid http-proxy => 158728 158728 test 1945...[curl_easy_nextheader with server + CONNECT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1945 ./libtest/libtests lib1945 http://hello:43013/1945 127.0.0.1:41557 > log/4/stdout1945 2> log/4/stderr1945 1945: stdout FAILED: --- log/4/check-expected 2025-07-18 09:41:42.038195454 +0000 +++ log/4/check-generated 2025-07-18 09:41:42.036577135 +0000 @@ -1,10 +0,0 @@ - Server == from the connect (0/2)[LF] - Silly-thing == yes yes (0/1)[LF] - Date == Thu, 09 Nov 2010 14:49:00 GMT (0/1)[LF] - Server == test with trailing space (1/2)[LF] - Content-Type == text/html (0/1)[LF] - Content-Length == 0 (0/1)[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] - Location == /19450002 (0/1)[LF] == Contents of files in the log/4/ dir after test 1945 === Start of file check-expected Server == from the connect (0/2)[LF] Silly-thing == yes yes (0/1)[LF] Date == Thu, 09 Nov 2010 14:49:00 GMT (0/1)[LF] Server == test with trailing space (1/2)[LF] Content-Type == text/html (0/1)[LF] Content-Length == 0 (0/1)[LF] Set-Cookie == onecookie=data; (0/3)[LF] Set-Cookie == secondcookie=2data; (1/3)[LF] Set-Cookie == cookie3=data3; (2/3)[LF] Location == /19450002 (0/1)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1945 ./libtest/libtests lib1945 http://hello:43013/1945 127.0.0.1:41557 > log/4/stdout1945 2> log/4/stderr1945 === End of file commands.log === Start of file http2_server.log 09:41:40.584383 Run as proxy, CONNECT to host 127.0.0.1 09:41:40.589931 Running HTTP IPv4 version on port 41557 09:41:40.590820 Wrote pid 158728 to log/4/server/http2_server.pid 09:41:40.591457 Wrote port 41557 to log/4/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:40.255932 ====> Client connect 09:41:40.256233 accept_connection 3 returned 4 09:41:40.256417 accept_connection 3 returned 0 09:41:40.256778 Read 93 bytes 09:41:40.256885 Process 93 bytes request 09:41:40.256970 Got request: GET /verifiedserver HTTP/1.1 09:41:40.257052 Are-we-friendly question received 09:41:40.257279 Wrote request (93 bytes) input to log/4/server.input 09:41:40.257458 Identifying ourselves as friends 09:41:40.258235 Response sent (56 bytes) and written to log/4/server.response 09:41:40.258347 special request received, no persistency 09:41:40.258415 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 1945 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind1945 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1945 test 2005...[netrc match with password only in file, no username. machine follows] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind2005 ../src/curl -q --output log/28/curl2005.out --include --trace-ascii log/28/trace2005 --trace-config all --trace-time --netrc-optional --netrc-file log/28/netrc2005 http://127.0.0.1:37545/ > log/28/stdout2005 2> log/28/stderr2005 2005: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 2005 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind2005 ../src/curl -q --output log/28/curl2005.out --include --trace-ascii log/28/trace2005 --trace-config all --trace-time --netrc-optional --netrc-file log/28/netrc2005 http://127.0.0.1:37545/ > log/28/stdout2005 2> log/28/stderr2005 === End of file commands.log === Start of file http_server.log 09:41:41.148113 ====> Client connect 09:41:41.148422 accept_connection 3 returned 4 09:41:41.148732 accept_connection 3 returned 0 09:41:41.148864 Read 93 bytes 09:41:41.148942 Process 93 bytes request 09:41:41.149025 Got request: GET /verifiedserver HTTP/1.1 09:41:41.149093 Are-we-friendly question received 09:41:41.149314 Wrote request (93 bytes) input to log/28/server.input 09:41:41.150626 Identifying ourselves as friends 09:41:41.151456 Response sent (56 bytes) and written to log/28/server.response 09:41:41.151669 special request received, no persistency 09:41:41.151847 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file netrc2005 machine 127.0.0.1 password 5up3r53cr37 machine example.com === End of file netrc2005 === Start of file server.cmd Testnum 2005 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind2005 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2005 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1904 ../src/curl -q --output log/25/curl1904.out --include --trace-ascii log/25/trace1904 --trace-config all --trace-time http://test.1904:41727/we/want/that/page/1904 -p --proxy 127.0.0.1:44775 > log/25/stdout1904 2> log/25/stderr1904 test 2001...[HTTP GET followed by FTP RETR followed by FILE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind2001 ../src/curl -q --trace-ascii log/29/trace2001 --trace-config all --trace-time http://127.0.0.1:40909/20010001 ftp://127.0.0.1:36763/20010002 file://localhost/build/curl/src/build-curl/tests/log/29/test2001.txt > log/29/stdout2001 2> log/29/stderr2001 2001: stdout FAILED: --- log/29/check-expected 2025-07-18 09:41:42.135577085 +0000 +++ log/29/check-generated 2025-07-18 09:41:42.134577085 +0000 @@ -1,12 +0,0 @@ --foo-[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/29/ dir after test 2001 === Start of file check-expected -foo-[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind2001 ../src/curl -q --trace-ascii log/29/trace2001 --trace-config all --trace-time http://127.0.0.1:40909/20010001 ftp://127.0.0.1:36763/20010002 file://localhost/build/curl/src/build-curl/tests/log/29/test2001.txt > log/29/stdout2001 2> log/29/stderr2001 === End of file commands.log === Start of file ftp_server.log 09:41:40.813156 ====> Client connect 09:41:40.814501 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:40.818889 < "USER anonymous" 09:41:40.819983 > "331 We are happy you popped in![CR][LF]" 09:41:40.821063 < "PASS ftp@example.com" 09:41:40.821981 > "230 Welcome you silly person[CR][LF]" 09:41:40.825227 < "PWD" 09:41:40.825535 > "257 "/" is current directory[CR][LF]" 09:41:40.830961 < "EPSV" 09:41:40.831257 ====> Passive DATA channel requested by client 09:41:40.831390 DATA sockfilt for passive data channel starting... 09:41:40.846155 DATA sockfilt for passive data channel started (pid 160018) 09:41:40.847336 DATA sockfilt for passive data channel listens on port 39985 09:41:40.848697 > "229 Entering Passive Mode (|||39985|)[LF]" 09:41:40.849052 Client has been notified that DATA conn will be accepted on port 39985 09:41:40.850344 Client connects to port 39985 09:41:40.850714 ====> Client established passive DATA connection on port 39985 09:41:40.851515 < "TYPE I" 09:41:40.852708 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:40.854154 < "SIZE verifiedserver" 09:41:40.855016 > "213 17[CR][LF]" 09:41:40.856867 < "RETR verifiedserver" 09:41:40.858050 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:40.858927 =====> Closing passive DATA connection... 09:41:40.859137 Server disconnects passive DATA connection 09:41:40.860599 Server disconnected passive DATA connection 09:41:40.860931 DATA sockfilt for passive data channel quits (pid 160018) 09:41:40.862985 DATA sockfilt for passive data channel quit (pid 160018) 09:41:40.863288 =====> Closed passive DATA connection 09:41:40.864020 > "226 File transfer complete[CR][LF]" 09:41:40.902679 < "QUIT" 09:41:40.903458 > "221 bye bye baby[CR][LF]" 09:41:40.907706 MAIN sockfilt said DISC 09:41:40.908490 ====> Client disconnected 09:41:40.909049 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:41.066186 ====> Client connect 09:41:41.068610 Received DATA (on stdin) 09:41:41.068745 > 160 bytes data, server => client 09:41:41.068834 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:41.068920 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:41.069008 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:41.071691 < 16 bytes data, client => server 09:41:41.071844 'USER anonymous\r\n' 09:41:41.072969 Received DATA (on stdin) 09:41:41.073085 > 33 bytes data, server => client 09:41:41.073228 '331 We are happy you popped in!\r\n' 09:41:41.073920 < 22 bytes data, client => server 09:41:41.074055 'PASS ftp@example.com\r\n' 09:41:41.075058 Received DATA (on stdin) 09:41:41.075179 > 30 bytes data, server => client 09:41:41.075321 '230 Welcome you silly person\r\n' 09:41:41.076931 < 5 bytes data, client => server 09:41:41.077084 'PWD\r\n' 09:41:41.079564 Received DATA (on stdin) 09:41:41.079699 > 30 bytes data, server => client 09:41:41.079800 '257 "/" is current directory\r\n' 09:41:41.083680 < 6 bytes data, client => server 09:41:41.083824 'EPSV\r\n' 09:41:41.101556 Received DATA (on stdin) 09:41:41.101715 > 38 bytes data, server => client 09:41:41.101882 '229 Entering Passive Mode (|||39985|)\n' 09:41:41.103291 < 8 bytes data, client => server 09:41:41.103443 'TYPE I\r\n' 09:41:41.105686 Received DATA (on stdin) 09:41:41.105841 > 33 bytes data, server => client 09:41:41.106005 '200 I modify TYPE as you wanted\r\n' 09:41:41.106763 < 21 bytes data, client => server 09:41:41.106910 'SIZE verifiedserver\r\n' 09:41:41.108321 Received DATA (on stdin) 09:41:41.108544 > 8 bytes data, server => client 09:41:41.109014 '213 17\r\n' 09:41:41.109732 < 21 bytes data, client => server 09:41:41.109876 'RETR verifiedserver\r\n' 09:41:41.110992 Received DATA (on stdin) 09:41:41.111173 > 29 bytes data, server => client 09:41:41.111346 '150 Binary junk (17 bytes).\r\n' 09:41:41.117910 Received DATA (on stdin) 09:41:41.118063 > 28 bytes data, server => client 09:41:41.118139 '226 File transfer complete\r\n' 09:41:41.155637 < 6 bytes data, client => server 09:41:41.155794 'QUIT\r\n' 09:41:41.156872 Received DATA (on stdin) 09:41:41.157000 > 18 bytes data, server => client 09:41:41.157621 '221 bye bye baby\r\n' 09:41:41.161140 ====> Client disconnect 09:41:41.161800 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:40.097346 Running IPv4 version 09:41:40.098024 Listening on port 39985 09:41:40.098385 Wrote pid 160018 to log/29/server/ftp_sockdata.pid 09:41:40.099415 Received PING (on stdin) 09:41:40.100392 Received PORT (on stdin) 09:41:40.103763 ====> Client connect 09:41:40.113071 Received DATA (on stdin) 09:41:40.113187 > 17 bytes data, server => client 09:41:40.113262 'WE ROOLZ: 78998\r\n' 09:41:40.113782 Received DISC (on stdin) 09:41:40.113927 ====> Client forcibly disconnected 09:41:40.114895 Received QUIT (on stdin) 09:41:40.115016 quits 09:41:40.115425 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:39.799446 ====> Client connect 09:41:39.799878 accept_connection 3 returned 4 09:41:39.800044 accept_connection 3 returned 0 09:41:39.800158 Read 93 bytes 09:41:39.800235 Process 93 bytes request 09:41:39.800308 Got request: GET /verifiedserver HTTP/1.1 09:41:39.800369 Are-we-friendly question received 09:41:39.800651 Wrote request (93 bytes) input to log/29/server.input 09:41:39.800843 Identifying ourselves as friends 09:41:39.805426 Response sent (57 bytes) and written to log/29/server.response 09:41:39.805610 special request received, no persistency 09:41:39.805680 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40909... * Connected to 127.0.0.1 (127.0.0.1) port 40909 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40909 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 154862 === End of file http_verify.out === Start of file server.cmd Testnum 2001 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 154862 === End of file server.response === Start of file testCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind2023 ./libtest/libtests lib2023 http://127.0.0.1:36559/2023 basic basic > log/33/stdout2023 2> log/33/stderr2023 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind2000 ../src/curl -q --trace-ascii log/49/trace2000 --trace-config all --trace-time ftp://127.0.0.1:42543/2000 file://localhost/build/curl/src/build-curl/tests/log/49/test2000.txt > log/49/stdout2000 2> log/49/stderr2000 2001.txt foo bar bar foo moo === End of file test2001.txt === Start of file valgrind2001 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2001 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/25/server/http2_server.pid" --logfile "log/25/http2_server.log" --logdir "log/25" --portfile log/25/server/http2_server.port --config log/25/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 158158 port 44775 * pid http-proxy => 158158 158158 test 1904...[HTTP CONNECT with 204 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1904 ../src/curl -q --output log/25/curl1904.out --include --trace-ascii log/25/trace1904 --trace-config all --trace-time http://test.1904:41727/we/want/that/page/1904 -p --proxy 127.0.0.1:44775 > log/25/stdout1904 2> log/25/stderr1904 1904: protocol FAILED! There was no content at all in the file log/25/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/25/ dir after test 1904 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind1904 ../src/curl -q --output log/25/curl1904.out --include --trace-ascii log/25/trace1904 --trace-config all --trace-time http://test.1904:41727/we/want/that/page/1904 -p --proxy 127.0.0.1:44775 > log/25/stdout1904 2> log/25/stderr1904 === End of file commands.log === Start of file http2_server.log 09:41:39.213704 Run as proxy, CONNECT to host 127.0.0.1 09:41:39.214539 Running HTTP IPv4 version on port 44775 09:41:39.214953 Wrote pid 158158 to log/25/server/http2_server.pid 09:41:39.215227 Wrote port 44775 to log/25/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:39.923775 ====> Client connect 09:41:39.924214 accept_connection 3 returned 4 09:41:39.924387 accept_connection 3 returned 0 09:41:39.924608 Read 93 bytes 09:41:39.924718 Process 93 bytes request 09:41:39.924827 Got request: GET /verifiedserver HTTP/1.1 09:41:39.924906 Are-we-friendly question received 09:41:39.925131 Wrote request (93 bytes) input to log/25/server.input 09:41:39.925321 Identifying ourselves as friends 09:41:39.926244 Response sent (56 bytes) and written to log/25/server.response 09:41:39.928644 special request received, no persistency 09:41:39.928742 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41727... * Connected to 127.0.0.1 (127.0.0.1) port 41727 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41727 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73784 === End of file http_verify.out === Start of file server.cmd Testnum 1904 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73784 === End of file server.response === Start of file valgrind1904 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1904 test 2023...[HTTP authorization retry (Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind2023 ./libtest/libtests lib2023 http://127.0.0.1:36559/2023 basic basic > log/33/stdout2023 2> log/33/stderr2023 2023: protocol FAILED! There was no content at all in the file log/33/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/33/ dir after test 2023 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind2023 ./libtest/libtests lib2023 http://127.0.0.1:36559/2023 basic basic > log/33/stdout2023 2> log/33/stderr2023 === End of file commands.log === Start of file http_server.log 09:41:41.333911 ====> Client connect 09:41:41.334202 accept_connection 3 returned 4 09:41:41.334365 accept_connection 3 returned 0 09:41:41.335297 Read 93 bytes 09:41:41.335447 Process 93 bytes request 09:41:41.335644 Got request: GET /verifiedserver HTTP/1.1 09:41:41.335744 Are-we-friendly question received 09:41:41.335979 Wrote request (93 bytes) input to log/33/server.input 09:41:41.336162 Identifying ourselves as friends 09:41:41.337873 Response sent (56 bytes) and written to log/33/server.response 09:41:41.337990 special request received, no persistency 09:41:41.338064 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36559... * Connected to 127.0.0.1 (127.0.0.1) port 36559 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36559 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73773 === End of file http_verify.out === Start of file server.cmd Testnum 2023 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73773 === End of file server.response === Start of file valgrind2023 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2023 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2024 ./libtest/libtests lib2023 http://127.0.0.1:33073/2024 basic digest > log/64/stdout2024 2> log/64/stderr2024 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind2032 ./libtest/libtests lib2032 http://127.0.0.1:34903/2032 > log/51/stdout2032 2> log/51/stderr2032 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/49/server/ftp_server.pid" --logfile "log/49/ftp_server.log" --logdir "log/49" --portfile "log/49/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42543 (log/49/server/ftp_server.port) RUN: FTP server is PID 159141 port 42543 * pid ftp => 159141 159141 test 2000...[FTP RETR followed by FILE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind2000 ../src/curl -q --trace-ascii log/49/trace2000 --trace-config all --trace-time ftp://127.0.0.1:42543/2000 file://localhost/build/curl/src/build-curl/tests/log/49/test2000.txt > log/49/stdout2000 2> log/49/stderr2000 2000: stdout FAILED: --- log/49/check-expected 2025-07-18 09:41:42.235554914 +0000 +++ log/49/check-generated 2025-07-18 09:41:42.234577035 +0000 @@ -1,11 +0,0 @@ -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/49/ dir after test 2000 === Start of file check-expected data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind2000 ../src/curl -q --trace-ascii log/49/trace2000 --trace-config all --trace-time ftp://127.0.0.1:42543/2000 file://localhost/build/curl/src/build-curl/tests/log/49/test2000.txt > log/49/stdout2000 2> log/49/stderr2000 === End of file commands.log === Start of file ftp_server.log 09:41:40.886546 FTP server listens on port IPv4/42543 09:41:40.887666 logged pid 159141 in log/49/server/ftp_server.pid 09:41:40.888047 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:40.134874 Running IPv4 version 09:41:40.138712 Listening on port 42543 09:41:40.139104 Wrote pid 160050 to log/49/server/ftp_sockctrl.pid 09:41:40.139415 Wrote port 42543 to log/49/server/ftp_server.port 09:41:40.139669 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 2000 === End of file server.cmd === Start of file test2000.txt foo bar bar foo moo === End of file test2000.txt === Start of file valgrind2000 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2000 test 2024...[HTTP authorization retry (Basic switching to Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2024 ./libtest/libtests lib2023 http://127.0.0.1:33073/2024 basic digest > log/64/stdout2024 2> log/64/stderr2024 2024: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 2024 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2024 ./libtest/libtests lib2023 http://127.0.0.1:33073/2024 basic digest > log/64/stdout2024 2> log/64/stderr2024 === End of file commands.log === Start of file http_server.log 09:41:41.860053 ====> Client connect 09:41:41.860341 accept_connection 3 returned 4 09:41:41.860633 accept_connection 3 returned 0 09:41:41.860798 Read 93 bytes 09:41:41.860885 Process 93 bytes request 09:41:41.860978 Got request: GET /verifiedserver HTTP/1.1 09:41:41.861054 Are-we-friendly question received 09:41:41.861270 Wrote request (93 bytes) input to log/64/server.input 09:41:41.861457 Identifying ourselves as friends 09:41:41.865958 Response sent (56 bytes) and written to log/64/server.response 09:41:41.866083 special request received, no persistency 09:41:41.866154 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 2024 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind2024 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2024 test 2032...[NTLM connection mapping] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind2032 ./libtest/libtests lib2032 http://127.0.0.1:34903/2032 > log/51/stdout2032 2> log/51/stderr2032 2032: protocol FAILED! There was no content at all in the file log/51/server.input. SeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind2003 ../src/curl -q --trace-ascii log/54/trace2003 --trace-config all --trace-time http://127.0.0.1:44921/20030001 ftp://127.0.0.1:41829/20030002 file://localhost/build/curl/src/build-curl/tests/log/54/test2003.txt tftp://127.0.0.1:42792//20030003 tftp://127.0.0.1:42792//20030003 file://localhost/build/curl/src/build-curl/tests/log/54/test2003.txt ftp://127.0.0.1:41829/20030002 http://127.0.0.1:44921/20030001 > log/54/stdout2003 2> log/54/stderr2003 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind2002 ../src/curl -q --trace-ascii log/50/trace2002 --trace-config all --trace-time http://127.0.0.1:45651/20020001 ftp://127.0.0.1:36567/20020002 file://localhost/build/curl/src/build-curl/tests/log/50/test2002.txt tftp://127.0.0.1:55574//20020003 > log/50/stdout2002 2> log/50/stderr2002 rver glitch? Total curl failure? Returned: 1 == Contents of files in the log/51/ dir after test 2032 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/51/valgrind2032 ./libtest/libtests lib2032 http://127.0.0.1:34903/2032 > log/51/stdout2032 2> log/51/stderr2032 === End of file commands.log === Start of file http_server.log 09:41:42.459621 ====> Client connect 09:41:42.459880 accept_connection 3 returned 4 09:41:42.460000 accept_connection 3 returned 0 09:41:42.460098 Read 93 bytes 09:41:42.460164 Process 93 bytes request 09:41:42.460226 Got request: GET /verifiedserver HTTP/1.1 09:41:42.460280 Are-we-friendly question received 09:41:42.460446 Wrote request (93 bytes) input to log/51/server.input 09:41:42.460705 Identifying ourselves as friends 09:41:42.461287 Response sent (56 bytes) and written to log/51/server.response 09:41:42.461376 special request received, no persistency 09:41:42.461430 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34903... * Connected to 127.0.0.1 (127.0.0.1) port 34903 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34903 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73763 === End of file http_verify.out === Start of file server.cmd Testnum 2032 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73763 === End of file server.response === Start of file valgrind2032 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2032 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind2044 ../src/curl -q --output log/25/curl2044.out --include --trace-ascii log/25/trace2044 --trace-config all --trace-time --proto-default DOESNOTEXIST > log/25/stdout2044 2> log/25/stderr2044 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/54/server/tftp_server.pid" --portfile "log/54/server/tftp_server.port" --logfile "log/54/tftp_server.log" --logdir "log/54" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 160102 port 42792 * pid tftp => 160102 160102 test 2003...[HTTP GET, FTP RETR, FILE, TFTP RRQ then again in rev order] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind2003 ../src/curl -q --trace-ascii log/54/trace2003 --trace-config all --trace-time http://127.0.0.1:44921/20030001 ftp://127.0.0.1:41829/20030002 file://localhost/build/curl/src/build-curl/tests/log/54/test2003.txt tftp://127.0.0.1:42792//20030003 tftp://127.0.0.1:42792//20030003 file://localhost/build/curl/src/build-curl/tests/log/54/test2003.txt ftp://127.0.0.1:41829/20030002 http://127.0.0.1:44921/20030001 > log/54/stdout2003 2> log/54/stderr2003 2003: stdout FAILED: --- log/54/check-expected 2025-07-18 09:41:43.178576557 +0000 +++ log/54/check-generated 2025-07-18 09:41:43.169576561 +0000 @@ -1,32 +0,0 @@ --foo-[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] -a chunk of[LF] -data[LF] -returned[LF] - to TFTP client[LF] -a chunk of[LF] -data[LF] -returned[LF] - to TFTP client[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] --foo-[LF] == Contents of files in the log/54/ dir after test 2003 === Start of file check-expected -foo-[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] a chunk of[LF] data[LF] returned[LF] to TFTP client[LF] a chunk of[LF] data[LF] returned[LF] to TFTP client[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/54/valgrind2003 ../src/curl -q --trace-ascii log/54/trace2003 --trace-config all --trace-time http://127.0.0.1:44921/20030001 ftp://127.0.0.1:41829/20030002 file://localhost/build/curl/src/build-curl/tests/log/54/test2003.txt tftp://127.0.0.1:42792//20030003 tftp://127.0.0.1:42792//20030003 file://localhost/build/curl/src/build-curl/tests/log/54/test2003.txt ftp://127.0.0.1:41829/20030002 http://127.0.0.1:44921/20030001 > log/54/stdout2003 2> log/54/stderr2003 === End of file commands.log === Start of file ftp_server.log 09:41:40.852575 ====> Client connect 09:41:40.854688 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:40.858189 < "USER anonymous" 09:41:40.859495 > "331 We are happy you popped in![CR][LF]" 09:41:40.860647 < "PASS ftp@example.com" 09:41:40.861129 > "230 Welcome you silly person[CR][LF]" 09:41:40.863598 < "PWD" 09:41:40.864989 > "257 "/" is current directory[CR][LF]" 09:41:40.867304 < "EPSV" 09:41:40.867936 ====> Passive DATA channel requested by client 09:41:40.868435 DATA sockfilt for passive data channel starting... 09:41:40.881977 DATA sockfilt for passive data channel started (pid 160052) 09:41:40.883045 DATA sockfilt for passive data channel listens on port 35571 09:41:40.883593 > "229 Entering Passive Mode (|||35571|)[LF]" 09:41:40.884019 Client has been notified that DATA conn will be accepted on port 35571 09:41:40.885453 Client connects to port 35571 09:41:40.885735 ====> Client established passive DATA connection on port 35571 09:41:40.886704 < "TYPE I" 09:41:40.887255 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:40.889502 < "SIZE verifiedserver" 09:41:40.890138 > "213 17[CR][LF]" 09:41:40.893132 < "RETR verifiedserver" 09:41:40.893821 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:40.894510 =====> Closing passive DATA connection... 09:41:40.894707 Server disconnects passive DATA connection 09:41:40.897164 Fancy that; client wants to DISC, too 09:41:40.898532 Server disconnected passive DATA connection 09:41:40.899166 DATA sockfilt for passive data channel quits (pid 160052) 09:41:40.901799 DATA sockfilt for passive data channel quit (pid 160052) 09:41:40.902053 =====> Closed passive DATA connection 09:41:40.902354 > "226 File transfer complete[CR][LF]" 09:41:40.937373 < "QUIT" 09:41:40.937846 > "221 bye bye baby[CR][LF]" 09:41:40.942964 MAIN sockfilt said DISC 09:41:40.943434 ====> Client disconnected 09:41:40.944114 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:41.105329 ====> Client connect 09:41:41.108590 Received DATA (on stdin) 09:41:41.108735 > 160 bytes data, server => client 09:41:41.108825 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:41.108909 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:41.108993 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:41.110982 < 16 bytes data, client => server 09:41:41.111169 'USER anonymous\r\n' 09:41:41.112314 Received DATA (on stdin) 09:41:41.112592 > 33 bytes data, server => client 09:41:41.112795 '331 We are happy you popped in!\r\n' 09:41:41.113455 < 22 bytes data, client => server 09:41:41.113668 'PASS ftp@example.com\r\n' 09:41:41.115189 Received DATA (on stdin) 09:41:41.115341 > 30 bytes data, server => client 09:41:41.115443 '230 Welcome you silly person\r\n' 09:41:41.116325 < 5 bytes data, client => server 09:41:41.116552 'PWD\r\n' 09:41:41.117936 Received DATA (on stdin) 09:41:41.118080 > 30 bytes data, server => client 09:41:41.118247 '257 "/" is current directory\r\n' 09:41:41.119698 < 6 bytes data, client => server 09:41:41.119954 'EPSV\r\n' 09:41:41.137302 Received DATA (on stdin) 09:41:41.137625 > 38 bytes data, server => client 09:41:41.137786 '229 Entering Passive Mode (|||35571|)\n' 09:41:41.139154 < 8 bytes data, client => server 09:41:41.139296 'TYPE I\r\n' 09:41:41.140983 Received DATA (on stdin) 09:41:41.141200 > 33 bytes data, server => client 09:41:41.141310 '200 I modify TYPE as you wanted\r\n' 09:41:41.142319 < 21 bytes data, client => server 09:41:41.142538 'SIZE verifiedserver\r\n' 09:41:41.143867 Received DATA (on stdin) 09:41:41.144057 > 8 bytes data, server => client 09:41:41.144133 '213 17\r\n' 09:41:41.145048 < 21 bytes data, client => server 09:41:41.145413 'RETR verifiedserver\r\n' 09:41:41.147458 Received DATA (on stdin) 09:41:41.147680 > 29 bytes data, server => client 09:41:41.147769 '150 Binary junk (17 bytes).\r\n' 09:41:41.156100 Received DATA (on stdin) 09:41:41.156254 > 28 bytes data, server => client 09:41:41.156338 '226 File transfer complete\r\n' 09:41:41.191952 < 6 bytes data, client => server 09:41:41.192098 'QUIT\r\n' 09:41:41.192245 Received DATA (on stdin) 09:41:41.192386 > 18 bytes data, server => client 09:41:41.192637 '221 bye bye baby\r\n' 09:41:41.193363 ====> Client disconnect 09:41:41.198237 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:40.134324 Running IPv4 version 09:41:40.134899 Listening on port 35571 09:41:40.135241 Wrote pid 160052 to log/54/server/ftp_sockdata.pid 09:41:40.135379 Received PING (on stdin) 09:41:40.136068 Received PORT (on stdin) 09:41:40.138913 ====> Client connect 09:41:40.148569 Received DATA (on stdin) 09:41:40.148688 > 17 bytes data, server => client 09:41:40.148765 'WE ROOLZ: 78730\r\n' 09:41:40.149908 ====> Client disconnect 09:41:40.150269 Received DISC (on stdin) 09:41:40.150637 Crikey! Client also wants to disconnect 09:41:40.151437 Received ACKD (on stdin) 09:41:40.153390 Received QUIT (on stdin) 09:41:40.153651 quits 09:41:40.154269 ==========CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind2040 ../src/curl -q --trace-ascii log/31/trace2040 --trace-config all --trace-time -u testuser:testpass http://127.0.0.1:45557/20400100 --next --no-basic http://127.0.0.1:45557/20400200 > log/31/stdout2040 2> log/31/stderr2040 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind2027 ./libtest/libtests lib2023 http://127.0.0.1:38843/2027 digest digest > log/60/stdout2027 2> log/60/stderr2027 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind2029 ./libtest/libtests lib2023 http://127.0.0.1:43265/2029 ntlm basic > log/56/stdout2029 2> log/56/stderr2029 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind2039 ../src/curl -q --output log/48/curl2039.out --include --trace-ascii log/48/trace2039 --trace-config all --trace-time --netrc-optional --netrc-file log/48/netrc2039 ftp://127.0.0.1:39061/ > log/48/stdout2039 2> log/48/stderr2039 ==> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:40.833812 ====> Client connect 09:41:40.834086 accept_connection 3 returned 4 09:41:40.834221 accept_connection 3 returned 0 09:41:40.834928 Read 93 bytes 09:41:40.835084 Process 93 bytes request 09:41:40.835176 Got request: GET /verifiedserver HTTP/1.1 09:41:40.835247 Are-we-friendly question received 09:41:40.835551 Wrote request (93 bytes) input to log/54/server.input 09:41:40.835729 Identifying ourselves as friends 09:41:40.836324 Response sent (56 bytes) and written to log/54/server.response 09:41:40.836426 special request received, no persistency 09:41:40.836556 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44921... * Connected to 127.0.0.1 (127.0.0.1) port 44921 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44921 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73756 === End of file http_verify.out === Start of file server.cmd Testnum 2003 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73756 === End of file server.response === Start of file test2003.txt foo bar bar foo moo === End of file test2003.txt === Start of file tftp_server.log 09:41:41.422975 Wrote pid 160102 to log/54/server/tftp_server.pid 09:41:41.423754 Wrote port 42792 to log/54/server/tftp_server.port 09:41:41.423879 Running IPv4 version on port UDP/42792 === End of file tftp_server.log === Start of file valgrind2003 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2003 * starts no server test 2044...[Attempt to set a default protocol that does not exist] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind2044 ../src/curl -q --output log/25/curl2044.out --include --trace-ascii log/25/trace2044 --trace-config all --trace-time --proto-default DOESNOTEXIST > log/25/stdout2044 2> log/25/stderr2044 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/25/ dir after test 2044 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/25/valgrind2044 ../src/curl -q --output log/25/curl2044.out --include --trace-ascii log/25/trace2044 --trace-config all --trace-time --proto-default DOESNOTEXIST > log/25/stdout2044 2> log/25/stderr2044 === End of file commands.log === Start of file server.cmd Testnum 2044 === End of file server.cmd === Start of file valgrind2044 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2044 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2071 ../src/curl -q --output log/5/curl2071.out --trace-ascii log/5/trace2071 --trace-config all --trace-time file://127.0.0.1/build/curl/src/build-curl/tests/log/5/test2070.txt > log/5/stdout2071 2> log/5/stderr2071 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind2031 ./libtest/libtests lib2023 http://127.0.0.1:40089/2031 ntlm ntlm > log/52/stdout2031 2> log/52/stderr2031 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind2026 ./libtest/libtests lib2023 http://127.0.0.1:32871/2026 digest basic > log/11/stdout2026 2> log/11/stderr2026 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/50/server/tftp_server.pid" --portfile "log/50/server/tftp_server.port" --logfile "log/50/tftp_server.log" --logdir "log/50" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 160157 port 55574 * pid tftp => 160157 160157 test 2002...[HTTP GET followed by FTP RETR followed by FILE followed by TFTP RRQ] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind2002 ../src/curl -q --trace-ascii log/50/trace2002 --trace-config all --trace-time http://127.0.0.1:45651/20020001 ftp://127.0.0.1:36567/20020002 file://localhost/build/curl/src/build-curl/tests/log/50/test2002.txt tftp://127.0.0.1:55574//20020003 > log/50/stdout2002 2> log/50/stderr2002 2002: stdout FAILED: --- log/50/check-expected 2025-07-18 09:41:43.477215126 +0000 +++ log/50/check-generated 2025-07-18 09:41:43.469576410 +0000 @@ -1,16 +0,0 @@ --foo-[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] -a chunk of[LF] -data[LF] -returned[LF] - to TFTP client[LF] == Contents of files in the log/50/ dir after test 2002 === Start of file check-expected -foo-[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] a chunk of[LF] data[LF] returned[LF] to TFTP client[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/50/valgrind2002 ../src/curl -q --trace-ascii log/50/trace2002 --trace-config all --trace-time http://127.0.0.1:45651/20020001 ftp://127.0.0.1:36567/20020002 file://localhost/build/curl/src/build-curl/tests/log/50/test2002.txt tftp://127.0.0.1:55574//20020003 > log/50/stdout2002 2> log/50/stderr2002 === End of file commands.log === Start of file ftp_server.log 09:41:40.885614 ====> Client connect 09:41:40.889635 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:40.896095 < "USER anonymous" 09:41:40.900002 > "331 We are happy you popped in![CR][LF]" 09:41:40.904873 < "PASS ftp@example.com" 09:41:40.905256 > "230 Welcome you silly person[CR][LF]" 09:41:40.909705 < "PWD" 09:41:40.910231 > "257 "/" is current directory[CR][LF]" 09:41:40.911672 < "EPSV" 09:41:40.912050 ====> Passive DATA channel requested by client 09:41:40.912243 DATA sockfilt for passive data channel starting... 09:41:40.952073 DATA sockfilt for passive data channel started (pid 160078) 09:41:40.954307 DATA sockfilt for passive data channel listens on port 40289 09:41:40.955211 > "229 Entering Passive Mode (|||40289|)[LF]" 09:41:40.955500 Client has been notified that DATA conn will be accepted on port 40289 09:41:40.958051 Client connects to port 40289 09:41:40.958577 ====> Client established passive DATA connection on port 40289 09:41:40.960526 < "TYPE I" 09:41:40.961283 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:40.966280 < "SIZE verifiedserver" 09:41:40.969042 > "213 17[CR][LF]" 09:41:40.970093 < "RETR verifiedserver" 09:41:40.970604 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:40.975350 =====> Closing passive DATA connection... 09:41:40.975556 Server disconnects passive DATA connection 09:41:40.976380 Fancy that; client wants to DISC, too 09:41:40.977218 Server disconnected passive DATA connection 09:41:40.977457 DATA sockfilt for passive data channel quits (pid 160078) 09:41:40.979391 DATA sockfilt for passive data channel quit (pid 160078) 09:41:40.979638 =====> Closed passive DATA connection 09:41:40.980026 > "226 File transfer complete[CR][LF]" 09:41:41.014715 < "QUIT" 09:41:41.016245 > "221 bye bye baby[CR][LF]" 09:41:41.020163 MAIN sockfilt said DISC 09:41:41.021039 ====> Client disconnected 09:41:41.021546 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:41.138852 ====> Client connect 09:41:41.143367 Received DATA (on stdin) 09:41:41.143786 > 160 bytes data, server => client 09:41:41.143916 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:41.144026 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:41.144109 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:41.147667 < 16 bytes data, client => server 09:41:41.147818 'USER anonymous\r\n' 09:41:41.150787 Received DATA (on stdin) 09:41:41.150970 > 33 bytes data, server => client 09:41:41.156599 '331 We are happy you popped in!\r\n' 09:41:41.157941 < 22 bytes data, client => server 09:41:41.158091 'PASS ftp@example.com\r\n' 09:41:41.159007 Received DATA (on stdin) 09:41:41.159150 > 30 bytes data, server => client 09:41:41.159222 '230 Welcome you silly person\r\n' 09:41:41.162912 < 5 bytes data, client => server 09:41:41.163052 'PWD\r\n' 09:41:41.163971 Received DATA (on stdin) 09:41:41.164117 > 30 bytes data, server => client 09:41:41.164193 '257 "/" is current directory\r\n' 09:41:41.164847 < 6 bytes data, client => server 09:41:41.164985 'EPSV\r\n' 09:41:41.208935 Received DATA (on stdin) 09:41:41.209154 > 38 bytes data, server => client 09:41:41.209250 '229 Entering Passive Mode (|||40289|)\n' 09:41:41.211372 < 8 bytes data, client => server 09:41:41.211717 'TYPE I\r\n' 09:41:41.215662 Received DATA (on stdin) 09:41:41.215802 > 33 bytes data, server => client 09:41:41.215946 '200 I modify TYPE as you wanted\r\n' 09:41:41.219128 < 21 bytes data, client => server 09:41:41.219287 'SIZE verifiedserver\r\n' 09:41:41.220418 Received DATA (on stdin) 09:41:41.220632 > 8 bytes data, server => client 09:41:41.220941 '213 17\r\n' 09:41:41.222229 < 21 bytes data, client => server 09:41:41.225093 'RETR verifiedserver\r\n' 09:41:41.225573 Received DATA (on stdin) 09:41:41.225693 > 29 bytes data, server => client 09:41:41.225814 '150 Binary junk (17 bytes).\r\n' 09:41:41.234112 Received DATA (on stdin) 09:41:41.234241 > 28 bytes data, server => client 09:41:41.234317 '226 File transfer complete\r\n' 09:41:41.267625 < 6 bytes data, client => server 09:41:41.267796 'QUIT\r\n' 09:41:41.269033 Received DATA (on stdin) 09:41:41.269218 > 18 bytes data, server => client 09:41:41.269437 '221 bye bye baby\r\n' 09:41:41.273617 ====> Client disconnect 09:41:41.274188 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:40.192981 Running IPv4 version 09:41:40.195924 Listening on port 40289 09:41:40.200740 Wrote pid 160078 to log/50/server/ftp_sockdata.pid 09:41:40.201057 Received PING (on stdin) 09:41:40.206266 Received PORT (on stdin) 09:41:40.210567 ====> Client connect 09:41:40.226684 Received DATA (on stdin) 09:41:40.226905 > 17 bytes data, server => client 09:41:40.227427 'WE ROOLZ: 77995\r\n' 09:41:40.228390 ====> Client disconnect 09:41:40.229765 Received DISC (on stdin) 09:41:40.229931 Crikey! Client also wants to disconnect 09:41:40.230372 Received ACKD (on stdin) 09:41:40.231395 Received QUIT (on stdin) 09:41:40.231585 quits 09:41:40.232024 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 09:41:40.849089 ====> Client connect 09:41:40.849427 accept_connection 3 returned 4 09:41:40.849867 accept_connection 3 returned 0 09:41:40.850020 Read 93 bytes 09:41:40.850295 Process 93 bytes request 09:41:40.850392 Got request: GET /verifiedserver HTTP/1.1 09:41:40.850548 Are-we-friendly question received 09:41:40.850893 Wrote request (93 bytes) input to log/50/server.input 09:41:40.851124 Identifying ourselves as friends 09:41:40.852621 Response sent (56 bytes) and written to log/50/server.response 09:41:40.852778 special request received, no persistency 09:41:40.852855 ====> Client disconnect 0 === End of file http_serCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind2025 ./libtest/libtests lib2023 http://127.0.0.1:38899/2025 basic ntlm > log/62/stdout2025 2> log/62/stderr2025 ver.log === Start of file http_verify.log * Trying 127.0.0.1:45651... * Connected to 127.0.0.1 (127.0.0.1) port 45651 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45651 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73759 === End of file http_verify.out === Start of file server.cmd Testnum 2002 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73759 === End of file server.response === Start of file test2002.txt foo bar bar foo moo === End of file test2002.txt === Start of file tftp_server.log 09:41:41.509697 Wrote pid 160157 to log/50/server/tftp_server.pid 09:41:41.510442 Wrote port 55574 to log/50/server/tftp_server.port 09:41:41.510661 Running IPv4 version on port UDP/55574 === End of file tftp_server.log === Start of file valgrind2002 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2002 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind2028 ./libtest/libtests lib2023 http://127.0.0.1:35945/2028 digest ntlm > log/57/stdout2028 2> log/57/stderr2028 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind2053 ../src/curl -q --output log/22/curl2053.out --include --trace-ascii log/22/trace2053 --trace-config all --trace-time http://10.0.0.1:8081/2053 --connect-to 10.0.0.1:8081:127.0.0.1:40073 --next http://[fc00::1]:8082/2053 --connect-to [fc00::1]:8082:127.0.0.1:40073 > log/22/stdout2053 2> log/22/stderr2053 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind2049 ../src/curl -q --output log/46/curl2049.out --include --trace-ascii log/46/trace2049 --trace-config all --trace-time http://www1.example.com:8081/2049 --connect-to ::127.0.0.1:46523 --next http://www2.example.com:8082/2049 --connect-to :8082:127.0.0.1:46523 --next http://www3.example.com:8083/2049 --connect-to www3.example.com::127.0.0.1:46523 --next http://www4.example.com:8084/2049 --connect-to www4.example.com:8084:127.0.0.1:46523 > log/46/stdout2049 2> log/46/stderr2049 test 2071...[basic file:// file with "127.0.0.1" hostname] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2071 ../src/curl -q --output log/5/curl2071.out --trace-ascii log/5/trace2071 --trace-config all --trace-time file://127.0.0.1/build/curl/src/build-curl/tests/log/5/test2070.txt > log/5/stdout2071 2> log/5/stderr2071 2071: data FAILED: --- log/5/check-expected 2025-07-18 09:41:43.594247026 +0000 +++ log/5/check-generated 2025-07-18 09:41:43.592576347 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/5/ dir after test 2071 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2071 ../src/curl -q --output log/5/curl2071.out --trace-ascii log/5/trace2071 --trace-config all --trace-time file://127.0.0.1/build/curl/src/build-curl/tests/log/5/test2070.txt > log/5/stdout2071 2> log/5/stderr2071 === End of file commands.log === Start of file server.cmd Testnum 2071 === End of file server.cmd === Start of file valgrind2071 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2071 test 2026...[HTTP authorization retry (Digest switching to Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind2026 ./libtest/libtests lib2023 http://127.0.0.1:32871/2026 digest basic > log/11/stdout2026 2> log/11/stderr2026 2026: protocol FAILED! There was no content at all in the file log/11/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/11/ dir after test 2026 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/11/valgrind2026 ./libtest/libtests lib2023 http://127.0.0.1:32871/2026 digest basic > log/11/stdout2026 2> log/11/stderr2026 === End of file commands.log === Start of file http_server.log 09:41:42.411757 ====> Client connect 09:41:42.412026 accept_connection 3 returned 4 09:41:42.412175 accept_connection 3 returned 0 09:41:42.412296 Read 93 bytes 09:41:42.412383 Process 93 bytes request 09:41:42.412457 Got request: GET /verifiedserver HTTP/1.1 09:41:42.414694 Are-we-friendly question received 09:41:42.414909 Wrote request (93 bytes) input to log/11/server.input 09:41:42.415075 Identifying ourselves as friends 09:41:42.415835 Response sent (57 bytes) and written to log/11/server.response 09:41:42.415928 special request received, no persistency 09:41:42.415983 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:32871... * Connected to 127.0.0.1 (127.0.0.1) port 32871 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:32871 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 146188 === End of file http_verify.out === Start of file server.cmd Testnum 2026 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 146188 === End of file server.response === Start of file valgrind2026 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2026 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind2075 ../src/curl -q --output log/14/curl2075.out --include --trace-ascii log/14/trace2075 --trace-config all --trace-time --disallow-username-in-url http://username:password@example.com/ > log/14/stdout2075 2> log/14/stderr2075 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind2045 ../src/curl -q --output log/33/curl2045.out --include --trace-ascii log/33/trace2045 --trace-config all --trace-time -H "User-Agent:" -H "Host:" -H "Accept:" --proto-default ftp 127.0.0.1:36895 > log/33/stdout2045 2> log/33/stderr2045 test 2040...[HTTP Basic authorization, then without authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind2040 ../src/curl -q --trace-ascii log/31/trace2040 --trace-config all --trace-time -u testuser:testpass http://127.0.0.1:45557/20400100 --next --no-basic http://127.0.0.1:45557/20400200 > log/31/stdout2040 2> log/31/stderr2040 2040: stdout FAILED: --- log/31/check-expected 2025-07-18 09:41:43.680093443 +0000 +++ log/31/check-generated 2025-07-18 09:41:43.678576304 +0000 @@ -1,2 +0,0 @@ -Finally, this is the real page![LF] -This is a bad password page![LF] == Contents of files in the log/31/ dir after test 2040 === Start of file check-expected Finally, this is the real page![LF] This is a bad password page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/31/valgrind2040 ../src/curl -q --trace-ascii log/31/trace2040 --trace-config all --trace-time -u testuser:testpass http://127.0.0.1:45557/20400100 --next --no-basic http://127.0.0.1:45557/20400200 > log/31/stdout2040 2> log/31/stderr2040 === End of file commands.log === Start of file http_server.log 09:41:42.638036 ====> Client connect 09:41:42.638410 accept_connection 3 returned 4 09:41:42.638765 accept_connection 3 returned 0 09:41:42.639752 Read 93 bytes 09:41:42.639906 Process 93 bytes request 09:41:42.640002 Got request: GET /verifiedserver HTTP/1.1 09:41:42.640089 Are-we-friendly question received 09:41:42.640342 Wrote request (93 bytes) input to log/31/server.input 09:41:42.640649 Identifying ourselves as friends 09:41:42.642430 Response sent (56 bytes) and written to log/31/server.response 09:41:42.644733 special request received, no persistency 09:41:42.644830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45557... * Connected to 127.0.0.1 (127.0.0.1) port 45557 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45557 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73776 === End of file http_verify.out === Start of file server.cmd Testnum 2040 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73776 === End of file server.response === Start of file valgrind2040 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2040 test 2039...[FTP (optional .netrc with 'default' override; no user/pass) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind2039 ../src/curl -q --output log/48/curl2039.out --include --trace-ascii log/48/trace2039 --trace-config all --trace-time --netrc-optional --netrc-file log/48/netrc2039 ftp://127.0.0.1:39061/ > log/48/stdout2039 2> log/48/stderr2039 2039: protocol FAILED! There was no content at all in the file log/48/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/48/ dir after test 2039 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/48/valgrind2039 ../src/curl -q --output log/48/curl2039.out --include --trace-ascii log/48/trace2039 --trace-config all --trace-time --netrc-optional --netrc-file log/48/netrc2039 ftp://127.0.0.1:39061/ > log/48/stdout2039 2> log/48/stderr2039 === End of file commands.log === Start of file ftp_server.log 09:41:42.274857 ====> Client connect 09:41:42.275998 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:42.278895 < "USER anonymous" 09:41:42.280481 > "331 We are happy you popped in![CR][LF]" 09:41:42.282449 < "PASS ftp@example.com" 09:41:42.283018 > "230 Welcome you silly person[CR][LF]" 09:41:42.285133 < "PWD" 09:41:42.286005 > "257 "/" is current directory[CR][LF]" 09:41:42.287695 < "EPSV" 09:41:42.288086 ====> Passive DATA channel requested by client 09:41:42.288256 DATA sockfilt for passive data channel starting... 09:41:42.302227 DATA sockfilt for passive data channel started (pid 160798) 09:41:42.303191 DATA sockfilt for passive data channel listens on port 45915 09:41:42.303630 > "229 Entering Passive Mode (|||45915|)[LF]" 09:41:42.303940 Client has been notified that DATA conn will be accepted on port 45915 09:41:42.306369 Client connects to port 45915 09:41:42.306645 ====> Client established passive DATA connection on port 45915 09:41:42.307456 < "TYPE I" 09:41:42.307891 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:42.336077 < "SIZE verifiedserver" 09:41:42.337003 > "213 17[CR][LF]" 09:41:42.338972 < "RETR verifiedserver" 09:41:42.339399 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:42.340225 =====> Closing passive DATA connection... 09:41:42.340456 Server disconnects passive DATA connection 09:41:42.343325 Server disconnected passive DATA connection 09:41:42.343695 DATA sockfilt for passive data channel quits (pid 160798) 09:41:42.346393 DATA sockfilt for passive data channel quit (pid 160798) 09:41:42.346723 =====> Closed passive DATA connection 09:41:42.347151 > "226 File transfer complete[CR][LF]" 09:41:42.385710 < "QUIT" 09:41:42.386155 > "221 bye bye baby[CR][LF]" 09:41:42.388988 MAIN sockfilt said DISC 09:41:42.389337 ====> Client disconnected 09:41:42.389922 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:42.527996 ====> Client connect 09:41:42.530217 Received DATA (on stdin) 09:41:42.530358 > 160 bytes data, server => client 09:41:42.530441 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:42.530651 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:42.530732 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:42.531391 < 16 bytes data, client => server 09:41:42.531585 'USER anonymous\r\n' 09:41:42.533172 Received DATA (on stdin) 09:41:42.533365 > 33 bytes data, server => client 09:41:42.533742 '331 We are happy you popped in!\r\n' 09:41:42.535342 < 22 bytes data, client => server 09:41:42.535590 'PASS ftp@example.com\r\n' 09:41:42.537110 Received DATA (on stdin) 09:41:42.537230 > 30 bytes data, server => client 09:41:42.537298 '230 Welcome you silly person\r\n' 09:41:42.537922 < 5 bytes data, client => server 09:41:42.538069 'PWD\r\n' 09:41:42.539260 Received DATA (on stdin) 09:41:42.539409 > 30 bytes data, server => client 09:41:42.540014 '257 "/" is current directory\r\n' 09:41:42.540763 < 6 bytes data, client => server 09:41:42.540890 'EPSV\r\n' 09:41:42.557983 Received DATA (on stdin) 09:41:42.558117 > 38 bytes data, server => client 09:41:42.558194 '229 Entering Passive Mode (|||45915|)\n' 09:41:42.559534 < 8 bytes data, client => server 09:41:42.559678 'TYPE I\r\n' 09:41:42.561956 Received DATA (on stdin) 09:41:42.562079 > 33 bytes data, server => client 09:41:42.562163 '200 I modify TYPE as you wanted\r\n' 09:41:42.562760 < 21 bytes data, client => server 09:41:42.562895 'SIZE verifiedserver\r\n' 09:41:42.590274 Received DATA (on stdin) 09:41:42.590427 > 8 bytes data, server => client 09:41:42.591047 '213 17\r\n' 09:41:42.591827 < 21 bytes data, client => server 09:41:42.591985 'RETR verifiedserver\r\n' 09:41:42.594455 Received DATA (on stdin) 09:41:42.594657 > 29 bytes data, server => client 09:41:42.594749 '150 Binary junk (17 bytes).\r\n' 09:41:42.601205 Received DATA (on stdin) 09:41:42.601341 > 28 bytes data, server => client 09:41:42.601425 '226 File transfer complete\r\n' 09:41:42.638658 < 6 bytes data, client => server 09:41:42.638811 'QUIT\r\n' 09:41:42.640246 Received DATA (on stdin) 09:41:42.640383 > 18 bytes data, server => client 09:41:42.640458 '221 bye bye baby\r\n' 09:41:42.641625 ====> Client disconnect 09:41:42.644047 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:42.554229 Running IPv4 version 09:41:42.554945 Listening on port 45915 09:41:42.555409 Wrote pid 160798 to log/48/server/ftp_sockdata.pid 09:41:42.555670 Received PING (on stdin) 09:41:42.556348 Received PORT (on stdin) 09:41:42.559863 ====> Client connect 09:41:42.595071 Received DATA (on stdin) 09:41:42.595244 > 17 bytes data, server => client 09:41:42.595340 'WE ROOLZ: 77544\r\n' 09:41:42.595693 Received DISC (on stdin) 09:41:42.595850 ====> Client forcibly disconnected 09:41:42.597914 Received QUIT (on stdin) 09:41:42.598079 quits 09:41:42.598707 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc2039 # the following two lines were created while testing curl default login userdef password passwddef machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc2039 === Start of file server.cmd Testnum 2039 === End of file server.cmd === Start of file valgrind2039 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2039 test 2031...[HTTP authorization retry (NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind2031 ./libtest/libtests lib2023 http://127.0.0.1:40089/2031 ntlm ntlm > log/52/stdout2031 2> log/52/stderr2031 2031: protocol FAILED! There was no content at all in the file log/52/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/52/ dir after test 2031 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/52/valgrind2031 ./libtest/libtests lib2023 http://127.0.0.1:40089/2031 ntlm ntlm > log/52/stdout2031 2> log/52/stderr2031 === End of file commands.log === Start of file http_server.log 09:41:42.466615 ====> Client connect 09:41:42.466871 accept_connection 3 returned 4 09:41:42.466988 accept_connection 3 returned 0 09:41:42.467082 Read 93 bytes 09:41:42.467142 Process 93 bytes request 09:41:42.467201 Got request: GET /verifiedserver HTTP/1.1 09:41:42.467256 Are-we-friendly question received 09:41:42.467435 Wrote request (93 bytes) input to log/52/server.input 09:41:42.467691 Identifying ourselves as friends 09:41:42.468280 Response sent (56 bytes) and written to log/52/server.response 09:41:42.468376 special request received, no persistency 09:41:42.468432 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40089... * Connected to 127.0.0.1 (127.0.0.1) port 40089 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40089 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73758 === End of file http_verify.out === Start of file server.cmd Testnum 2031 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73758 === End of file server.response === Start of file valgrind2031 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2031 test 2029...[HTTP authorization retry (NTLM switching to Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind2029 ./libtest/libtests lib2023 http://127.0.0.1:43265/2029 ntlm basic > log/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind2062 ../src/curl -q --output log/38/curl2062.out --include --trace-ascii log/38/trace2062 --trace-config all --trace-time http://127.0.0.1:33511/2062 -u testuser:testpass --digest > log/38/stdout2062 2> log/38/stderr2062 56/stdout2029 2> log/56/stderr2029 2029: protocol FAILED! There was no content at all in the file log/56/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/56/ dir after test 2029 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/56/valgrind2029 ./libtest/libtests lib2023 http://127.0.0.1:43265/2029 ntlm basic > log/56/stdout2029 2> log/56/stderr2029 === End of file commands.log === Start of file http_server.log 09:41:42.468394 ====> Client connect 09:41:42.468878 accept_connection 3 returned 4 09:41:42.469074 accept_connection 3 returned 0 09:41:42.470058 Read 93 bytes 09:41:42.470228 Process 93 bytes request 09:41:42.470307 Got request: GET /verifiedserver HTTP/1.1 09:41:42.470375 Are-we-friendly question received 09:41:42.470692 Wrote request (93 bytes) input to log/56/server.input 09:41:42.470872 Identifying ourselves as friends 09:41:42.472360 Response sent (56 bytes) and written to log/56/server.response 09:41:42.472532 special request received, no persistency 09:41:42.472628 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43265... * Connected to 127.0.0.1 (127.0.0.1) port 43265 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43265 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73754 === End of file http_verify.out === Start of file server.cmd Testnum 2029 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73754 === End of file server.response === Start of file valgrind2029 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2029 test 2027...[HTTP authorization retry (Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind2027 ./libtest/libtests lib2023 http://127.0.0.1:38843/2027 digest digest > log/60/stdout2027 2> log/60/stderr2027 2027: protocol FAILED! There was no content at all in the file log/60/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/60/ dir after test 2027 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/60/valgrind2027 ./libtest/libtests lib2023 http://127.0.0.1:38843/2027 digest digest > log/60/stdout2027 2> log/60/stderr2027 === End of file commands.log === Start of file http_server.log 09:41:42.423059 ====> Client connect 09:41:42.423355 accept_connection 3 returned 4 09:41:42.423655 accept_connection 3 returned 0 09:41:42.424549 Read 93 bytes 09:41:42.424695 Process 93 bytes request 09:41:42.424779 Got request: GET /verifiedserver HTTP/1.1 09:41:42.424856 Are-we-friendly question received 09:41:42.425094 Wrote request (93 bytes) input to log/60/server.input 09:41:42.425281 Identifying ourselves as friends 09:41:42.429789 Response sent (56 bytes) and written to log/60/server.response 09:41:42.429940 special request received, no persistency 09:41:42.430027 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38843... * Connected to 127.0.0.1 (127.0.0.1) port 38843 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38843 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73750 === End of file http_verify.out === Start of file server.cmd Testnum 2027 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73750 === End of file server.response === Start of file valgrind2027 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2027 test 2025...[HTTP authorization retry (Basic switching to NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind2025 ./libtest/libtests lib2023 http://127.0.0.1:38899/2025 basic ntlm > log/62/stdout2025 2> log/62/stderr2025 2025: protocol FAILED! There was no content at all in the file log/62/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/62/ dir after test 2025 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/62/valgrind2025 ./libtest/libtests lib2023 http://127.0.0.1:38899/2025 basic ntlm > log/62/stdout2025 2> log/62/stderr2025 === End of file commands.log === Start of file http_server.log 09:41:42.405655 ====> Client connect 09:41:42.405940 accept_connection 3 returned 4 09:41:42.406080 accept_connection 3 returned 0 09:41:42.40CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind2074 ../src/curl -q --output log/27/curl2074.out --include --trace-ascii log/27/trace2074 --trace-config all --trace-time http://127.0.0.1:42323/2074 --oauth2-bearer mF_9.B5f-4.1JqM > log/27/stdout2074 2> log/27/stderr2074 6202 Read 93 bytes 09:41:42.406287 Process 93 bytes request 09:41:42.406367 Got request: GET /verifiedserver HTTP/1.1 09:41:42.406433 Are-we-friendly question received 09:41:42.406756 Wrote request (93 bytes) input to log/62/server.input 09:41:42.406941 Identifying ourselves as friends 09:41:42.411699 Response sent (56 bytes) and written to log/62/server.response 09:41:42.411814 special request received, no persistency 09:41:42.411880 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:38899... * Connected to 127.0.0.1 (127.0.0.1) port 38899 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38899 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73749 === End of file http_verify.out === Start of file server.cmd Testnum 2025 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73749 === End of file server.response === Start of file valgrind2025 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2025 * starts no server test 2075...[Verify usernames are not allowed in url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind2075 ../src/curl -q --output log/14/curl2075.out --include --trace-ascii log/14/trace2075 --trace-config all --trace-time --disallow-username-in-url http://username:password@example.com/ > log/14/stdout2075 2> log/14/stderr2075 curl returned 1, when expecting 67 2075: exit FAILED == Contents of files in the log/14/ dir after test 2075 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind2075 ../src/curl -q --output log/14/curl2075.out --include --trace-ascii log/14/trace2075 --trace-config all --trace-time --disallow-username-in-url http://username:password@example.com/ > log/14/stdout2075 2> log/14/stderr2075 === End of file commands.log === Start of file server.cmd Testnum 2075 === End of file server.cmd === Start of file valgrind2075 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2075 test 2053...[Connect to specific host with IP addresses] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind2053 ../src/curl -q --output log/22/curl2053.out --include --trace-ascii log/22/trace2053 --trace-config all --trace-time http://10.0.0.1:8081/2053 --connect-to 10.0.0.1:8081:127.0.0.1:40073 --next http://[fc00::1]:8082/2053 --connect-to [fc00::1]:8082:127.0.0.1:40073 > log/22/stdout2053 2> log/22/stderr2053 2053: protocol FAILED! There was no content at all in the file log/22/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/22/ dir after test 2053 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind2053 ../src/curl -q --output log/22/curl2053.out --include --trace-ascii log/22/trace2053 --trace-config all --trace-time http://10.0.0.1:8081/2053 --connect-to 10.0.0.1:8081:127.0.0.1:40073 --next http://[fc00::1]:8082/2053 --connect-to [fc00::1]:8082:127.0.0.1:40073 > log/22/stdout2053 2> log/22/stderr2053 === End of file commands.log === Start of file http_server.log 09:41:42.782392 ====> Client connect 09:41:42.782776 accept_connection 3 returned 4 09:41:42.782906 accept_connection 3 returned 0 09:41:42.783397 Read 93 bytes 09:41:42.783592 Process 93 bytes request 09:41:42.783687 Got request: GET /verifiedserver HTTP/1.1 09:41:42.783749 Are-we-friendly question received 09:41:42.783943 Wrote request (93 bytes) input to log/22/server.input 09:41:42.784088 Identifying ourselves as friends 09:41:42.784661 Response sent (56 bytes) and written to log/22/server.response 09:41:42.784770 special request received, no persistency 09:41:42.784824 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40073... * Connected to 127.0.0.1 (127.0.0.1) port 40073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40073 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73785 === End of file http_verify.out === Start of file server.cmd Testnum 2053 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73785 === End of file server.response === Start of file valgrind2053 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind2030 ./libtest/libtests lib2023 http://127.0.0.1:34639/2030 ntlm digest > log/53/stdout2030 2> log/53/stderr2030 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2072 ../src/curl -q --output log/3/curl2072.out --trace-ascii log/3/trace2072 --trace-config all --trace-time file://///build/curl/src/build-curl/tests/log/3/test2072.txt > log/3/stdout2072 2> log/3/stderr2072 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind2047 ../src/curl -q --include --trace-ascii log/29/trace2047 --trace-config all --trace-time http://åäö.se/2047 -x 127.0.0.1:40909 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/29/stdout2047 2> log/29/stderr2047 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind2066 ../src/curl -q --output log/23/curl2066.out --include --trace-ascii log/23/trace2066 --trace-config all --trace-time http://127.0.0.1:42467/2066 -u testuser:test2pass --digest > log/23/stdout2066 2> log/23/stderr2066 in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2053 test 2045...[Set the default protocol to ftp for a schemeless URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind2045 ../src/curl -q --output log/33/curl2045.out --include --trace-ascii log/33/trace2045 --trace-config all --trace-time -H "User-Agent:" -H "Host:" -H "Accept:" --proto-default ftp 127.0.0.1:36895 > log/33/stdout2045 2> log/33/stderr2045 curl returned 1, when expecting 8 2045: exit FAILED == Contents of files in the log/33/ dir after test 2045 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind2045 ../src/curl -q --output log/33/curl2045.out --include --trace-ascii log/33/trace2045 --trace-config all --trace-time -H "User-Agent:" -H "Host:" -H "Accept:" --proto-default ftp 127.0.0.1:36895 > log/33/stdout2045 2> log/33/stderr2045 === End of file commands.log === Start of file ftp_server.log 09:41:42.525597 ====> Client connect 09:41:42.527158 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:42.536493 < "USER anonymous" 09:41:42.536956 > "331 We are happy you popped in![CR][LF]" 09:41:42.538392 < "PASS ftp@example.com" 09:41:42.538837 > "230 Welcome you silly person[CR][LF]" 09:41:42.542249 < "PWD" 09:41:42.542640 > "257 "/" is current directory[CR][LF]" 09:41:42.544524 < "EPSV" 09:41:42.546898 ====> Passive DATA channel requested by client 09:41:42.547134 DATA sockfilt for passive data channel starting... 09:41:42.562093 DATA sockfilt for passive data channel started (pid 161147) 09:41:42.566120 DATA sockfilt for passive data channel listens on port 36455 09:41:42.566541 > "229 Entering Passive Mode (|||36455|)[LF]" 09:41:42.566864 Client has been notified that DATA conn will be accepted on port 36455 09:41:42.569137 Client connects to port 36455 09:41:42.569519 ====> Client established passive DATA connection on port 36455 09:41:42.570378 < "TYPE I" 09:41:42.572896 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:42.573534 < "SIZE verifiedserver" 09:41:42.573989 > "213 18[CR][LF]" 09:41:42.577683 < "RETR verifiedserver" 09:41:42.579970 > "150 Binary junk (18 bytes).[CR][LF]" 09:41:42.580681 =====> Closing passive DATA connection... 09:41:42.580988 Server disconnects passive DATA connection 09:41:42.583869 Server disconnected passive DATA connection 09:41:42.584146 DATA sockfilt for passive data channel quits (pid 161147) 09:41:42.588016 DATA sockfilt for passive data channel quit (pid 161147) 09:41:42.588259 =====> Closed passive DATA connection 09:41:42.589284 > "226 File transfer complete[CR][LF]" 09:41:42.625399 < "QUIT" 09:41:42.625733 > "221 bye bye baby[CR][LF]" 09:41:42.634885 MAIN sockfilt said DISC 09:41:42.635265 ====> Client disconnected 09:41:42.636016 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:42.778780 ====> Client connect 09:41:42.784996 Received DATA (on stdin) 09:41:42.785130 > 160 bytes data, server => client 09:41:42.785217 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:42.785290 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:42.785371 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:42.788647 < 16 bytes data, client => server 09:41:42.788798 'USER anonymous\r\n' 09:41:42.790660 Received DATA (on stdin) 09:41:42.790800 > 33 bytes data, server => client 09:41:42.790882 '331 We are happy you popped in!\r\n' 09:41:42.791541 < 22 bytes data, client => server 09:41:42.791685 'PASS ftp@example.com\r\n' 09:41:42.792538 Received DATA (on stdin) 09:41:42.792683 > 30 bytes data, server => client 09:41:42.792754 '230 Welcome you silly person\r\n' 09:41:42.793276 < 5 bytes data, client => server 09:41:42.793407 'PWD\r\n' 09:41:42.796352 Received DATA (on stdin) 09:41:42.796559 > 30 bytes data, server => client 09:41:42.796657 '257 "/" is current directory\r\n' 09:41:42.797672 < 6 bytes data, client => server 09:41:42.797825 'EPSV\r\n' 09:41:42.820951 Received DATA (on stdin) 09:41:42.821109 > 38 bytes data, server => client 09:41:42.821221 '229 Entering Passive Mode (|||36455|)\n' 09:41:42.822739 < 8 bytes data, client => server 09:41:42.822967 'TYPE I\r\n' 09:41:42.824533 Received DATA (on stdin) 09:41:42.824694 > 33 bytes data, server => client 09:41:42.824777 '200 I modify TYPE as you wanted\r\n' 09:41:42.825345 < 21 bytes data, client => server 09:41:42.825539 'SIZE verifiedserver\r\n' 09:41:42.827740 Received DATA (on stdin) 09:41:42.827899 > 8 bytes data, server => client 09:41:42.827968 '213 18\r\n' 09:41:42.830680 < 21 bytes data, client => server 09:41:42.830817 'RETR verifiedserver\r\n' 09:41:42.831975 Received DATA (on stdin) 09:41:42.832121 > 29 bytes data, server => client 09:41:42.834995 '150 Binary junk (18 bytes).\r\n' 09:41:42.842291 Received DATA (on stdin) 09:41:42.842426 > 28 bytes data, server => client 09:41:42.842724 '226 File transfer complete\r\n' 09:41:42.877229 < 6 bytes data, client => server 09:41:42.877387 'QUIT\r\n' 09:41:42.881581 Received DATA (on stdin) 09:41:42.881748 > 18 bytes data, server => client 09:41:42.881833 '221 bye bye baby\r\n' 09:41:42.885664 ====> Client disconnect 09:41:42.890060 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:42.814214 Running IPv4 version 09:41:42.814816 Listening on port 36455 09:41:42.815183 Wrote pid 161147 to log/33/server/ftp_sockdata.pid 09:41:42.815368 Received PING (on stdin) 09:41:42.816258 Received PORT (on stdin) 09:41:42.822610 ====> Client connect 09:41:42.834132 Received DATA (on stdin) 09:41:42.834274 > 18 bytes data, server => client 09:41:42.834344 'WE ROOLZ: 100684\r\n' 09:41:42.834983 Received DISC (on stdin) 09:41:42.835131 ====> Client forcibly disconnected 09:41:42.838199 Received QUIT (on stdin) 09:41:42.838350 quits 09:41:42.838826 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY welcome HTTP/1.1 200 OK\r\nContent-Length: 21\r\n\r\n500 Weird FTP Reply Testnum 2045 === End of file server.cmd === Start of file valgrind2045 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind2064 ../src/curl -q --output log/32/curl2064.out --include --trace-ascii log/32/trace2064 --trace-config all --trace-time http://127.0.0.1:45607/2064 -u testuser:test2pass --digest > log/32/stdout2064 2> log/32/stderr2064 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2051 ../src/curl -q --include --trace-ascii log/4/trace2051 --trace-config all --trace-time http://127.0.0.1:43013/2051 -w "%{num_connects}\n" --next --connect-to ::127.0.0.1:43013 http://127.0.0.1:43013/2051 -w "%{num_connects}\n" --next http://127.0.0.1:43013/2051 -w "%{num_connects}\n" > log/4/stdout2051 2> log/4/stderr2051 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind2058 ../src/curl -q --output log/12/curl2058.out --include --trace-ascii log/12/trace2058 --trace-config all --trace-time http://127.0.0.1:45579/2058 -u auser:apasswd --digest -T log/12/2058 -x http://127.0.0.1:45579 -C 2 -X GET > log/12/stdout2058 2> log/12/stderr2058 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind2046 ../src/curl -q --include --trace-ascii log/49/trace2046 --trace-config all --trace-time http://åäö.se:42667/2046 --resolve xn--4cab6c.se:42667:127.0.0.1 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/49/stdout2046 2> log/49/stderr2046 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind2080 ../src/curl -q --output log/34/curl2080.out --include --trace-ascii log/34/trace2080 --trace-config all --trace-time -K log/34/config2080 file://de\>v/null > log/34/stdout2080 2> log/34/stderr2080 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind2077 ../src/curl -q --output log/10/curl2077.out --include --trace-ascii log/10/trace2077 --trace-config all --trace-time http://127.0.0.1:36913/2077 --fail --negotiate > log/10/stdout2077 2> log/10/stderr2077 nd: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2045 test 2062...[HTTP with RFC7616 SHA-512-256 Digest authorization and userhash=false] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind2062 ../src/curl -q --output log/38/curl2062.out --include --trace-ascii log/38/trace2062 --trace-config all --trace-time http://127.0.0.1:33511/2062 -u testuser:testpass --digest > log/38/stdout2062 2> log/38/stderr2062 2062: protocol FAILED! There was no content at all in the file log/38/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/38/ dir after test 2062 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind2062 ../src/curl -q --output log/38/curl2062.out --include --trace-ascii log/38/trace2062 --trace-config all --trace-time http://127.0.0.1:33511/2062 -u testuser:testpass --digest > log/38/stdout2062 2> log/38/stderr2062 === End of file commands.log === Start of file http_server.log 09:41:42.946003 ====> Client connect 09:41:42.946367 accept_connection 3 returned 4 09:41:42.946688 accept_connection 3 returned 0 09:41:42.946861 Read 93 bytes 09:41:42.946958 Process 93 bytes request 09:41:42.947029 Got request: GET /verifiedserver HTTP/1.1 09:41:42.947104 Are-we-friendly question received 09:41:42.947320 Wrote request (93 bytes) input to log/38/server.input 09:41:42.947564 Identifying ourselves as friends 09:41:42.948329 Response sent (56 bytes) and written to log/38/server.response 09:41:42.948432 special request received, no persistency 09:41:42.948583 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33511... * Connected to 127.0.0.1 (127.0.0.1) port 33511 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33511 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73775 === End of file http_verify.out === Start of file server.cmd Testnum 2062 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73775 === End of file server.response === Start of file valgrind2062 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2062 test 2049...[Connect to specific host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind2049 ../src/curl -q --output log/46/curl2049.out --include --trace-ascii log/46/trace2049 --trace-config all --trace-time http://www1.example.com:8081/2049 --connect-to ::127.0.0.1:46523 --next http://www2.example.com:8082/2049 --connect-to :8082:127.0.0.1:46523 --next http://www3.example.com:8083/2049 --connect-to www3.example.com::127.0.0.1:46523 --next http://www4.example.com:8084/2049 --connect-to www4.example.com:8084:127.0.0.1:46523 > log/46/stdout2049 2> log/46/stderr2049 2049: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 2049 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind2049 ../src/curl -q --output log/46/curl2049.out --include --trace-ascii log/46/trace2049 --trace-config all --trace-time http://www1.example.com:8081/2049 --connect-to ::127.0.0.1:46523 --next http://www2.example.com:8082/2049 --connect-to :8082:127.0.0.1:46523 --next http://www3.example.com:8083/2049 --connect-to www3.example.com::127.0.0.1:46523 --next http://www4.example.com:8084/2049 --connect-to www4.example.com:8084:127.0.0.1:46523 > log/46/stdout2049 2> log/46/stderr2049 === End of file commands.log === Start of file http_server.log 09:41:42.765593 ====> Client connect 09:41:42.765842 accept_connection 3 returned 4 09:41:42.765965 accept_connection 3 returned 0 09:41:42.766713 Read 93 bytes 09:41:42.766832 Process 93 bytes request 09:41:42.766908 Got request: GET /verifiedserver HTTP/1.1 09:41:42.766964 Are-we-friendly question received 09:41:42.767145 Wrote request (93 bytes) input to log/46/server.input 09:41:42.767275 Identifying ourselves as friends 09:41:42.768613 Response sent (56 bytes) and written to log/46/server.response 09:41:42.768719 special request received, no persistency 09:41:42.768772 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46523... * Connected to 127.0.0.1 (127.0.0.1) port 46523 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46523 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75714 === End of file http_verify.out === Start of file server.cmd Testnum 2049 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75714 === End of file server.response === Start of file valgrind2049 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind2052 ../src/curl -q --include --trace-ascii log/24/trace2052 --trace-config all --trace-time http://www.example.com:39259/2052 --resolve www.example.com:39259:127.0.0.1 -w "%{num_connects}\n" --next --resolve -www.example.com:39259 --connect-to ::127.0.0.1:39259 http://www.example.com:39259/2052 -w "%{num_connects}\n" > log/24/stdout2052 2> log/24/stderr2052 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind2204 ../src/curl -q --output log/30/curl2204.out --include --trace log/30/trace2204 --trace-config all --trace-time mqtt://127.0.0.1:42935/2204 -u testuser:testpasswd > log/30/stdout2204 2> log/30/stderr2204 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind2060 ../src/curl -q --output log/43/curl2060.out --include --trace-ascii log/43/trace2060 --trace-config all --trace-time http://127.0.0.1:41267/2060 -u auser:apasswd --digest -T log/43/2060 -x http://127.0.0.1:41267 -C 2 -X GET > log/43/stdout2060 2> log/43/stderr2060 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind2065 ../src/curl -q --output log/26/curl2065.out --include --trace-ascii log/26/trace2065 --trace-config all --trace-time http://127.0.0.1:46481/2065 -u testuser:test2pass --digest > log/26/stdout2065 2> log/26/stderr2065 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind2054 ../src/curl -q --output log/18/curl2054.out --include --trace-ascii log/18/trace2054 --trace-config all --trace-time http://127.0.0.1:41285/2054 --connect-to foo::bar: --connect-to :123::456 --next http://www.example.com:41285/2054 --connect-to www.example.com::127.0.0.1: --connect-to www.example.com::foo: --next http://127.0.0.1:8083/2054 --connect-to :8083::41285 --connect-to :8083::123 --next http://www.example.com:8084/2054 --connect-to www.example.com:8084:127.0.0.1:41285 --connect-to www.example.com:8084:foo:123 > log/18/stdout2054 2> log/18/stderr2054 grind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2049 test 2028...[HTTP authorization retry (Digest switching to NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind2028 ./libtest/libtests lib2023 http://127.0.0.1:35945/2028 digest ntlm > log/57/stdout2028 2> log/57/stderr2028 2028: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 2028 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind2028 ./libtest/libtests lib2023 http://127.0.0.1:35945/2028 digest ntlm > log/57/stdout2028 2> log/57/stderr2028 === End of file commands.log === Start of file http_server.log 09:41:42.394977 ====> Client connect 09:41:42.395296 accept_connection 3 returned 4 09:41:42.395621 accept_connection 3 returned 0 09:41:42.395871 Read 93 bytes 09:41:42.396088 Process 93 bytes request 09:41:42.396201 Got request: GET /verifiedserver HTTP/1.1 09:41:42.396290 Are-we-friendly question received 09:41:42.396955 Wrote request (93 bytes) input to log/57/server.input 09:41:42.397175 Identifying ourselves as friends 09:41:42.400752 Response sent (56 bytes) and written to log/57/server.response 09:41:42.400879 special request received, no persistency 09:41:42.400976 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 2028 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind2028 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2028 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2078 ../src/curl -q --output log/7/curl2078.out --include --trace-ascii log/7/trace2078 --trace-config all --trace-time http://127.0.0.1:44647/2078 --negotiate --data name=value > log/7/stdout2078 2> log/7/stderr2078 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind2059 ../src/curl -q --output log/61/curl2059.out --include --trace-ascii log/61/trace2059 --trace-config all --trace-time http://127.0.0.1:44381/2059 -u auser:apasswd --digest -T log/61/2059 -x http://127.0.0.1:44381 -C 2 -X GET > log/61/stdout2059 2> log/61/stderr2059 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind2068 ../src/curl -q --output log/16/curl2068.out --include --trace-ascii log/16/trace2068 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:34829/2068 > log/16/stdout2068 2> log/16/stderr2068 prechecked /usr/bin/perl -e "print 'Test requires a Unix system' if($^O eq 'MSWin32' || $^O eq 'cygwin' || $^O eq 'dos' || $^O eq 'msys');" test 2072...[file:// with Unix path resolution behavior for the case of extra slashes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2072 ../src/curl -q --output log/3/curl2072.out --trace-ascii log/3/trace2072 --trace-config all --trace-time file://///build/curl/src/build-curl/tests/log/3/test2072.txt > log/3/stdout2072 2> log/3/stderr2072 2072: data FAILED: --- log/3/check-expected 2025-07-18 09:41:43.973463934 +0000 +++ log/3/check-generated 2025-07-18 09:41:43.971576155 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/3/ dir after test 2072 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2072 ../src/curl -q --output log/3/curl2072.out --trace-ascii log/3/trace2072 --trace-config all --trace-time file://///build/curl/src/build-curl/tests/log/3/test2072.txt > log/3/stdout2072 2> log/3/stderr2072 === End of file commands.log === Start of file server.cmd Testnum 2072 === End of file server.cmd === Start of file test2072.txt foo bar bar foo moo === End of file test2072.txt === Start of file valgrind2072 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2072 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind2061 ../src/curl -q --output log/41/curl2061.out --include --trace-ascii log/41/trace2061 --trace-config all --trace-time http://127.0.0.1:35093/2061 -u testuser:testpass --digest > log/41/stdout2061 2> log/41/stderr2061 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind2063 ../src/curl -q --output log/37/curl2063.out --include --trace-ascii log/37/trace2063 --trace-config all --trace-time http://127.0.0.1:37551/2063 -u testuser:testpass --digest > log/37/stdout2063 2> log/37/stderr2063 test 2051...[Connect to specific host: Reuse existing connections if possible] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2051 ../src/curl -q --include --trace-ascii log/4/trace2051 --trace-config all --trace-time http://127.0.0.1:43013/2051 -w "%{num_connects}\n" --next --connect-to ::127.0.0.1:43013 http://127.0.0.1:43013/2051 -w "%{num_connects}\n" --next http://127.0.0.1:43013/2051 -w "%{num_connects}\n" > log/4/stdout2051 2> log/4/stderr2051 2051: stdout FAILED: --- log/4/check-expected 2025-07-18 09:41:44.042187780 +0000 +++ log/4/check-generated 2025-07-18 09:41:44.040576120 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain[LF] -[LF] -OK[LF] -1[LF] -OK[LF] -0[LF] -OK[LF] -0[LF] == Contents of files in the log/4/ dir after test 2051 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain[LF] [LF] OK[LF] 1[LF] OK[LF] 0[LF] OK[LF] 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2051 ../src/curl -q --include --trace-ascii log/4/trace2051 --trace-config all --trace-time http://127.0.0.1:43013/2051 -w "%{num_connects}\n" --next --connect-to ::127.0.0.1:43013 http://127.0.0.1:43013/2051 -w "%{num_connects}\n" --next http://127.0.0.1:43013/2051 -w "%{num_connects}\n" > log/4/stdout2051 2> log/4/stderr2051 === End of file commands.log === Start of file http_server.log 09:41:42.781992 ====> Client connect 09:41:42.782302 accept_connection 3 returned 4 09:41:42.782566 accept_connection 3 returned 0 09:41:42.782750 Read 93 bytes 09:41:42.782839 Process 93 bytes request 09:41:42.782922 Got request: GET /verifiedserver HTTP/1.1 09:41:42.782993 Are-we-friendly question received 09:41:42.783224 Wrote request (93 bytes) input to log/4/server.input 09:41:42.783398 Identifying ourselves as friends 09:41:42.784202 Response sent (56 bytes) and written to log/4/server.response 09:41:42.784336 special request received, no persistency 09:41:42.784422 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43013... * Connected to 127.0.0.1 (127.0.0.1) port 43013 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43013 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73808 === End of file http_verify.out === Start of file server.cmd Testnum 2051 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73808 === End of file server.response === Start of file valgrind2051 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2051 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind2067 ../src/curl -q --output log/17/curl2067.out --include --trace-ascii log/17/trace2067 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:32895/2067 > log/17/stdout2067 2> log/17/stderr2067 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2081 ../src/curl -q --include --trace-ascii log/8/trace2081 --trace-config all --trace-time http://user:pass@127.0.0.1:46129/we/want/our/2081#anchor --location --referer ';auto' --write-out '%{referer}\n' > log/8/stdout2081 2> log/8/stderr2081 test 2077...[curl --fail --negotiate to unauthenticated service fails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind2077 ../src/curl -q --output log/10/curl2077.out --include --trace-ascii log/10/trace2077 --trace-config all --trace-time http://127.0.0.1:36913/2077 --fail --negotiate > log/10/stdout2077 2> log/10/stderr2077 2077: data FAILED: --- log/10/check-expected 2025-07-18 09:41:44.099576091 +0000 +++ log/10/check-generated 2025-07-18 09:41:44.098576091 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Content-Length: 23[CR][LF] -[CR][LF] -This IS the real page![LF] == Contents of files in the log/10/ dir after test 2077 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Content-Length: 23[CR][LF] [CR][LF] This IS the real page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind2077 ../src/curl -q --output log/10/curl2077.out --include --trace-ascii log/10/trace2077 --trace-config all --trace-time http://127.0.0.1:36913/2077 --fail --negotiate > log/10/stdout2077 2> log/10/stderr2077 === End of file commands.log === Start of file http_server.log 09:41:43.160856 ====> Client connect 09:41:43.161164 accept_connection 3 returned 4 09:41:43.161322 accept_connection 3 returned 0 09:41:43.161704 Read 93 bytes 09:41:43.161996 Process 93 bytes request 09:41:43.162093 Got request: GET /verifiedserver HTTP/1.1 09:41:43.162168 Are-we-friendly question received 09:41:43.162409 Wrote request (93 bytes) input to log/10/server.input 09:41:43.165749 Identifying ourselves as friends 09:41:43.166636 Response sent (56 bytes) and written to log/10/server.response 09:41:43.166754 special request received, no persistency 09:41:43.166824 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36913... * Connected to 127.0.0.1 (127.0.0.1) port 36913 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36913 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73804 === End of file http_verify.out === Start of file server.cmd Testnum 2077 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73804 === End of file server.response === Start of file valgrind2077 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2077 test 2058...[HTTP Digest with PUT, resumed upload, modified method and SHA-256] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind2058 ../src/curl -q --output log/12/curl2058.out --include --trace-ascii log/12/trace2058 --trace-config all --trace-time http://127.0.0.1:45579/2058 -u auser:apasswd --digest -T log/12/2058 -x http://127.0.0.1:45579 -C 2 -X GET > log/12/stdout2058 2> log/12/stderr2058 2058: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 2058 === Start of file 2058 test === End of file 2058 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind2058 ../src/curl -q --output log/12/curl2058.out --include --trace-ascii log/12/trace2058 --trace-config all --trace-time http://127.0.0.1:45579/2058 -u auser:apasswd --digest -T log/12/2058 -x http://127.0.0.1:45579 -C 2 -X GET > log/12/stdout2058 2> log/12/stderr2058 === End of file commands.log === Start of file http_server.log 09:41:42.878825 ====> Client connect 09:41:42.879087 accept_connection 3 returned 4 09:41:42.879224 accept_connection 3 returned 0 09:41:42.879340 Read 93 bytes 09:41:42.879426 Process 93 bytes request 09:41:42.879669 Got request: GET /verifiedserver HTTP/1.1 09:41:42.879749 Are-we-friendly question received 09:41:42.879956 Wrote request (93 bytes) input to log/12/server.input 09:41:42.880117 Identifying ourselves as friends 09:41:42.880741 Response sent (56 bytes) and written to log/12/server.response 09:41:42.880834 special request received, no persistency 09:41:42.880885 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45579... * Connected to 127.0.0.1 (127.0.0.1) port 45579 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45579 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73799 === End of file http_verify.out === Start of file server.cmd Testnum 2058 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73799 === End of file server.response === Start of file valgrind2058 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2082 ./libtest/libtests lib2082 127.0.0.1:40633/2082 > log/1/stdout2082 2> log/1/stderr2082 nd: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2058 test 2066...[HTTP with RFC7616 Digest, bad password, SHA-256 and userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind2066 ../src/curl -q --output log/23/curl2066.out --include --trace-ascii log/23/trace2066 --trace-config all --trace-time http://127.0.0.1:42467/2066 -u testuser:test2pass --digest > log/23/stdout2066 2> log/23/stderr2066 2066: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 2066 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind2066 ../src/curl -q --output log/23/curl2066.out --include --trace-ascii log/23/trace2066 --trace-config all --trace-time http://127.0.0.1:42467/2066 -u testuser:test2pass --digest > log/23/stdout2066 2> log/23/stderr2066 === End of file commands.log === Start of file http_server.log 09:41:42.950385 ====> Client connect 09:41:42.950856 accept_connection 3 returned 4 09:41:42.951031 accept_connection 3 returned 0 09:41:42.951737 Read 93 bytes 09:41:42.951883 Process 93 bytes request 09:41:42.951978 Got request: GET /verifiedserver HTTP/1.1 09:41:42.952067 Are-we-friendly question received 09:41:42.952323 Wrote request (93 bytes) input to log/23/server.input 09:41:42.952641 Identifying ourselves as friends 09:41:42.953232 Response sent (56 bytes) and written to log/23/server.response 09:41:42.953346 special request received, no persistency 09:41:42.953417 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 2066 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind2066 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2066 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind2076 ../src/curl -q --output log/13/curl2076.out --include --trace-ascii log/13/trace2076 --trace-config all --trace-time "http://127.0.0.1:44087/2076?query" -u testuser:testpass --digest > log/13/stdout2076 2> log/13/stderr2076 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind2306 ./libtest/libtests lib2306 http://127.0.0.1:34239/2306 http://127.0.0.1:34239/23060002 > log/45/stdout2306 2> log/45/stderr2306 test 2052...[--connect-to: do not mix connections with and without a "connect to host"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind2052 ../src/curl -q --include --trace-ascii log/24/trace2052 --trace-config all --trace-time http://www.example.com:39259/2052 --resolve www.example.com:39259:127.0.0.1 -w "%{num_connects}\n" --next --resolve -www.example.com:39259 --connect-to ::127.0.0.1:39259 http://www.example.com:39259/2052 -w "%{num_connects}\n" > log/24/stdout2052 2> log/24/stderr2052 2052: stdout FAILED: --- log/24/check-expected 2025-07-18 09:41:44.190418305 +0000 +++ log/24/check-generated 2025-07-18 09:41:44.189576045 +0000 @@ -1,9 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain[LF] -[LF] -OK[LF] -1[LF] -OK[LF] -1[LF] == Contents of files in the log/24/ dir after test 2052 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain[LF] [LF] OK[LF] 1[LF] OK[LF] 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind2052 ../src/curl -q --include --trace-ascii log/24/trace2052 --trace-config all --trace-time http://www.example.com:39259/2052 --resolve www.example.com:39259:127.0.0.1 -w "%{num_connects}\n" --next --resolve -www.example.com:39259 --connect-to ::127.0.0.1:39259 http://www.example.com:39259/2052 -w "%{num_connects}\n" > log/24/stdout2052 2> log/24/stderr2052 === End of file commands.log === Start of file http_server.log 09:41:42.785733 ====> Client connect 09:41:42.786059 accept_connection 3 returned 4 09:41:42.786230 accept_connection 3 returned 0 09:41:42.786925 Read 93 bytes 09:41:42.787090 Process 93 bytes request 09:41:42.787181 Got request: GET /verifiedserver HTTP/1.1 09:41:42.787260 Are-we-friendly question received 09:41:42.787559 Wrote request (93 bytes) input to log/24/server.input 09:41:42.787779 Identifying ourselves as friends 09:41:42.788297 Response sent (56 bytes) and written to log/24/server.response 09:41:42.788404 special request received, no persistency 09:41:42.788531 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39259... * Connected to 127.0.0.1 (127.0.0.1) port 39259 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39259 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73787 === End of file http_verify.out === Start of file server.cmd Testnum 2052 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73787 === End of file server.response === Start of file valgrind2052 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2052 test 2074...[HTTP GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind2074 ../src/curl -q --output log/27/curl2074.out --include --trace-ascii log/27/trace2074 --trace-config all --trace-time http://127.0.0.1:42323/2074 --oauth2-bearer mF_9.B5f-4.1JqM > log/27/stdout2074 2> log/27/stderr2074 2074: protocol FAILED! There was no content at all in the file log/27/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/27/ dir after test 2074 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind2074 ../src/curl -q --output log/27/curl2074.out --include --trace-ascii log/27/trace2074 --trace-config all --trace-time http://127.0.0.1:42323/2074 --oauth2-bearer mF_9.B5f-4.1JqM > log/27/stdout2074 2> log/27/stderr2074 === End of file commands.log === Start of file http_server.log 09:41:43.129879 ====> Client connect 09:41:43.130171 accept_connection 3 returned 4 09:41:43.130356 accept_connection 3 returned 0 09:41:43.130620 Read 93 bytes 09:41:43.130760 Process 93 bytes request 09:41:43.130857 Got request: GET /verifiedserver HTTP/1.1 09:41:43.130947 Are-we-friendly question received 09:41:43.131220 Wrote request (93 bytes) input to log/27/server.input 09:41:43.131448 Identifying ourselves as friends 09:41:43.133201 Response sent (56 bytes) and written to log/27/server.response 09:41:43.133384 special request received, no persistency 09:41:43.144672 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42323... * Connected to 127.0.0.1 (127.0.0.1) port 42323 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42323 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73783 === End of file http_verify.out === Start of file server.cmd Testnum 2074 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73783 === End of file server.response === Start of file valgrind2074 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2074 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind2085 ./libtest/libtests lib2082 127.0.0.1:44255/2085#redir > log/36/stdout2085 2> log/36/stderr2085 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2073 ../src/curl -q --output log/2/curl2073.out --include --trace-ascii log/2/trace2073 --trace-config all --trace-time http://127.0.0.1:39659/2073 -F 'name=a;filename=a.pdf' --next http://127.0.0.1:39659/2073 -F 'name=b;filename=b.jpg' > log/2/stdout2073 2> log/2/stderr2073 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind2308 ./libtest/libtests lib2308 http://127.0.0.1:42819/2308 > log/42/stdout2308 2> log/42/stderr2308 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 2047...[Connection reuse with IDN host name over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind2047 ../src/curl -q --include --trace-ascii log/29/trace2047 --trace-config all --trace-time http://åäö.se/2047 -x 127.0.0.1:40909 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/29/stdout2047 2> log/29/stderr2047 2047: stdout FAILED: --- log/29/check-expected 2025-07-18 09:41:44.255448412 +0000 +++ log/29/check-generated 2025-07-18 09:41:44.254576012 +0000 @@ -1,18 +0,0 @@ -HTTP/1.1 302 OK swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Content-Type: text/plain[LF] -Location: ./20470001[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain; charset=us-ascii[LF] -[LF] -OK[LF] -1[LF] -1[LF] -3[LF] -http://%c3%a5%c3%a4%c3%b6.se/20470001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/29/ dir after test 2047 === Start of file check-expected HTTP/1.1 302 OK swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Content-Type: text/plain[LF] Location: ./20470001[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain; charset=us-ascii[LF] [LF] OK[LF] 1[LF] 1[LF] 3[LF] http://%c3%a5%c3%a4%c3%b6.se/20470001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind2047 ../src/curl -q --include --trace-ascii log/29/trace2047 --trace-config all --trace-time http://åäö.se/2047 -x 127.0.0.1:40909 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/29/stdout2047 2> log/29/stderr2047 === End of file commands.log === Start of file http_server.log 09:41:41.791597 ====> Client connect 09:41:41.791978 accept_connection 3 returned 4 09:41:41.792137 accept_connection 3 returned 0 09:41:41.792261 Read 93 bytes 09:41:41.792342 Process 93 bytes request 09:41:41.792419 Got request: GET /verifiedserver HTTP/1.1 09:41:41.792592 Are-we-friendly question received 09:41:41.792824 Wrote request (93 bytes) input to log/29/server.input 09:41:41.792998 Identifying ourselves as friends 09:41:41.793755 Response sent (57 bytes) and written to log/29/server.response 09:41:41.793865 special request received, no persistency 09:41:41.793934 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40909... * Connected to 127.0.0.1 (127.0.0.1) port 40909 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40909 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 154862 === End of file http_verify.out === Start of file server.cmd Testnum 2047 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 154862 === End of file server.response === Start of file valgrind2047 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2047 test 2064...[HTTP with RFC7616 Digest authorization with bad password and SHA256] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind2064 ../src/curl -q --output log/32/curl2064.out --include --trace-ascii log/32/trace2064 --trace-config all --trace-time http://127.0.0.1:45607/2064 -u testuser:test2pass --digest > log/32/stdout2064 2> log/32/stderr2064 2064: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 2064 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind2064 ../src/curl -q --output log/32/curl2064.out --include --trace-ascii log/32/trace2064 --trace-config all --trace-time http://127.0.0.1:45607/2064 -u testuser:test2pass --digest > log/32/stdout2064 2> log/32/stderr2064 === End of file commands.log === Start of file http_server.log 09:41:42.963776 ====> Client connect 09:41:42.964087 accept_connection 3 returned 4 09:41:42.964252 accept_connection 3 returned 0 09:41:42.964859 Read 93 bytes 09:41:42.964995 Process 93 bytes request 09:41:42.965070 Got request: GET /verifiedserver HTTP/1.1 09:41:42.965133 Are-we-friendly question received 09:41:42.965357 Wrote request (93 bytes) input to log/32/server.input 09:41:42.965625 Identifying ourselves as friends 09:41:42.966186 Response sent (56 bytes) and written to log/32/server.response 09:41:42.966291 special request received, no persistency 09:41:42.966361 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 2064 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind2064 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2069 ../src/curl -q --output log/64/curl2069.out --include --trace-ascii log/64/trace2069 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33073/2069 > log/64/stdout2069 2> log/64/stderr2069 longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2064 * starts no server test 2080...[config file with overly long option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind2080 ../src/curl -q --output log/34/curl2080.out --include --trace-ascii log/34/trace2080 --trace-config all --trace-time -K log/34/config2080 file://de\>v/null > log/34/stdout2080 2> log/34/stderr2080 curl returned 1, when expecting 26 2080: exit FAILED == Contents of files in the log/34/ dir after test 2080 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind2080 ../src/curl -q --output log/34/curl2080.out --include --trace-ascii log/34/trace2080 --trace-config all --trace-time -K log/34/config2080 file://de\>v/null > log/34/stdout2080 2> log/34/stderr2080 === End of file commands.log === Start of file config2080 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD === End of file config2080 === Start of file server.cmd Testnum 2080 === End of file server.cmd === Start of file valgrind2080 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2080 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind2309 ./libtest/libtests lib2309 http://github.com log/9/netrc2309 http://127.0.0.1:46607/ > log/9/stdout2309 2> log/9/stderr2309 setenv LC_ALL = en_US.UTF-8 setenv LC_CTYPE = en_US.UTF-8 test 2046...[Connection reuse with IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind2046 ../src/curl -q --include --trace-ascii log/49/trace2046 --trace-config all --trace-time http://åäö.se:42667/2046 --resolve xn--4cab6c.se:42667:127.0.0.1 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/49/stdout2046 2> log/49/stderr2046 2046: stdout FAILED: --- log/49/check-expected 2025-07-18 09:41:44.364575956 +0000 +++ log/49/check-generated 2025-07-18 09:41:44.363575957 +0000 @@ -1,18 +0,0 @@ -HTTP/1.1 302 OK swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Content-Type: text/plain[LF] -Location: ./20460001[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain; charset=us-ascii[LF] -[LF] -OK[LF] -1[LF] -1[LF] -3[LF] -http://%c3%a5%c3%a4%c3%b6.se:42667/20460001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/49/ dir after test 2046 === Start of file check-expected HTTP/1.1 302 OK swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Content-Type: text/plain[LF] Location: ./20460001[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain; charset=us-ascii[LF] [LF] OK[LF] 1[LF] 1[LF] 3[LF] http://%c3%a5%c3%a4%c3%b6.se:42667/20460001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind2046 ../src/curl -q --include --trace-ascii log/49/trace2046 --trace-config all --trace-time http://åäö.se:42667/2046 --resolve xn--4cab6c.se:42667:127.0.0.1 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/49/stdout2046 2> log/49/stderr2046 === End of file commands.log === Start of file http_server.log 09:41:42.798866 ====> Client connect 09:41:42.799151 accept_connection 3 returned 4 09:41:42.799302 accept_connection 3 returned 0 09:41:42.799424 Read 93 bytes 09:41:42.799672 Process 93 bytes request 09:41:42.799775 Got request: GET /verifiedserver HTTP/1.1 09:41:42.799852 Are-we-friendly question received 09:41:42.800072 Wrote request (93 bytes) input to log/49/server.input 09:41:42.800272 Identifying ourselves as friends 09:41:42.800986 Response sent (56 bytes) and written to log/49/server.response 09:41:42.801090 special request received, no persistency 09:41:42.801153 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 2046 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind2046 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2046 test 2030...[HTTP authorization retry (NTLM switching to Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind2030 ./libtest/libtests lib2023 http://127.0.0.1:34639/2030 ntlm digest > log/53/stdout2030 2> log/53/stderr2030 2030: protocol FAILED! There was no content at all in the file log/53/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/53/ dir after test 2030 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind2030 ./libtest/libtests lib2023 http://127.0.0.1:34639/2030 ntlm digest > log/53/stdout2030 2> log/53/stderr2030 === End of file commands.log === Start of file http_server.log 09:41:42.446927 ====> Client connect 09:41:42.447458 accept_connection 3 returned 4 09:41:42.447853 accept_connection 3 returned 0 09:41:42.448684 Read 93 bytes 09:41:42.448814 Process 93 bytes request 09:41:42.448889 Got request: GET /verifiedserver HTTP/1.1 09:41:42.448951 Are-we-friendly question received 09:41:42.449136 Wrote request (93 bytes) input to log/53/server.input 09:41:42.449281 Identifying ourselves as friends 09:41:42.450717 Response sent (56 bytes) and written to log/53/server.response 09:41:42.450816 special request received, no persistency 09:41:42.450869 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34639... * Connected to 127.0.0.1 (127.0.0.1) port 34639 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34639 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73761 === End of file http_verify.out === Start of file server.cmd Testnum 2030 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73761 === End of file server.response === Start of file valgrind2030 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2030 test 2082...[Pre-request callback for HTTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2082 ./libtest/libtests lib2082 127.0.0.1:40633/2082 > log/1/stdout2082 2> log/1/stderr2082 2082: stdout FAILED: --- log/1/check-expected 2025-07-18 09:41:44.461225907 +0000 +++ log/1/check-generated 2025-07-18 09:41:44.459575908 +0000 @@ -1,5 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 40633[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/1/ dir after test 2082 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 40633[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2082 ./libtest/libtests lib2082 127.0.0.1:40633/2082 > log/1/stdout2082 2> log/1/stderr2082 === End of file commands.log === Start of file http_server.log 09:41:43.366886 ====> Client connect 09:41:43.367168 accept_connection 3 returned 4 09:41:43.367338 accept_connection 3 returned 0 09:41:43.368241 Read 93 bytes 09:41:43.368379 Process 93 bytes request 09:41:43.368458 Got request: GET /verifiedserver HTTP/1.1 09:41:43.368701 Are-we-friendly question received 09:41:43.368917 Wrote request (93 bytes) input to log/1/server.input 09:41:43.369090 Identifying ourselves as friends 09:41:43.370804 Response sent (56 bytes) and written to log/1/server.response 09:41:43.370911 special request received, no persistency 09:41:43.370973 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 2082 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind2082 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2082 test 2073...[HTTP form posts with handle reset] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2073 ../src/curl -q --output log/2/curl2073.out --include --trace-ascii log/2/trace2073 --trace-config all --trace-time http://127.0.0.1:39659/2073 -F 'name=a;filename=a.pdf' --next http://127.0.0.1:39659/2073 -F 'name=b;filename=b.jpg' > log/2/stdout2073 2> log/2/stderr2073 2073: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 2073 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2073 ../src/curl -q --output log/2/curl2073.out --include --trace-ascii log/2/trace2073 --trace-config all --trace-time http://127.0.0.1:39659/2073 -F 'name=a;filename=a.pdf' --next http://127.0.0.1:39659/2073 -F 'name=b;filename=b.jpg' > log/2/stdout2073 2> log/2/stderr2073 === End of file commands.log === Start of file http_server.log 09:41:43.172234 ====> Client connect 09:41:43.172669 accept_connection 3 returned 4 09:41:43.172845 accept_connection 3 returned 0 09:41:43.172986 Read 93 bytes 09:41:43.173100 Process 93 bytes request 09:41:43.173197 Got request: GET /verifiedserver HTTP/1.1 09:41:43.173273 Are-we-friendly question received 09:41:43.173626 Wrote request (93 bytes) input to log/2/server.input 09:41:43.173842 Identifying ourselves as friends 09:41:43.174641 Response sent (56 bytes) and written to log/2/server.response 09:41:43.174750 special request received, no persistency 09:41:43.174815 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 2073 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind2073 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2073 test 2078...[curl --negotiate should not send empty POST request only] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2078 ../src/curl -q --output log/7/curl2078.out --include --trace-ascii log/7/trace2078 --trace-config all --trace-time http://127.0.0.1:44647/2078 --negotiate --data name=value > log/7/stdout2078 2> log/7/stderr2078 2078: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 2078 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2078 ../src/curl -q --output log/7/curl2078.out --include --trace-ascii log/7/trace2078 --trace-config all --trace-time http://127.0.0.1:44647/2078 --negotiate --data name=value > log/7/stdout2078 2> log/7/stderr2078 === End of file commands.log === Start of file http_server.log 09:41:43.184635 ====> Client connect 09:41:43.184940 accept_connection 3 returned 4 09:41:43.185082 accept_connection 3 returned 0 09:41:43.185199 Read 93 bytes 09:41:43.185286 Process 93 bytes request 09:41:43.185371 Got request: GET /verifiedserver HTTP/1.1 09:41:43.185569 Are-we-friendly question received 09:41:43.185848 Wrote request (93 bytes) input to log/7/server.input 09:41:43.186038 Identifying ourselves as friends 09:41:43.186797 Response sent (56 bytes) and written to log/7/server.response 09:41:43.186893 special request received, no persistency 09:41:43.186953 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 2078 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind2078 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2078 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind2084 ./libtest/libtests lib2082 127.0.0.1:33071/2084#err > log/55/stdout2084 2> log/55/stderr2084 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind2050 ../src/curl -q --output log/28/curl2050.out --include --trace-ascii log/28/trace2050 --trace-config all --trace-time http://www.example.com.2050/2050 --connect-to ::connect.example.com.2050:37545 -x 127.0.0.1:34983 > log/28/stdout2050 2> log/28/stderr2050 test 2081...[Automatic referrer credential and anchor stripping check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2081 ../src/curl -q --include --trace-ascii log/8/trace2081 --trace-config all --trace-time http://user:pass@127.0.0.1:46129/we/want/our/2081#anchor --location --referer ';auto' --write-out '%{referer}\n' > log/8/stdout2081 2> log/8/stderr2081 2081: stdout FAILED: --- log/8/check-expected 2025-07-18 09:41:44.536575869 +0000 +++ log/8/check-generated 2025-07-18 09:41:44.536026410 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/20810002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -HTTP/1.1 200 This is another weirdo text message swsclose[CR][LF] -Connection: close[CR][LF] -[CR][LF] -Thanks for following.[LF] -http://127.0.0.1:46129/we/want/our/2081[LF] == Contents of files in the log/8/ dir after test 2081 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/20810002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] HTTP/1.1 200 This is another weirdo text message swsclose[CR][LF] Connection: close[CR][LF] [CR][LF] Thanks for following.[LF] http://127.0.0.1:46129/we/want/our/2081[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2081 ../src/curl -q --include --trace-ascii log/8/trace2081 --trace-config all --trace-time http://user:pass@127.0.0.1:46129/we/want/our/2081#anchor --location --referer ';auto' --write-out '%{referer}\n' > log/8/stdout2081 2> log/8/stderr2081 === End of file commands.log === Start of file http_server.log 09:41:43.246977 ====> Client connect 09:41:43.247281 accept_connection 3 returned 4 09:41:43.247428 accept_connection 3 returned 0 09:41:43.248315 Read 93 bytes 09:41:43.248456 Process 93 bytes request 09:41:43.248623 Got request: GET /verifiedserver HTTP/1.1 09:41:43.248704 Are-we-friendly question received 09:41:43.248911 Wrote request (93 bytes) input to log/8/server.input 09:41:43.249087 Identifying ourselves as friends 09:41:43.251808 Response sent (56 bytes) and written to log/8/server.response 09:41:43.251920 special request received, no persistency 09:41:43.251991 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 2081 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind2081 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2081 test 2309...[HTTP with .netrc using duped easy handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind2309 ./libtest/libtests lib2309 http://github.com log/9/netrc2309 http://127.0.0.1:46607/ > log/9/stdout2309 2> log/9/stderr2309 2309: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 2309 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind2309 ./libtest/libtests lib2309 http://github.com log/9/netrc2309 http://127.0.0.1:46607/ > log/9/stdout2309 2> log/9/stderr2309 === End of file commands.log === Start of file http_server.log 09:41:43.515204 ====> Client connect 09:41:43.515960 accept_connection 3 returned 4 09:41:43.516178 accept_connection 3 returned 0 09:41:43.518556 Read 93 bytes 09:41:43.518776 Process 93 bytes request 09:41:43.518938 Got request: GET /verifiedserver HTTP/1.1 09:41:43.519085 Are-we-friendly question received 09:41:43.519339 Wrote request (93 bytes) input to log/9/server.input 09:41:43.519635 Identifying ourselves as friends 09:41:43.520420 Response sent (56 bytes) and written to log/9/server.response 09:41:43.521688 special request received, no persistency 09:41:43.521773 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46607... * Connected to 127.0.0.1 (127.0.0.1) port 46607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73797 === End of file http_verify.out === Start of file netrc2309 machine github.com login daniel password $y$j9T$WUVjiVvDbRAWafDLs6cab1$01NX.oaZKf5lw8MR2Nk9Yaxv4CqbE0IaDF.GpGxPul1 === End of file netrc2309 === Start of file server.cmd Testnum 2309 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73797 === End of file server.response === Start of file valgrind2309 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2309 test 2076...[HTTP with digest auth and URI contains query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind2076 ../src/curl -q --output log/13/curl2076.out --include --trace-ascii log/13/trace2076 --trace-config all --trace-time "http://127.0.0.1:44087/2076?query" -u testuser:testpass --digest > log/13/stdout2076 2> log/13/stderr2076 2076: protocol FAILED! There was no content at all in the file log/13/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/13/ dir after test 2076 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind2076 ../src/curl -q --output log/13/curl2076.out --include --trace-ascii log/13/trace2076 --trace-config all --trace-time "http://127.0.0.1:44087/2076?query" -u testuser:testpass --digest > log/13/stdout2076 2> log/13/stderr2076 === End of file commands.log === Start of file http_server.log 09:41:43.214079 ====> Client connect 09:41:43.214382 accept_connection 3 returned 4 09:41:43.214740 accept_connection 3 returned 0 09:41:43.214913 Read 93 bytes 09:41:43.215006 Process 93 bytes request 09:41:43.215086 Got request: GET /verifiedserver HTTP/1.1 09:41:43.215175 Are-we-friendly question received 09:41:43.215455 Wrote request (93 bytes) input to log/13/server.input 09:41:43.217205 Identifying ourselves as friends 09:41:43.220898 Response sent (56 bytes) and written to log/13/server.response 09:41:43.221030 special request received, no persistency 09:41:43.221112 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44087... * Connected to 127.0.0.1 (127.0.0.1) port 44087 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44087 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73796 === End of file http_verify.out === Start of file server.cmd Testnum 2076 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73796 === End of file server.response === Start of file valgrind2076 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2076 test 2068...[HTTP POST Digest with SHA-512-256, userhash and set Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind2068 ../src/curl -q --output log/16/curl2068.out --include --trace-ascii log/16/trace2068 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:34829/2068 > log/16/stdout2068 2> log/16/stderr2068 2068: protocol FAILED! There was no content at all in the file log/16/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/16/ dir after test 2068 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind2068 ../src/curl -q --output log/16/curl2068.out --include --trace-ascii log/16/trace2068 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:34829/2068 > log/16/stdout2068 2> log/16/stderr2068 === End of file commands.log === Start of file http_server.log 09:41:42.994964 ====> Client connect 09:41:42.995296 accept_connection 3 returned 4 09:41:42.995587 accept_connection 3 returned 0 09:41:42.995764 Read 93 bytes 09:41:42.995851 Process 93 bytes request 09:41:42.995940 Got request: GET /verifiedserver HTTP/1.1 09:41:42.996038 Are-we-friendly question received 09:41:42.996281 Wrote request (93 bytes) input to log/16/server.input 09:41:42.996597 Identifying ourselves as friends 09:41:42.997224 Response sent (56 bytes) and written to log/16/server.response 09:41:42.997346 special request received, no persistency 09:41:42.997416 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 2068 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind2068 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2068 test 2067...[HTTP POST --digest with SHA256 and user-specified Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind2067 ../src/curl -q --output log/17/curl2067.out --include --trace-ascii log/17/trace2067 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:32895/2067 > log/17/stdout2067 2> log/17/stderr2067 2067: protocol FAILED! There was no content at all in the file log/17/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/17/ dir after test 2067 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/17/valgrind2067 ../src/curl -q --output log/17/curl2067.out --include --trace-ascii log/17/trace2067 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:32895/2067 > log/17/stdout2067 2> log/17/stderr2067 === End of file commands.log === Start of file http_server.log 09:41:42.008914 ====> Client connect 09:41:42.009214 accept_connection 3 returned 4 09:41:42.009368 accept_connection 3 returned 0 09:41:42.009643 Read 93 bytes 09:41:42.009758 Process 93 bytes request 09:41:42.009834 Got request: GET /verifiedserver HTTP/1.1 09:41:42.009899 Are-we-friendly question received 09:41:42.010106 Wrote request (93 bytes) input to log/17/server.input 09:41:42.010265 Identifying ourselves as friends 09:41:42.013228 Response sent (57 bytes) and written to log/17/server.response 09:41:42.013346 special request received, no persistency 09:41:42.013419 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:32895... * Connected to 127.0.0.1 (127.0.0.1) port 32895 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:32895 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 150350 === End of file http_verify.out === Start of file server.cmd Testnum 2067 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 150350 === End of file server.response === Start of file valgrind2067 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2067 test 2054...[Connect to specific host: use the first "connect-to" string that matches] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind2054 ../src/curl -q --output log/18/curl2054.out --include --trace-ascii log/18/trace2054 --trace-config all --trace-time http://127.0.0.1:41285/2054 --connect-to foo::bar: --connect-to :123::456 --next http://www.example.com:41285/2054 --connect-to www.example.com::127.0.0.1: --connect-to www.example.com::foo: --next http://127.0.0.1:8083/2054 --connect-to :8083::41285 --connect-to :8083::123 --next http://www.example.com:8084/2054 --connect-to www.example.com:8084:127.0.0.1:41285 --connect-to www.example.com:8084:foo:123 > log/18/stdout2054 2> log/18/stderr2054 2054: protocol FAILED! There was no content at all in the file log/18/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/18/ dir after test 2054 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/18/valgrind2054 ../src/curl -q --output log/18/curl2054.out --include --trace-ascii log/18/trace2054 --trace-config all --trace-time http://127.0.0.1:41285/2054 --connect-to foo::bar: --connect-to :123::456 --next http://www.example.com:41285/2054 --connect-to www.example.com::127.0.0.1: --connect-to www.example.com::foo: --next http://127.0.0.1:8083/2054 --connect-to :8083::41285 --connect-to :8083::123 --next http://www.example.com:8084/2054 --connect-to www.example.com:8084:127.0.0.1:41285 --connect-to www.example.com:8084:foo:123 > log/18/stdout2054 2> log/18/stderr2054 === End of file commands.log === Start of file http_server.log 09:41:42.799834 ====> Client connect 09:41:42.800115 accept_connection 3 returned 4 09:41:42.800255 accept_connection 3 returned 0 09:41:42.800989 Read 93 bytes 09:41:42.801120 Process 93 bytes request 09:41:42.801197 Got request: GET /verifiedserver HTTP/1.1 09:41:42.801256 Are-we-friendly question received 09:41:42.801451 Wrote request (93 bytes) input to log/18/server.input 09:41:42.801757 Identifying ourselves as friends 09:41:42.803408 Response sent (56 bytes) and written to log/18/server.response 09:41:42.803620 special request received, no persistency 09:41:42.803701 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41285... * Connected to 127.0.0.1 (127.0.0.1) port 41285 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41285 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73790 === End of file http_verify.out === Start of file server.cmd Testnum 2054 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73790 === End of file server.response === Start of file valgrind2054 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2054 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 35193 --port2 42973 --nghttpx "nghttpx" --pidfile "log/20/server/http_v2_server.pid" --logfile "log/20/http_v2_server.log" --logdir "log/20" --connect 127.0.0.1:45475 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server test 1701 SKIPPED: failed starting HTTP/2 server test 2065...[HTTP with RFC7616 Digest, bad password, SHA-512-256 and userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind2065 ../src/curl -q --output log/26/curl2065.out --include --trace-ascii log/26/trace2065 --trace-config all --trace-time http://127.0.0.1:46481/2065 -u testuser:test2pass --digest > log/26/stdout2065 2> log/26/stderr2065 2065: protocol FAILED! There was no content at all in the file log/26/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/26/ dir after test 2065 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind2065 ../src/curl -q --output log/26/curl2065.out --include --trace-ascii log/26/trace2065 --trace-config all --trace-time http://127.0.0.1:46481/2065 -u testuser:test2pass --digest > log/26/stdout2065 2> log/26/stderr2065 === End of file commands.log === Start of file http_server.log 09:41:42.958014 ====> Client connect 09:41:42.958284 accept_connection 3 returned 4 09:41:42.958429 accept_connection 3 returned 0 09:41:42.959349 Read 93 bytes 09:41:42.959593 Process 93 bytes request 09:41:42.959717 Got request: GET /verifiedserver HTTP/1.1 09:41:42.959818 Are-we-friendly question received 09:41:42.960101 Wrote request (93 bytes) input to log/26/server.input 09:41:42.960293 Identifying ourselves as friends 09:41:42.961920 Response sent (56 bytes) and written to log/26/server.response 09:41:42.962041 special request received, no persistency 09:41:42.962111 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 2065 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind2065 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2065 test 2204...[MQTT SUBSCRIBE with user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind2204 ../src/curl -q --output log/30/curl2204.out --include --trace log/30/trace2204 --trace-config all --trace-time mqtt://127.0.0.1:42935/2204 -u testuser:testpasswd > log/30/stdout2204 2> log/30/stderr2204 2204: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 2204 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind2204 ../src/curl -q --output log/30/curl2204.out --include --trace log/30/trace2204 --trace-config all --trace-time mqtt://127.0.0.1:42935/2204 -u testuser:testpasswd > log/30/stdout2204 2> log/30/stderr2204 === End of file commands.log === Start of file server.cmd Testnum 2204 === End of file server.cmd === Start of file valgrind2204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2204 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind2086 ./libtest/libtests lib2082 [::1]:35451/2086#ipv6 > log/21/stdout2086 2> log/21/stderr2086 test 2085...[Pre-request callback for HTTP with location following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind2085 ./libtest/libtests lib2082 127.0.0.1:44255/2085#redir > log/36/stdout2085 2> log/36/stderr2085 2085: stdout FAILED: --- log/36/check-expected 2025-07-18 09:41:44.645670454 +0000 +++ log/36/check-generated 2025-07-18 09:41:44.644575815 +0000 @@ -1,10 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 44255[LF] -Local port = stripped[LF] -Returning = 0[LF] -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 44255[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/36/ dir after test 2085 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 44255[LF] Local port = stripped[LF] Returning = 0[LF] Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 44255[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind2085 ./libtest/libtests lib2082 127.0.0.1:44255/2085#redir > log/36/stdout2085 2> log/36/stderr2085 === End of file commands.log === Start of file http_server.log 09:41:43.382128 ====> Client connect 09:41:43.382430 accept_connection 3 returned 4 09:41:43.382757 accept_connection 3 returned 0 09:41:43.382903 Read 93 bytes 09:41:43.383003 Process 93 bytes request 09:41:43.383097 Got request: GET /verifiedserver HTTP/1.1 09:41:43.383181 Are-we-friendly question received 09:41:43.383400 Wrote request (93 bytes) input to log/36/server.input 09:41:43.383684 Identifying ourselves as friends 09:41:43.384451 Response sent (56 bytes) and written to log/36/server.response 09:41:43.384645 special request received, no persistency 09:41:43.384749 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44255... * Connected to 127.0.0.1 (127.0.0.1) port 44255 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44255 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 77175 === End of file http_verify.out === Start of file server.cmd Testnum 2085 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 77175 === End of file server.response === Start of file valgrind2085 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2085 test 2063...[HTTP with RFC7616 SHA-256 Digest authorization and userhash=true] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind2063 ../src/curl -q --output log/37/curl2063.out --include --trace-ascii log/37/trace2063 --trace-config all --trace-time http://127.0.0.1:37551/2063 -u testuser:testpass --digest > log/37/stdout2063 2> log/37/stderr2063 2063: protocol FAILED! There was no content at all in the file log/37/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/37/ dir after test 2063 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind2063 ../src/curl -q --output log/37/curl2063.out --include --trace-ascii log/37/trace2063 --trace-config all --trace-time http://127.0.0.1:37551/2063 -u testuser:testpass --digest > log/37/stdout2063 2> log/37/stderr2063 === End of file commands.log === Start of file http_server.log 09:41:42.981836 ====> Client connect 09:41:42.982146 accept_connection 3 returned 4 09:41:42.982319 accept_connection 3 returned 0 09:41:42.984782 Read 93 bytes 09:41:42.984982 Process 93 bytes request 09:41:42.985111 Got request: GET /verifiedserver HTTP/1.1 09:41:42.985237 Are-we-friendly question received 09:41:42.985681 Wrote request (93 bytes) input to log/37/server.input 09:41:42.985965 Identifying ourselves as friends 09:41:42.990307 Response sent (56 bytes) and written to log/37/server.response 09:41:42.990430 special request received, no persistency 09:41:42.990646 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37551... * Connected to 127.0.0.1 (127.0.0.1) port 37551 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37551 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73772 === End of file http_verify.out === Start of file server.cmd Testnum 2063 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73772 === End of file server.response === Start of file valgrind2063 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2063 test 2061...[HTTP with RFC7616 SHA256 Digest authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind2061 ../src/curl -q --output log/41/curl2061.out --include --trace-ascii log/41/trace2061 --trace-config all --trace-time http://127.0.0.1:35093/2061 -u testuser:testpass --digest > log/41/stdout2061 2> log/41/stderr2061 2061: protocol FAILED! There was no content at all in the file log/41/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/41/ dir after test 2061 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind2061 ../src/curl -q --output log/41/curl2061.out --include --trace-ascii log/41/trace2061 --trace-config all --trace-time http://127.0.0.1:35093/2061 -u testuser:testpass --digest > log/41/stdout2061 2> log/41/stderr2061 === End of file commands.log === Start of file http_server.log 09:41:42.977853 ====> Client connect 09:41:42.978156 accept_connection 3 returned 4 09:41:42.978312 accept_connection 3 returned 0 09:41:42.978446 Read 93 bytes 09:41:42.978638 Process 93 bytes request 09:41:42.978725 Got request: GET /verifiedserver HTTP/1.1 09:41:42.978798 Are-we-friendly question received 09:41:42.979019 Wrote request (93 bytes) input to log/41/server.input 09:41:42.979211 Identifying ourselves as friends 09:41:42.982036 Response sent (56 bytes) and written to log/41/server.response 09:41:42.982159 special request received, no persistency 09:41:42.982241 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 2061 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind2061 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2061 test 2308...[verify return code when write callback returns error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind2308 ./libtest/libtests lib2308 http://127.0.0.1:42819/2308 > log/42/stdout2308 2> log/42/stderr2308 2308: stdout FAILED: --- log/42/check-expected 2025-07-18 09:41:44.718403097 +0000 +++ log/42/check-generated 2025-07-18 09:41:44.717575778 +0000 @@ -1 +0,0 @@ -Returned 23, should be 23.[CR][LF] == Contents of files in the log/42/ dir after test 2308 === Start of file check-expected Returned 23, should be 23.[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind2308 ./libtest/libtests lib2308 http://127.0.0.1:42819/2308 > log/42/stdout2308 2> log/42/stderr2308 === End of file commands.log === Start of file http_server.log 09:41:43.465667 ====> Client connect 09:41:43.465985 accept_connection 3 returned 4 09:41:43.466140 accept_connection 3 returned 0 09:41:43.466831 Read 93 bytes 09:41:43.466981 Process 93 bytes request 09:41:43.467070 Got request: GET /verifiedserver HTTP/1.1 09:41:43.467149 Are-we-friendly question received 09:41:43.467385 Wrote request (93 bytes) input to log/42/server.input 09:41:43.467669 Identifying ourselves as friends 09:41:43.468205 Response sent (56 bytes) and written to log/42/server.response 09:41:43.468313 special request received, no persistency 09:41:43.468383 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 2308 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind2308 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2308 test 2060...[HTTP Digest with PUT, resumed upload, SHA-512-256, userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind2060 ../src/curl -q --output log/43/curl2060.out --include --trace-ascii log/43/trace2060 --trace-config all --trace-time http://127.0.0.1:41267/2060 -u auser:apasswd --digest -T log/43/2060 -x http://127.0.0.1:41267 -C 2 -X GET > log/43/stdout2060 2> log/43/stderr2060 2060: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 2060 === Start of file 2060 test === End of file 2060 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind2060 ../src/curl -q --output log/43/curl2060.out --include --trace-ascii log/43/trace2060 --trace-config all --trace-time http://127.0.0.1:41267/2060 -u auser:apasswd --digest -T log/43/2060 -x http://127.0.0.1:41267 -C 2 -X GET > log/43/stdout2060 2> log/43/stderr2060 === End of file commands.log === Start of file http_server.log 09:41:42.915825 ====> Client connect 09:41:42.916118 accept_connection 3 returned 4 09:41:42.916266 accept_connection 3 returned 0 09:41:42.916398 Read 93 bytes 09:41:42.919666 Process 93 bytes request 09:41:42.919811 Got request: GET /verifiedserver HTTP/1.1 09:41:42.919898 Are-we-friendly question received 09:41:42.920130 Wrote request (93 bytes) input to log/43/server.input 09:41:42.920311 Identifying ourselves as friends 09:41:42.921119 Response sent (56 bytes) and written to log/43/server.response 09:41:42.921219 special request received, no persistency 09:41:42.921285 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 2060 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind2060 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2060 test 2306...[HTTP GET reused handle with first header folded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind2306 ./libtest/libtests lib2306 http://127.0.0.1:34239/2306 http://127.0.0.1:34239/23060002 > log/45/stdout2306 2> log/45/stderr2306 2306: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 2306 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind2306 ./libtest/libtests lib2306 http://127.0.0.1:34239/2306 http://127.0.0.1:34239/23060002 > log/45/stdout2306 2> log/45/stderr2306 === End of file commands.log === Start of file http_server.log 09:41:42.454916 ====> Client connect 09:41:42.455209 accept_connection 3 returned 4 09:41:42.455397 accept_connection 3 returned 0 09:41:42.455610 Read 93 bytes 09:41:42.455719 Process 93 bytes request 09:41:42.455800 Got request: GET /verifiedserver HTTP/1.1 09:41:42.455865 Are-we-friendly question received 09:41:42.456089 Wrote request (93 bytes) input to log/45/server.input 09:41:42.456301 Identifying ourselves as friends 09:41:42.457930 Response sent (56 bytes) and written to log/45/server.response 09:41:42.458078 special request received, no persistency 09:41:42.458178 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 2306 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind2306 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2306 test 2059...[HTTP Digest with PUT, resumed upload, modified method, SHA-256 and userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind2059 ../src/curl -q --output log/61/curl2059.out --include --trace-ascii log/61/trace2059 --trace-config all --trace-time http://127.0.0.1:44381/2059 -u auser:apasswd --digest -T log/61/2059 -x http://127.0.0.1:44381 -C 2 -X GET > log/61/stdout2059 2> log/61/stderr2059 2059: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 2059 === Start of file 2059 test === End of file 2059 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind2059 ../src/curl -q --output log/61/curl2059.out --include --trace-ascii log/61/trace2059 --trace-config all --trace-time http://127.0.0.1:44381/2059 -u auser:apasswd --digest -T log/61/2059 -x http://127.0.0.1:44381 -C 2 -X GET > log/61/stdout2059 2> log/61/stderr2059 === End of file commands.log === Start of file http_server.log 09:41:42.922850 ====> Client connect 09:41:42.923170 accept_connection 3 returned 4 09:41:42.923345 accept_connection 3 returned 0 09:41:42.923598 Read 93 bytes 09:41:42.923719 Process 93 bytes request 09:41:42.923820 Got request: GET /verifiedserver HTTP/1.1 09:41:42.923893 Are-we-friendly question received 09:41:42.924097 Wrote request (93 bytes) input to log/61/server.input 09:41:42.924289 Identifying ourselves as friends 09:41:42.929199 Response sent (56 bytes) and written to log/61/server.response 09:41:42.929318 special request received, no persistency 09:41:42.929387 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 2059 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind2059 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2059 test 2069...[HTTP POST Digest with SHA-256, userhash and set Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2069 ../src/curl -q --output log/64/curl2069.out --include --trace-ascii log/64/trace2069 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33073/2069 > log/64/stdout2069 2> log/64/stderr2069 2069: protocol FAILED! There was no content at all in the file log/64/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/64/ dir after test 2069 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2069 ../src/curl -q --output log/64/curl2069.out --include --trace-ascii log/64/trace2069 --trace-config all --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33073/2069 > log/64/stdout2069 2> log/64/stderr2069 === End of file commands.log === Start of file http_server.log 09:41:43.073765 ====> Client connect 09:41:43.074084 accept_connection 3 returned 4 09:41:43.074247 accept_connection 3 returned 0 09:41:43.074384 Read 93 bytes 09:41:43.074567 Process 93 bytes request 09:41:43.074680 Got request: GET /verifiedserver HTTP/1.1 09:41:43.074771 Are-we-friendly question received 09:41:43.075034 Wrote request (93 bytes) input to log/64/server.input 09:41:43.075217 Identifying ourselves as friends 09:41:43.076177 Response sent (56 bytes) and written to log/64/server.response 09:41:43.076297 special request received, no persistency 09:41:43.076364 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33073... * Connected to 127.0.0.1 (127.0.0.1) port 33073 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33073 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73748 === End of file http_verify.out === Start of file server.cmd Testnum 2069 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73748 === End of file server.response === Start of file valgrind2069 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2069 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 41021 --port2 32793 --nghttpx "nghttpx" --pidfile "log/19/server/http_v2_server.pid" --logfile "log/19/http_v2_server.log" --logdir "log/19" --connect 127.0.0.1:35697 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server test 1702 SKIPPED: failed starting HTTP/2 server CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind2202 ../src/curl -q --output log/40/curl2202.out --include --trace log/40/trace2202 --trace-config all --trace-time mqtt://127.0.0.1:39113/2202 -d something -u fakeuser:fakepasswd > log/40/stdout2202 2> log/40/stderr2202 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind2203 ../src/curl -q --output log/35/curl2203.out --include --trace log/35/trace2203 --trace-config all --trace-time mqtt://127.0.0.1:34845/2203 > log/35/stdout2203 2> log/35/stderr2203 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/21/server/http_ipv6_server.pid" --logfile "log/21/http_ipv6_server.log" --logdir "log/21" --portfile log/21/server/http_ipv6_server.port --config log/21/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 161503 port 35451 * pid http-ipv6 => 161503 161503 setenv MSYS2_ARG_CONV_EXCL = * test 2086...[Pre-request callback for HTTP IPv6] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind2086 ./libtest/libtests lib2082 [::1]:35451/2086#ipv6 > log/21/stdout2086 2> log/21/stderr2086 2086: stdout FAILED: --- log/21/check-expected 2025-07-18 09:41:44.861337845 +0000 +++ log/21/check-generated 2025-07-18 09:41:44.860575705 +0000 @@ -1,5 +0,0 @@ -Connected to [::1][LF] -Connected from [::1][LF] -Remote port = 35451[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/21/ dir after test 2086 === Start of file check-expected Connected to [::1][LF] Connected from [::1][LF] Remote port = 35451[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind2086 ./libtest/libtests lib2082 [::1]:35451/2086#ipv6 > log/21/stdout2086 2> log/21/stderr2086 === End of file commands.log === Start of file http_ipv6_server.log 09:41:43.321851 Running HTTP IPv6 version on port 35451 09:41:43.324650 Wrote pid 161503 to log/21/server/http_ipv6_server.pid 09:41:43.324988 Wrote port 35451 to log/21/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 2086 === End of file server.cmd === Start of file valgrind2086 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2086 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/28/server/http2_server.pid" --logfile "log/28/http2_server.log" --logdir "log/28" --portfile log/28/server/http2_server.port --config log/28/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 161162 port 34983 * pid http-proxy => 161162 161162 test 2050...[--connect-to via HTTP proxy (tunnel mode automatically)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind2050 ../src/curl -q --output log/28/curl2050.out --include --trace-ascii log/28/trace2050 --trace-config all --trace-time http://www.example.com.2050/2050 --connect-to ::connect.example.com.2050:37545 -x 127.0.0.1:34983 > log/28/stdout2050 2> log/28/stderr2050 2050: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 2050 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind2050 ../src/curl -q --output log/28/curl2050.out --include --trace-ascii log/28/trace2050 --trace-config all --trace-time http://www.example.com.2050/2050 --connect-to ::connect.example.com.2050:37545 -x 127.0.0.1:34983 > log/28/stdout2050 2> log/28/stderr2050 === End of file commands.log === Start of file http2_server.log 09:41:42.242952 Run as proxy, CONNECT to host 127.0.0.1 09:41:42.243769 Running HTTP IPv4 version on port 34983 09:41:42.244159 Wrote pid 161162 to log/28/server/http2_server.pid 09:41:42.244454 Wrote port 34983 to log/28/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:42.787416 ====> Client connect 09:41:42.787883 accept_connection 3 returned 4 09:41:42.788064 accept_connection 3 returned 0 09:41:42.788184 Read 93 bytes 09:41:42.788274 Process 93 bytes request 09:41:42.788360 Got request: GET /verifiedserver HTTP/1.1 09:41:42.788448 Are-we-friendly question received 09:41:42.788771 Wrote request (93 bytes) input to log/28/server.input 09:41:42.788951 Identifying ourselves as friends 09:41:42.793036 Response sent (56 bytes) and written to log/28/server.response 09:41:42.793169 special request received, no persistency 09:41:42.793257 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 2050 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind2050 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exitingCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind2201 ../src/curl -q --output log/47/curl2201.out --include --trace log/47/trace2201 --trace-config all --trace-time mqtt://127.0.0.1:34985/2201 -d something -u testuser:testpasswd > log/47/stdout2201 2> log/47/stderr2201 now. Sorry. === End of file valgrind2050 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind2083 ./libtest/libtests lib2082 ftp://127.0.0.1:37429/test-2083/ > log/59/stdout2083 2> log/59/stderr2083 test 2084...[Pre-request callback for HTTP with callback terminating transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind2084 ./libtest/libtests lib2082 127.0.0.1:33071/2084#err > log/55/stdout2084 2> log/55/stderr2084 2084: stdout FAILED: --- log/55/check-expected 2025-07-18 09:41:44.921472794 +0000 +++ log/55/check-generated 2025-07-18 09:41:44.920575675 +0000 @@ -1,5 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 33071[LF] -Local port = stripped[LF] -Returning = 1[LF] == Contents of files in the log/55/ dir after test 2084 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 33071[LF] Local port = stripped[LF] Returning = 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind2084 ./libtest/libtests lib2082 127.0.0.1:33071/2084#err > log/55/stdout2084 2> log/55/stderr2084 === End of file commands.log === Start of file http_server.log 09:41:43.271284 ====> Client connect 09:41:43.271694 accept_connection 3 returned 4 09:41:43.271873 accept_connection 3 returned 0 09:41:43.272823 Read 93 bytes 09:41:43.272992 Process 93 bytes request 09:41:43.273086 Got request: GET /verifiedserver HTTP/1.1 09:41:43.273163 Are-we-friendly question received 09:41:43.273425 Wrote request (93 bytes) input to log/55/server.input 09:41:43.273733 Identifying ourselves as friends 09:41:43.275430 Response sent (56 bytes) and written to log/55/server.response 09:41:43.275652 special request received, no persistency 09:41:43.275732 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33071... * Connected to 127.0.0.1 (127.0.0.1) port 33071 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33071 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73757 === End of file http_verify.out === Start of file server.cmd Testnum 2084 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73757 === End of file server.response === Start of file valgrind2084 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2084 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 35047 --port2 42091 --nghttpx "nghttpx" --pidfile "log/58/server/http_v2_server.pid" --logfile "log/58/http_v2_server.log" --logdir "log/58" --connect 127.0.0.1:46727 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server test 1700 SKIPPED: failed starting HTTP/2 server startnew: ./server/servers mqttd --port 0 --pidfile log/35/server/mqtt_server.pid --portfile log/35/server/mqtt_server.port --config log/35/server.cmd --logfile log/35/mqtt_server.log --logdir log/35 RUN: MQTT server is now running PID 161623 on PORT 34845 * pid mqtt => 161623 161623 test 2203...[MQTT with error in CONNACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind2203 ../src/curl -q --output log/35/curl2203.out --include --trace log/35/trace2203 --trace-config all --trace-time mqtt://127.0.0.1:34845/2203 > log/35/stdout2203 2> log/35/stderr2203 2203: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 2203 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind2203 ../src/curl -q --output log/35/curl2203.out --include --trace log/35/trace2203 --trace-config all --trace-time mqtt://127.0.0.1:34845/2203 > log/35/stdout2203 2> log/35/stderr2203 === End of file commands.log === Start of file mqtt_server.log 09:41:42.144701 Running IPv4 version 09:41:42.145118 Listening on port 34845 09:41:42.145439 Wrote pid 161623 to log/35/server/mqtt_server.pid 09:41:42.145858 Wrote port 34845 to log/35/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd error-CONNACK 5 Testnum 2203 === End of file server.cmd === Start of file valgrind2203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2203 startnew: ./server/servers mqttd --port 0 --pidfile log/40/server/mqtt_server.pid --portfile log/40/server/mqtt_server.port --config log/40/server.cmd --logfile log/40/mqtt_server.log --logdir log/40 RUN: MQTT server is now running PID 161636 on PORT 39113 * pid mqtt => 161636 161636 test 2202...[MQTT PUBLISH with invalid user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind2202 ../src/curl -q --output log/40/curl2202.out --include --trace log/40/trace2202 --trace-config all --trace-time mqtt://127.0.0.1:39113/2202 -d something -u fakeuser:fakepasswd > log/40/stdout2202 2> log/40/stderr2202 2202: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 2202 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind2202 ../src/curl -q --output log/40/curl2202.out --include --trace log/40/trace2202 --trace-config all --trace-time mqtt://127.0.0.1:39113/2202 -d something -u fakeuser:fakepasswd > log/40/stdout2202 2> log/40/stderr2202 === End of file commands.log === Start of file mqtt_server.log 09:41:42.098822 Running IPv4 version 09:41:42.099282 Listening on port 39113 09:41:42.099774 Wrote pid 161636 to log/40/server/mqtt_server.pid 09:41:42.100101 Wrote port 39113 to log/40/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd error-CONNACK 5 Testnum 2202 === End of file server.cmd === Start of file valgrind2202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2202 startnew: ./server/servers mqttd --port 0 --pidfile log/47/server/mqtt_server.pid --portfile log/47/server/mqtt_server.port --config log/47/server.cmd --logfile log/47/mqtt_server.log --logdir log/47 RUN: MQTT server is now running PID 161566 on PORT 34985 * pid mqtt => 161566 161566 test 2201...[MQTT PUBLISH with user and password valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind2201 ../src/curl -q --output log/47/curl2201.out --include --trace log/47/trace2201 --trace-config all --trace-time mqtt://127.0.0.1:34985/2201 -d something -u testuser:testpasswd > log/47/stdout2201 2> log/47/stderr2201 2201: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 2201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind2201 ../src/curl -q --output log/47/curl2201.out --include --trace log/47/trace2201 --trace-config all --trace-time mqtt://127.0.0.1:34985/2201 -d something -u testuser:testpasswd > log/47/stdout2201 2> log/47/stderr2201 === End of file commands.log === Start of file mqtt_server.log 09:41:42.099825 Running IPv4 version 09:41:42.100396 Listening on port 34985 09:41:42.100934 Wrote pid 161566 to log/47/server/mqtt_server.pid 09:41:42.101318 Wrote port 34985 to log/47/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 2201 === End of file server.cmd === Start of file valgrind2201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2205 ../src/curl -q --output log/6/curl2205.out --include --trace log/6/trace2205 --trace-config all --trace-time mqtt://127.0.0.1:36141/2205 -K log/6/input2205 > log/6/stdout2205 2> log/6/stderr2205 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/59/server/ftp_server.pid" --logfile "log/59/ftp_server.log" --logdir "log/59" --portfile "log/59/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37429 (log/59/server/ftp_server.port) RUN: FTP server is PID 161437 port 37429 * pid ftp => 161437 161437 test 2083...[Pre-request callback for FTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind2083 ./libtest/libtests lib2082 ftp://127.0.0.1:37429/test-2083/ > log/59/stdout2083 2> log/59/stderr2083 2083: stdout FAILED: --- log/59/check-expected 2025-07-18 09:41:45.022575623 +0000 +++ log/59/check-generated 2025-07-18 09:41:45.021575624 +0000 @@ -1,5 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 37429[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/59/ dir after test 2083 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 37429[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind2083 ./libtest/libtests lib2082 ftp://127.0.0.1:37429/test-2083/ > log/59/stdout2083 2> log/59/stderr2083 === End of file commands.log === Start of file ftp_server.log 09:41:43.514474 FTP server listens on port IPv4/37429 09:41:43.515409 logged pid 161437 in log/59/server/ftp_server.pid 09:41:43.515703 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:43.765282 Running IPv4 version 09:41:43.766010 Listening on port 37429 09:41:43.766385 Wrote pid 163044 to log/59/server/ftp_sockctrl.pid 09:41:43.766794 Wrote port 37429 to log/59/server/ftp_server.port 09:41:43.767110 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 2083 === End of file server.cmd === Start of file valgrind2083 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2083 startnew: ./server/servers mqttd --port 0 --pidfile log/6/server/mqtt_server.pid --portfile log/6/server/mqtt_server.port --config log/6/server.cmd --logfile log/6/mqtt_server.log --logdir log/6 RUN: MQTT server is now running PID 161650 on PORT 36141 * pid mqtt => 161650 161650 test 2205...[MQTT with very long user name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2205 ../src/curl -q --output log/6/curl2205.out --include --trace log/6/trace2205 --trace-config all --trace-time mqtt://127.0.0.1:36141/2205 -K log/6/input2205 > log/6/stdout2205 2> log/6/stderr2205 curl returned 1, when expecting 8 2205: exit FAILED == Contents of files in the log/6/ dir after test 2205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2205 ../src/curl -q --output log/6/curl2205.out --include --trace log/6/trace2205 --trace-config all --trace-time mqtt://127.0.0.1:36141/2205 -K log/6/input2205 > log/6/stdout2205 2> log/6/stderr2205 === End of file commands.log === Start of file input2205 user = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind2601 ./unit/units unit2601 - > log/57/stdout2601 2> log/57/stderr2601 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:fakepasswd === End of file input2205 === Start of file mqtt_server.log 09:41:42.129088 Running IPv4 version 09:41:42.129981 Listening on port 36141 09:41:42.130325 Wrote pid 161650 to log/6/server/mqtt_server.pid 09:41:42.130696 Wrote port 36141 to log/6/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 2205 === End of file server.cmd === Start of file valgrind2205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2205 * starts no server test 2601...[bufq unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind2601 ./unit/units unit2601 - > log/57/stdout2601 2> log/57/stderr2601 units returned 1, when expecting 0 2601: exit FAILED == Contents of files in the log/57/ dir after test 2601 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind2601 ./unit/units unit2601 - > log/57/stdout2601 2> log/57/stderr2601 === End of file commands.log === Start of file server.cmd Testnum 2601 === End of file server.cmd === Start of file valgrind2601 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind2200 ../src/curl -q --output log/44/curl2200.out --include --trace log/44/trace2200 --trace-config all --trace-time mqtt://127.0.0.1:42925/2200 -u fakeuser:fakepasswd > log/44/stdout2200 2> log/44/stderr2200 cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind2055 ../src/curl -q --output log/15/curl2055.out --include --trace-ascii log/15/trace2055 --trace-config all --trace-time http://www.example.com.2055/2055 --connect-to ::connect.example.com.2055:35435 -x 127.0.0.1:46599 --preproxy socks5://127.0.0.1:43283 > log/15/stdout2055 2> log/15/stderr2055 nd: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2601 startnew: ./server/servers mqttd --port 0 --pidfile log/44/server/mqtt_server.pid --portfile log/44/server/mqtt_server.port --config log/44/server.cmd --logfile log/44/mqtt_server.log --logdir log/44 RUN: MQTT server is now running PID 161570 on PORT 42925 * pid mqtt => 161570 161570 test 2200...[MQTT SUBSCRIBE with user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind2200 ../src/curl -q --output log/44/curl2200.out --include --trace log/44/trace2200 --trace-config all --trace-time mqtt://127.0.0.1:42925/2200 -u fakeuser:fakepasswd > log/44/stdout2200 2> log/44/stderr2200 2200: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 2200 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind2200 ../src/curl -q --output log/44/curl2200.out --include --trace log/44/trace2200 --trace-config all --trace-time mqtt://127.0.0.1:42925/2200 -u fakeuser:fakepasswd > log/44/stdout2200 2> log/44/stderr2200 === End of file commands.log === Start of file mqtt_server.log 09:41:42.055895 Running IPv4 version 09:41:42.056548 Listening on port 42925 09:41:42.056970 Wrote pid 161570 to log/44/server/mqtt_server.pid 09:41:42.057276 Wrote port 42925 to log/44/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd error-CONNACK 5 Testnum 2200 === End of file server.cmd === Start of file valgrind2200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2200 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/15/server/http2_server.pid" --logfile "log/15/http2_server.log" --logdir "log/15" --portfile log/15/server/http2_server.port --config log/15/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 161231 port 46599 * pid http-proxy => 161231 161231 startnew: ./server/servers socksd --port 0 --pidfile log/15/server/socks_server.pid --portfile log/15/server/socks_server.port --reqfile log/15/socksd-request.log --logfile log/15/socks_server.log --backend 127.0.0.1 --config log/15/server.cmd RUN: SOCKS server is now running PID 163312 * pid socks => 163312 163312 test 2055...[--connect-to via SOCKS proxy and HTTP proxy (tunnel mode automatically)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind2055 ../src/curl -q --output log/15/curl2055.out --include --trace-ascii log/15/trace2055 --trace-config all --trace-time http://www.example.com.2055/2055 --connect-to ::connect.example.com.2055:35435 -x 127.0.0.1:46599 --preproxy socks5://127.0.0.1:43283 > log/15/stdout2055 2> log/15/stderr2055 2055: protocol FAILED! There was no content at all in the file log/15/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/15/ dir after test 2055 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/15/valgrind2055 ../src/curl -q --output log/15/curl2055.out --include --trace-ascii log/15/trace2055 --trace-config all --trace-time http://www.example.com.2055/2055 --connect-to ::connect.example.com.2055:35435 -x 127.0.0.1:46599 --preproxy socks5://127.0.0.1:43283 > log/15/stdout2055 2> log/15/stderr2055 === End of file commands.log === Start of file http2_server.log 09:41:42.212588 Run as proxy, CONNECT to host 127.0.0.1 09:41:42.213294 Running HTTP IPv4 version on port 46599 09:41:42.213752 Wrote pid 161231 to log/15/server/http2_server.pid 09:41:42.214002 Wrote port 46599 to log/15/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:42.841238 ====> Client connect 09:41:42.841743 accept_connection 3 returned 4 09:41:42.841930 accept_connection 3 returned 0 09:41:42.842055 Read 93 bytes 09:41:42.842164 Process 93 bytes request 09:41:42.842254 Got request: GET /verifiedserver HTTP/1.1 09:41:42.842329 Are-we-friendly question received 09:41:42.842644 Wrote request (93 bytes) input to log/15/server.input 09:41:42.842848 Identifying ourselves as friends 09:41:42.843910 Response sent (56 bytes) and written to log/15/server.response 09:41:42.844018 special request received, no persistency 09:41:42.844081 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35435... * Connected to 127.0.0.1 (127.0.0.1) port 35435 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35435 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73793 === End of file http_verify.out === Start of file server.cmd Testnum 2055 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73793 === End of file server.response === Start of file socks_server.log 09:41:43.944729 Running IPv4 version 09:41:43.945261 Listening on port 43283 09:41:43.945649 Wrote pid 163312 to log/15/server/socks_server.pid 09:41:43.945950 Wrote port 43283 to log/15/server/socks_server.port === End of file socks_server.log === Start of file valgrind2055 valgrind: Fatal error at startupCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind2602 ./unit/units unit2602 - > log/53/stdout2602 2> log/53/stderr2602 cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2603 ./unit/units unit2603 - > log/64/stdout2603 2> log/64/stderr2603 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind2604 ./unit/units unit2604 - > log/58/stdout2604 2> log/58/stderr2604 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind3200 ./unit/units unit3200 log/24/curl_get_line3200 > log/24/stdout3200 2> log/24/stderr3200 : a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2055 * starts no server test 2602...[dynhds unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind2602 ./unit/units unit2602 - > log/53/stdout2602 2> log/53/stderr2602 units returned 1, when expecting 0 2602: exit FAILED == Contents of files in the log/53/ dir after test 2602 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/53/valgrind2602 ./unit/units unit2602 - > log/53/stdout2602 2> log/53/stderr2602 === End of file commands.log === Start of file server.cmd Testnum 2602 === End of file server.cmd === Start of file valgrind2602 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2602 * starts no server test 2603...[http1 parser unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2603 ./unit/units unit2603 - > log/64/stdout2603 2> log/64/stderr2603 units returned 1, when expecting 0 2603: exit FAILED == Contents of files in the log/64/ dir after test 2603 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/64/valgrind2603 ./unit/units unit2603 - > log/64/stdout2603 2> log/64/stderr2603 === End of file commands.log === Start of file server.cmd Testnum 2603 === End of file server.cmd === Start of file valgrind2603 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2603 * starts no server test 2604...[Curl_get_pathname unit test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind2604 ./unit/units unit2604 - > log/58/stdout2604 2> log/58/stderr2604 units returned 1, when expecting 0 2604: exit FAILED == Contents of files in the log/58/ dir after test 2604 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/58/valgrind2604 ./unit/units unit2604 - > log/58/stdout2604 2> log/58/stderr2604 === End of file commands.log === Start of file server.cmd Testnum 2604 === End of file server.cmd === Start of file valgrind2604 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2604 * starts no server test 3200...[curl_get_line unit tests] CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind3016 ../src/curl -q --output log/37/curl3016.out --include --trace-ascii log/37/trace3016 --trace-config all --trace-time file:///build/curl/src/build-curl/tests/ > log/37/stdout3016 2> log/37/stderr3016 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3205 ./unit/units unit3205 - > log/4/stdout3205 2> log/4/stderr3205 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind3203 ../src/curl -q --trace-ascii log/10/trace3203 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/10/test3203.dir/ > log/10/stdout3203 2> log/10/stderr3203 ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind3200 ./unit/units unit3200 log/24/curl_get_line3200 > log/24/stdout3200 2> log/24/stderr3200 units returned 1, when expecting 0 3200: exit FAILED == Contents of files in the log/24/ dir after test 3200 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/24/valgrind3200 ./unit/units unit3200 log/24/curl_get_line3200 > log/24/stdout3200 2> log/24/stderr3200 === End of file commands.log === Start of file server.cmd Testnum 3200 === End of file server.cmd === Start of file valgrind3200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3200 test 3016...[GET a directory using file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind3016 ../src/curl -q --output log/37/curl3016.out --include --trace-ascii log/37/trace3016 --trace-config all --trace-time file:///build/curl/src/build-curl/tests/ > log/37/stdout3016 2> log/37/stderr3016 curl returned 1, when expecting 0 3016: exit FAILED == Contents of files in the log/37/ dir after test 3016 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/37/valgrind3016 ../src/curl -q --output log/37/curl3016.out --include --trace-ascii log/37/trace3016 --trace-config all --trace-time file:///build/curl/src/build-curl/tests/ > log/37/stdout3016 2> log/37/stderr3016 === End of file commands.log === Start of file server.cmd Testnum 3016 === End of file server.cmd === Start of file valgrind3016 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3016 * starts no server test 3205...[cipher suite name lookup] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3205 ./unit/units unit3205 - > log/4/stdout3205 2> log/4/stderr3205 units returned 1, when expecting 0 3205: exit FAILED == Contents of files in the log/4/ dir after test 3205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3205 ./unit/units unit3205 - > log/4/stdout3205 2> log/4/stderr3205 === End of file commands.log === Start of file server.cmd Testnum 3205 === End of file server.cmd === Start of file valgrind3205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3205 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind3214 ./unit/units unit3214 - > log/14/stdout3214 2> log/14/stderr3214 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind3017 ../src/curl -q --output log/36/curl3017.out --include --trace log/36/trace3017 --trace-config all --trace-time mqtt://127.0.0.1:39375/3017 -m 3 > log/36/stdout3017 2> log/36/stderr3017 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind3010 ./libtest/libtests lib3010 127.0.0.1:35697/3010 > log/19/stdout3010 2> log/19/stderr3010 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind3211 ./unit/units unit3211 - > log/38/stdout3211 2> log/38/stderr3211 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind3006 ../src/curl -q --output log/55/curl3006.out --include --trace-ascii log/55/trace3006 --trace-config all --trace-time smtp://127.0.0.1:34681/3006 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt invalid.two --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/55/stdout3006 2> log/55/stderr3006 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind3018 ../src/curl -q --output log/30/curl3018.out --include --trace log/30/trace3018 --trace-config all --trace-time mqtt://127.0.0.1:42935/3018 --max-filesize 11 > log/30/stdout3018 2> log/30/stderr3018 test 3203...[GET a directory using file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind3203 ../src/curl -q --trace-ascii log/10/trace3203 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/10/test3203.dir/ > log/10/stdout3203 2> log/10/stderr3203 3203: stdout FAILED: --- log/10/check-expected 2025-07-18 09:41:46.225151734 +0000 +++ log/10/check-generated 2025-07-18 09:41:46.223575015 +0000 @@ -1 +0,0 @@ -dir-listing-test.txt[LF] == Contents of files in the log/10/ dir after test 3203 === Start of file check-expected dir-listing-test.txt[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/10/valgrind3203 ../src/curl -q --trace-ascii log/10/trace3203 --trace-config all --trace-time file://localhost/build/curl/src/build-curl/tests/log/10/test3203.dir/ > log/10/stdout3203 2> log/10/stderr3203 === End of file commands.log === Start of file server.cmd Testnum 3203 === End of file server.cmd === Start of file valgrind3203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3203 * starts no server test 3214...[struct size checks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind3214 ./unit/units unit3214 - > log/14/stdout3214 2> log/14/stderr3214 units returned 1, when expecting 0 3214: exit FAILED == Contents of files in the log/14/ dir after test 3214 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/14/valgrind3214 ./unit/units unit3214 - > log/14/stdout3214 2> log/14/stderr3214 === End of file commands.log === Start of file server.cmd Testnum 3214 === End of file server.cmd === Start of file valgrind3214 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3214 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind3009 ../src/curl -q --trace-ascii log/21/trace3009 --trace-config all --trace-time http://127.0.0.1:34827/this/is/the/3009 -O --output-dir /build/curl/src/build-curl/tests/not-there > log/21/stdout3009 2> log/21/stderr3009 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind3213 ./unit/units unit3213 - > log/22/stdout3213 2> log/22/stderr3213 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind3105 ./libtest/libtests lib3105 - > log/27/stdout3105 2> log/27/stderr3105 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind3019 ../src/curl -q --output log/26/curl3019.out --include --trace-ascii log/26/trace3019 --trace-config all --trace-time --resolve 46481:example.com:127.0.0.1 http://example.com:46481/3019 > log/26/stdout3019 2> log/26/stderr3019 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind3003 ../src/curl -q --output log/47/curl3003.out --include --trace-ascii log/47/trace3003 --trace-config all --trace-time smtp://127.0.0.1:34335/3003 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt invalid.five --mail-from sender@example.com -T - log/47/stdout3003 2> log/47/stderr3003 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind3004 ../src/curl -q --output log/40/curl3004.out --include --trace-ascii log/40/trace3004 --trace-config all --trace-time smtp://127.0.0.1:41163/3004 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/40/stdout3004 2> log/40/stderr3004 test 3010...[HTTP retry-after reset] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind3010 ./libtest/libtests lib3010 127.0.0.1:35697/3010 > log/19/stdout3010 2> log/19/stderr3010 3010: stdout FAILED: --- log/19/check-expected 2025-07-18 09:41:46.334574959 +0000 +++ log/19/check-generated 2025-07-18 09:41:46.333574960 +0000 @@ -1,2 +0,0 @@ -Retry-After 2[LF] -Retry-After 0[LF] == Contents of files in the log/19/ dir after test 3010 === Start of file check-expected Retry-After 2[LF] Retry-After 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/19/valgrind3010 ./libtest/libtests lib3010 127.0.0.1:35697/3010 > log/19/stdout3010 2> log/19/stderr3010 === End of file commands.log === Start of file http_server.log 09:41:45.623948 ====> Client connect 09:41:45.624272 accept_connection 3 returned 4 09:41:45.624429 accept_connection 3 returned 0 09:41:45.624721 Read 93 bytes 09:41:45.624837 Process 93 bytes request 09:41:45.624932 Got request: GET /verifiedserver HTTP/1.1 09:41:45.625012 Are-we-friendly question received 09:41:45.625428 Wrote request (93 bytes) input to log/19/server.input 09:41:45.625787 Identifying ourselves as friends 09:41:45.626366 Response sent (56 bytes) and written to log/19/server.response 09:41:45.629577 special request received, no persistency 09:41:45.629715 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35697... * Connected to 127.0.0.1 (127.0.0.1) port 35697 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35697 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73791 === End of file http_verify.out === Start of file server.cmd Testnum 3010 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73791 === End of file server.response === Start of file valgrind3010 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3010 test 3017...[MQTT SUBSCRIBE with pathological PUBLISH length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind3017 ../src/curl -q --output log/36/curl3017.out --include --trace log/36/trace3017 --trace-config all --trace-time mqtt://127.0.0.1:39375/3017 -m 3 > log/36/stdout3017 2> log/36/stderr3017 3017: protocol FAILED! There was no content at all in the file log/36/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/36/ dir after test 3017 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/36/valgrind3017 ../src/curl -q --output log/36/curl3017.out --include --trace log/36/trace3017 --trace-config all --trace-time mqtt://127.0.0.1:39375/3017 -m 3 > log/36/stdout3017 2> log/36/stderr3017 === End of file commands.log === Start of file server.cmd excessive-remaining TRUE Testnum 3017 === End of file server.cmd === Start of file valgrind3017 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3017 * starts no server test 3211...[uint_bset unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind3211 ./unit/units unit3211 - > log/38/stdout3211 2> log/38/stderr3211 units returned 1, when expecting 0 3211: exit FAILED == Contents of files in the log/38/ dir after test 3211 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/38/valgrind3211 ./unit/units unit3211 - > log/38/stdout3211 2> log/38/stderr3211 === End of file commands.log === Start of file server.cmd Testnum 3211 === End of file server.cmd === Start of file valgrind3211 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: toCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind3020 ../src/curl -q --output log/20/curl3020.out --include --trace-ascii log/20/trace3020 --trace-config all --trace-time --connect-to ::example.com:example.com http://example.com:45475/3020 > log/20/stdout3020 2> log/20/stderr3020 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind3008 ../src/curl -q --trace-ascii log/28/trace3008 --trace-config all --trace-time http://127.0.0.1:37545/this/is/the/3008 -O --output-dir /build/curl/src/build-curl/tests/log/28 > log/28/stdout3008 2> log/28/stderr3008 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3007 ../src/curl -q --output log/6/curl3007.out --include --trace-ascii log/6/trace3007 --trace-config all --trace-time smtp://127.0.0.1:45861/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T - log/6/stdout3007 2> log/6/stderr3007 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind3011 ../src/curl -q --trace-ascii log/61/trace3011 --trace-config all --trace-time http://127.0.0.1:44381/this/is/the/3011 -O --output-dir /build/curl/src/build-curl/tests/log/61/tmp --create-dirs > log/61/stdout3011 2> log/61/stderr3011 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind3005 ../src/curl -q --output log/35/curl3005.out --include --trace-ascii log/35/trace3005 --trace-config all --trace-time smtp://127.0.0.1:42553/3005 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/35/stdout3005 2> log/35/stderr3005 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind3012 ../src/curl -q --trace-ascii log/45/trace3012 --trace-config all --trace-time http://127.0.0.1:34239/this/is/the/3012 -OJR --output-dir /build/curl/src/build-curl/tests/log/45 > log/45/stdout3012 2> log/45/stderr3012 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3029 ../src/curl -q --output log/7/curl3029.out --include --trace-ascii log/7/trace3029 --trace-config all --trace-time -D log/7/heads3029 http://127.0.0.1:44647/3029 http://127.0.0.1:44647/3029 --next -D log/7/heads3029 http://127.0.0.1:44647/3029 > log/7/stdout3029 2> log/7/stderr3029 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind3002 ../src/curl -q --output log/59/curl3002.out --include --trace-ascii log/59/trace3002 --trace-config all --trace-time smtp://127.0.0.1:40603/3002 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/59/stdout3002 2> log/59/stderr3002 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3031 ../src/curl -q --output log/1/curl3031.out --include --trace-ascii log/1/trace3031 --trace-config all --trace-time http://127.0.0.1:40633/this/is/the/3031 --dump-header /build/curl/src/build-curl/tests/log/1/tmp/out.txt --create-dirs > log/1/stdout3031 2> log/1/stderr3031 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind3104 ./libtest/libtests lib3104 http://127.0.0.1:45607/3104 > log/32/stdout3104 2> log/32/stderr3104 install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3211 test 3009...[--output-dir a non-existing directory] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind3009 ../src/curl -q --trace-ascii log/21/trace3009 --trace-config all --trace-time http://127.0.0.1:34827/this/is/the/3009 -O --output-dir /build/curl/src/build-curl/tests/not-there > log/21/stdout3009 2> log/21/stderr3009 3009: protocol FAILED! There was no content at all in the file log/21/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/21/ dir after test 3009 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/21/valgrind3009 ../src/curl -q --trace-ascii log/21/trace3009 --trace-config all --trace-time http://127.0.0.1:34827/this/is/the/3009 -O --output-dir /build/curl/src/build-curl/tests/not-there > log/21/stdout3009 2> log/21/stderr3009 === End of file commands.log === Start of file http_server.log 09:41:45.658148 ====> Client connect 09:41:45.658400 accept_connection 3 returned 4 09:41:45.658655 accept_connection 3 returned 0 09:41:45.659216 Read 93 bytes 09:41:45.659359 Process 93 bytes request 09:41:45.659446 Got request: GET /verifiedserver HTTP/1.1 09:41:45.659609 Are-we-friendly question received 09:41:45.659868 Wrote request (93 bytes) input to log/21/server.input 09:41:45.660061 Identifying ourselves as friends 09:41:45.660918 Response sent (56 bytes) and written to log/21/server.response 09:41:45.661045 special request received, no persistency 09:41:45.661125 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34827... * Connected to 127.0.0.1 (127.0.0.1) port 34827 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34827 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73789 === End of file http_verify.out === Start of file server.cmd Testnum 3009 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73789 === End of file server.response === Start of file valgrind3009 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3009 * starts no server test 3213...[uint_spbset unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind3213 ./unit/units unit3213 - > log/22/stdout3213 2> log/22/stderr3213 units returned 1, when expecting 0 3213: exit FAILED == Contents of files in the log/22/ dir after test 3213 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/22/valgrind3213 ./unit/units unit3213 - > log/22/stdout3213 2> log/22/stderr3213 === End of file commands.log === Start of file server.cmd Testnum 3213 === End of file server.cmd === Start of file valgrind3213 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3213 test 3019...[HTTP with invalid --resolve syntax] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind3019 ../src/curl -q --output log/26/curl3019.out --include --trace-ascii log/26/trace3019 --trace-config all --trace-time --resolve 46481:example.com:127.0.0.1 http://example.com:46481/3019 > log/26/stdout3019 2> log/26/stderr3019 curl returned 1, when expecting 49 3019: exit FAILED == Contents of files in the log/26/ dir after test 3019 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/26/valgrind3019 ../src/curl -q --output log/26/curl3019.out --include --trace-ascii log/26/trace3019 --trace-config all --trace-time --resolve 46481:example.com:127.0.0.1 http://example.com:46481/3019 > log/26/stdout3019 2> log/26/stderr3019 === End of file commands.log === Start of file http_server.log 09:41:45.764376 ====> Client connect 09:41:45.764772 accept_connection 3 returned 4 09:41:45.764949 accept_connection 3 returned 0 09:41:45.766042 Read 93 bytes 09:41:45.766197 Process 93 bytes request 09:41:45.766299 Got request: GET /verifiedserver HTTP/1.1 09:41:45.766389 Are-we-friendly question received 09:41:45.766762 Wrote request (93 bytes) input to log/26/server.input 09:41:45.767410 Identifying ourselves as friends 09:41:45.768263 Response sent (56 bytes) and written to logCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind3025 ./libtest/libtests lib3025 http://127.0.0.1:34829/3025 > log/16/stdout3025 2> log/16/stderr3025 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind3014 ../src/curl -q --include --trace-ascii log/42/trace3014 --trace-config all --trace-time http://127.0.0.1:42819/1439 --write-out '%{num_headers}' > log/42/stdout3014 2> log/42/stderr3014 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind3015 ../src/curl -q --include --trace-ascii log/41/trace3015 --trace-config all --trace-time http://127.0.0.1:35093/3015 -w "%{num_headers}\n" -L -o/dev/null > log/41/stdout3015 2> log/41/stderr3015 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind3212 ./unit/units unit3212 - > log/33/stdout3212 2> log/33/stderr3212 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3030 ../src/curl -q --output log/2/curl3030.out --include --trace-ascii log/2/trace3030 --trace-config all --trace-time -D log/2/heads3030 http://127.0.0.1:39659/3030 http://127.0.0.1:39659/3030 > log/2/stdout3030 2> log/2/stderr3030 /26/server.response 09:41:45.768380 special request received, no persistency 09:41:45.768443 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46481... * Connected to 127.0.0.1 (127.0.0.1) port 46481 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46481 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73780 === End of file http_verify.out === Start of file server.cmd Testnum 3019 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73780 === End of file server.response === Start of file valgrind3019 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3019 * starts no server test 3105...[curl_multi_remove_handle twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind3105 ./libtest/libtests lib3105 - > log/27/stdout3105 2> log/27/stderr3105 libtests returned 1, when expecting 0 3105: exit FAILED == Contents of files in the log/27/ dir after test 3105 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/27/valgrind3105 ./libtest/libtests lib3105 - > log/27/stdout3105 2> log/27/stderr3105 === End of file commands.log === Start of file server.cmd Testnum 3105 === End of file server.cmd === Start of file valgrind3105 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3105 test 3018...[MQTT SUBSCRIBE with PUBLISH larger than --max-filesize] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind3018 ../src/curl -q --output log/30/curl3018.out --include --trace log/30/trace3018 --trace-config all --trace-time mqtt://127.0.0.1:42935/3018 --max-filesize 11 > log/30/stdout3018 2> log/30/stderr3018 3018: protocol FAILED! There was no content at all in the file log/30/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/30/ dir after test 3018 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/30/valgrind3018 ../src/curl -q --output log/30/curl3018.out --include --trace log/30/trace3018 --trace-config all --trace-time mqtt://127.0.0.1:42935/3018 --max-filesize 11 > log/30/stdout3018 2> log/30/stderr3018 === End of file commands.log === Start of file server.cmd Testnum 3018 === End of file server.cmd === Start of file valgrind3018 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3018 test 3004...[SMTP multiple and invalid (middle) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind3004 ../src/curl -q --output log/40/curl3004.out --include --trace-ascii log/40/trace3004 --trace-config all --trace-time smtp://127.0.0.1:41163/3004 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/40/stdout3004 2> log/40/stderr3004 3004: protocol FAILED! There was no content at all in the file log/40/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/40/ dir after test 3004 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-checCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind3013 ../src/curl -q --trace-ascii log/43/trace3013 --trace-config all --trace-time http://127.0.0.1:41267/this/is/the/3013 -O --output-dir /build/curl/src/build-curl/tests/log/43 http://127.0.0.1:41267/another/3013 -o second3013 --output-dir /build/curl/src/build-curl/tests/log/43 > log/43/stdout3013 2> log/43/stderr3013 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind3201 ../src/curl -q --output log/23/curl3201.out --include --trace-ascii log/23/trace3201 --trace-config all --trace-time http://127.0.0.1:42467/3201 --haproxy-clientip "192.168.1.1" -H "Testno: 3201" > log/23/stdout3201 2> log/23/stderr3201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind3027 ./libtest/libtests lib3027 ftp://127.0.0.1:36293/3027 > log/9/stdout3027 2> log/9/stderr3027 k=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/40/valgrind3004 ../src/curl -q --output log/40/curl3004.out --include --trace-ascii log/40/trace3004 --trace-config all --trace-time smtp://127.0.0.1:41163/3004 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/40/stdout3004 2> log/40/stderr3004 === End of file commands.log === Start of file server.cmd Testnum 3004 === End of file server.cmd === Start of file smtp_server.log 09:41:45.353319 ====> Client connect 09:41:45.355840 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:45.359958 < "EHLO verifiedserver" 09:41:45.360393 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:45.362407 < "HELP" 09:41:45.362825 > "214 WE ROOLZ: 118283[CR][LF]" 09:41:45.363054 return proof we are we 09:41:45.368857 < "QUIT" 09:41:45.373859 > "221 curl ESMTP server signing off[CR][LF]" 09:41:45.374179 MAIN sockfilt said DISC 09:41:45.374433 ====> Client disconnected 09:41:45.374961 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:45.606359 ====> Client connect 09:41:45.608380 Received DATA (on stdin) 09:41:45.608606 > 160 bytes data, server => client 09:41:45.608828 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:45.608959 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:45.609044 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:45.612785 < 21 bytes data, client => server 09:41:45.612941 'EHLO verifiedserver\r\n' 09:41:45.614450 Received DATA (on stdin) 09:41:45.614660 > 53 bytes data, server => client 09:41:45.614750 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:45.615305 < 6 bytes data, client => server 09:41:45.615434 'HELP\r\n' 09:41:45.620599 Received DATA (on stdin) 09:41:45.620750 > 22 bytes data, server => client 09:41:45.620835 '214 WE ROOLZ: 118283\r\n' 09:41:45.621713 < 6 bytes data, client => server 09:41:45.621846 'QUIT\r\n' 09:41:45.622960 Received DATA (on stdin) 09:41:45.623089 > 35 bytes data, server => client 09:41:45.623326 '221 curl ESMTP server signing off\r\n' 09:41:45.627201 ====> Client disconnect 09:41:45.629010 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3004 From: different To: another body === End of file stdin-for-3004 === Start of file valgrind3004 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3004 test 3003...[SMTP multiple and invalid (last) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind3003 ../src/curl -q --output log/47/curl3003.out --include --trace-ascii log/47/trace3003 --trace-config all --trace-time smtp://127.0.0.1:34335/3003 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt invalid.five --mail-from sender@example.com -T - log/47/stdout3003 2> log/47/stderr3003 3003: protocol FAILED! There was no content at all in the file log/47/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/47/ dir after test 3003 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/47/valgrind3003 ../src/curl -q --output log/47/curl3003.out --include --trace-ascii log/47/trace3003 --trace-config all --trace-time smtp://127.0.0.1:34335/3003 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt invalid.five --mail-from sender@example.com -T - log/47/stdout3003 2> log/47/stderr3003 === End of file commands.log === Start of file server.cmd Testnum 3003 === End of file server.cmd === Start of file smtp_server.log 09:41:45.312136 ====> Client connect 09:41:45.317002 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:45.318251 < "EHLO verifiedserver" 09:41:45.319248 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:45.321096 < "HELP" 09:41:45.322589 > "214 WE ROOLZ: 118532[CR][LF]" 09:41:45.322898 return proof we are we 09:41:45.324006 < "QUIT" 09:41:45.324710 > "221 curl ESMTP server signing off[CR][LF]" 09:41:45.326890 MAIN sockfilt said DISC 09:41:45.327212 ====> Client disconnected 09:41:45.327650 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:44.565105 ====> Client connect 09:41:44.569604 Received DATA (on stdin) 09:41:44.569806 > 160 bytes data, server => client 09:41:44.569934 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:44.570051 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:44.570160 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:44.571060 < 21 bytes data, client => server 09:41:44.571192 'EHLO verifiedserver\r\n' 09:41:44.572426 Received DATA (on stdin) 09:41:44.572765 > 53 bytes data, server => client 09:41:44.573260 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:44.574005 < 6 bytes data, client => server 09:41:44.574136 'HELP\r\n' 09:41:44.575145 Received DATA (on stdin) 09:41:44.575268 > 22 bytes data, server => client 09:41:44.575413 '214 WE ROOLZ: 118532\r\n' 09:41:44.576973 < 6 bytes data, client => server 09:41:44.577098 'QUIT\r\n' 09:41:44.578107 Received DATA (on stdin) 09:41:44.578240 > 35 bytes data, server => client 09:41:44.578810 '221 curl ESMTP server signing off\r\n' 09:41:44.579317 ====> Client disconnect 09:41:44.581794 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3003 From: different To: another body === End of file stdin-for-3003 === Start of file valgrind3003 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A mCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind3101 ./libtest/libtests lib3101 http://127.0.0.1:35945/3101 > log/57/stdout3101 2> log/57/stderr3101 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind3026 ./libtest/libtests lib3026 none > log/13/stdout3026 2> log/13/stderr3026 ust-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3003 test 3006...[SMTP with multiple invalid (all) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind3006 ../src/curl -q --output log/55/curl3006.out --include --trace-ascii log/55/trace3006 --trace-config all --trace-time smtp://127.0.0.1:34681/3006 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt invalid.two --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/55/stdout3006 2> log/55/stderr3006 3006: protocol FAILED! There was no content at all in the file log/55/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/55/ dir after test 3006 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/55/valgrind3006 ../src/curl -q --output log/55/curl3006.out --include --trace-ascii log/55/trace3006 --trace-config all --trace-time smtp://127.0.0.1:34681/3006 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt invalid.two --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/55/stdout3006 2> log/55/stderr3006 === End of file commands.log === Start of file server.cmd Testnum 3006 === End of file server.cmd === Start of file smtp_server.log 09:41:45.300225 ====> Client connect 09:41:45.303271 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:45.305658 < "EHLO verifiedserver" 09:41:45.307603 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:45.308890 < "HELP" 09:41:45.309709 > "214 WE ROOLZ: 118182[CR][LF]" 09:41:45.310035 return proof we are we 09:41:45.312248 < "QUIT" 09:41:45.312630 > "221 curl ESMTP server signing off[CR][LF]" 09:41:45.315882 MAIN sockfilt said DISC 09:41:45.316202 ====> Client disconnected 09:41:45.316647 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:45.553154 ====> Client connect 09:41:45.555638 Received DATA (on stdin) 09:41:45.555858 > 160 bytes data, server => client 09:41:45.556123 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:45.556265 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:45.556370 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:45.558373 < 21 bytes data, client => server 09:41:45.559671 'EHLO verifiedserver\r\n' 09:41:45.560156 Received DATA (on stdin) 09:41:45.560292 > 53 bytes data, server => client 09:41:45.560613 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:45.561835 < 6 bytes data, client => server 09:41:45.561965 'HELP\r\n' 09:41:45.563029 Received DATA (on stdin) 09:41:45.563197 > 22 bytes data, server => client 09:41:45.564013 '214 WE ROOLZ: 118182\r\n' 09:41:45.565105 < 6 bytes data, client => server 09:41:45.565241 'QUIT\r\n' 09:41:45.566796 Received DATA (on stdin) 09:41:45.566931 > 35 bytes data, server => client 09:41:45.567013 '221 curl ESMTP server signing off\r\n' 09:41:45.567592 ====> Client disconnect 09:41:45.570747 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3006 From: different To: another body === End of file stdin-for-3006 === Start of file valgrind3006 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3006 test 3031...[--output-dir with --create-dirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3031 ../src/curl -q --output log/1/curl3031.out --include --trace-ascii log/1/trace3031 --trace-config all --trace-time http://127.0.0.1:40633/this/is/the/3031 --dump-header /build/curl/src/build-curl/tests/log/1/tmp/out.txt --create-dirs > log/1/stdout3031 2> log/1/stderr3031 3031: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 3031 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3031 ../src/curl -q --output log/1/curl3031.out --include --trace-ascii log/1/trace3031 --trace-config all --trace-time http://127.0.0.1:40633/this/is/the/3031 --dump-header /build/curl/src/build-curl/tests/log/1/tmp/out.txt --create-dirs > log/1/stdout3031 2> log/1/stderr3031 === End of file commands.log === Start of file http_server.log 09:41:45.835889 ====> Client connect 09:41:45.836221 accept_connection 3 returned 4 09:41:45.836387 accept_connection 3 returned 0 09:41:45.836665 Read 93 bytes 09:41:45.836778 Process 93 bytes request 09:41:45.836869 Got request: GET /verifiedserver HTTP/1.1 09:41:45.836948 Are-we-friendly question received 09:41:45.837179 Wrote request (93 bytes) input to log/1/server.input 09:41:45.837359 Identifying ourselves as friends 09:41:45.838191 Response sent (56 bytes) and written to log/1/server.response 09:41:45.838287 special request received, no persistency 09:41:45.838346 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40633... * Connected to 127.0.0.1 (127.0.0.1) port 40633 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40633 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73806 === End of file http_verify.out === Start of file server.cmd Testnum 3031 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73806 === End of file server.response === Start of file valgrind3031 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3031 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind3103 ./libtest/libtests lib3103 http://127.0.0.1:40909/3103 > log/29/stdout3103 2> log/29/stderr3103 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind3032 ../src/curl -q --output log/49/curl3032.out --include --trace-ascii log/49/trace3032 --trace-config all --trace-time --location http://127.0.0.1:42667/3032 > log/49/stdout3032 2> log/49/stderr3032 test 3030...[HTTP with multiple transfers in one -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3030 ../src/curl -q --output log/2/curl3030.out --include --trace-ascii log/2/trace3030 --trace-config all --trace-time -D log/2/heads3030 http://127.0.0.1:39659/3030 http://127.0.0.1:39659/3030 > log/2/stdout3030 2> log/2/stderr3030 3030: data FAILED: --- log/2/check-expected 2025-07-18 09:41:46.626540671 +0000 +++ log/2/check-generated 2025-07-18 09:41:46.625574812 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] == Contents of files in the log/2/ dir after test 3030 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 6[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3030 ../src/curl -q --output log/2/curl3030.out --include --trace-ascii log/2/trace3030 --trace-config all --trace-time -D log/2/heads3030 http://127.0.0.1:39659/3030 http://127.0.0.1:39659/3030 > log/2/stdout3030 2> log/2/stderr3030 === End of file commands.log === Start of file http_server.log 09:41:45.868976 ====> Client connect 09:41:45.869371 accept_connection 3 returned 4 09:41:45.870376 accept_connection 3 returned 0 09:41:45.870661 Read 93 bytes 09:41:45.870788 Process 93 bytes request 09:41:45.870900 Got request: GET /verifiedserver HTTP/1.1 09:41:45.871000 Are-we-friendly question received 09:41:45.871249 Wrote request (93 bytes) input to log/2/server.input 09:41:45.871447 Identifying ourselves as friends 09:41:45.872405 Response sent (56 bytes) and written to log/2/server.response 09:41:45.880696 special request received, no persistency 09:41:45.880801 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39659... * Connected to 127.0.0.1 (127.0.0.1) port 39659 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39659 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73807 === End of file http_verify.out === Start of file server.cmd Testnum 3030 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73807 === End of file server.response === Start of file valgrind3030 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3030 test 3007...[SMTP with invalid --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3007 ../src/curl -q --output log/6/curl3007.out --include --trace-ascii log/6/trace3007 --trace-config all --trace-time smtp://127.0.0.1:45861/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T - log/6/stdout3007 2> log/6/stderr3007 3007: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 3007 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3007 ../src/curl -q --output log/6/curl3007.out --include --trace-ascii log/6/trace3007 --trace-config all --trace-time smtp://127.0.0.1:45861/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T - log/6/stdout3007 2> log/6/stderr3007 === End of file commands.log === Start of file server.cmd Testnum 3007 === End of file server.cmd === Start of file smtp_server.log 09:41:45.434444 ====> Client connect 09:41:45.436020 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:45.442423 < "EHLO verifiedserver" 09:41:45.446958 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:45.449644 < "HELP" 09:41:45.450141 > "214 WE ROOLZ: 118018[CR][LF]" 09:41:45.450528 return proof we are we 09:41:45.453945 < "QUIT" 09:41:45.454425 > "221 curl ESMTP server signing off[CR][LF]" 09:41:45.461162 MAIN sockfilt said DISC 09:41:45.461817 ====> Client disconnected 09:41:45.462554 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:44.687381 ====> Client connect 09:41:44.693580 Received DATA (on stdin) 09:41:44.693748 > 160 bytes data, server => client 09:41:44.693838 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:44.693931 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:44.694007 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:44.694858 < 21 bytes data, client => server 09:41:44.695013 'EHLO verifiedserver\r\n' 09:41:44.696631 Received DATA (on stdin) 09:41:44.696784 > 53 bytes data, server => client 09:41:44.701172 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:44.702605 < 6 bytes data, client => server 09:41:44.702768 'HELP\r\n' 09:41:44.704658 Received DATA (on stdin) 09:41:44.704812 > 22 bytes data, server => client 09:41:44.704914 '214 WE ROOLZ: 118018\r\n' 09:41:44.706536 < 6 bytes data, client => server 09:41:44.706694 'QUIT\r\n' 09:41:44.710107 Received DATA (on stdin) 09:41:44.710355 > 35 bytes data, server => client 09:41:44.710554 '221 curl ESMTP server signing off\r\n' 09:41:44.711223 ====> Client disconnect 09:41:44.716564 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3007 From: different To: another body === End of file stdin-for-3007 === Start of file valgrind3007 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3007 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind3204 ../src/curl -q --output log/44/curl3204.out --include --trace-ascii log/44/trace3204 --trace-config all --trace-time http://127.0.0.1:34655/3204 --etag-compare log/44/etag3204 --etag-save log/44/etag3204 > log/44/stdout3204 2> log/44/stderr3204 test 3029...[HTTP with multiple -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3029 ../src/curl -q --output log/7/curl3029.out --include --trace-ascii log/7/trace3029 --trace-config all --trace-time -D log/7/heads3029 http://127.0.0.1:44647/3029 http://127.0.0.1:44647/3029 --next -D log/7/heads3029 http://127.0.0.1:44647/3029 > log/7/stdout3029 2> log/7/stderr3029 3029: data FAILED: --- log/7/check-expected 2025-07-18 09:41:46.693362337 +0000 +++ log/7/check-generated 2025-07-18 09:41:46.692574778 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] == Contents of files in the log/7/ dir after test 3029 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 6[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3029 ../src/curl -q --output log/7/curl3029.out --include --trace-ascii log/7/trace3029 --trace-config all --trace-time -D log/7/heads3029 http://127.0.0.1:44647/3029 http://127.0.0.1:44647/3029 --next -D log/7/heads3029 http://127.0.0.1:44647/3029 > log/7/stdout3029 2> log/7/stderr3029 === End of file commands.log === Start of file http_server.log 09:41:45.798401 ====> Client connect 09:41:45.798863 accept_connection 3 returned 4 09:41:45.799036 accept_connection 3 returned 0 09:41:45.799161 Read 93 bytes 09:41:45.799245 Process 93 bytes request 09:41:45.799331 Got request: GET /verifiedserver HTTP/1.1 09:41:45.799403 Are-we-friendly question received 09:41:45.799719 Wrote request (93 bytes) input to log/7/server.input 09:41:45.799897 Identifying ourselves as friends 09:41:45.800701 Response sent (56 bytes) and written to log/7/server.response 09:41:45.800816 special request received, no persistency 09:41:45.800877 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44647... * Connected to 127.0.0.1 (127.0.0.1) port 44647 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44647 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73801 === End of file http_verify.out === Start of file server.cmd Testnum 3029 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73801 === End of file server.response === Start of file valgrind3029 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3029 test 3027...[Get a file via FTP but 550 after MDTM command] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind3027 ./libtest/libtests lib3027 ftp://127.0.0.1:36293/3027 > log/9/stdout3027 2> log/9/stderr3027 3027: protocol FAILED! There was no content at all in the file log/9/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/9/ dir after test 3027 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/9/valgrind3027 ./libtest/libtests lib3027 ftp://127.0.0.1:36293/3027 > log/9/stdout3027 2> log/9/stderr3027 === End of file commands.log === Start of file ftp_server.log 09:41:45.621502 ====> Client connect 09:41:45.626960 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:45.635597 < "USER anonymous" 09:41:45.642970 > "331 We are happy you popped in![CR][LF]" 09:41:45.644972 < "PASS ftp@example.com" 09:41:45.647014 > "230 Welcome you silly person[CR][LF]" 09:41:45.649279 < "PWD" 09:41:45.653939 > "257 "/" is current directory[CR][LF]" 09:41:45.655881 < "EPSV" 09:41:45.656179 ====> Passive DATA channel requested by client 09:41:45.656380 DATA sockfilt for passive data channel starting... 09:41:45.670816 DATA sockfilt for passive data channel started (pid 165133) 09:41:45.671943 DATA sockfilt for passive data channel listens on port 34601 09:41:45.673206 > "229 Entering Passive Mode (|||34601|)[LF]" 09:41:45.673464 Client has been notified that DATA conn will be accepted on port 34601 09:41:45.674223 Client connects to port 34601 09:41:45.674479 ====> Client established passive DATA connection on port 34601 09:41:45.675290 < "TYPE I" 09:41:45.675687 > "200 I modify TYPE as you wanted[CR][LF]" 09:41:45.680525 < "SIZE verifiedserver" 09:41:45.682112 > "213 17[CR][LF]" 09:41:45.682652 < "RETR verifiedserver" 09:41:45.686101 > "150 Binary junk (17 bytes).[CR][LF]" 09:41:45.686694 =====> Closing passive DATA connection... 09:41:45.687019 Server disconnects passive DATA connection 09:41:45.687488 Server disconnected passive DATA connection 09:41:45.687728 DATA sockfilt for passive data channel quits (pid 165133) 09:41:45.690236 DATA sockfilt for passive data channel quit (pid 165133) 09:41:45.690489 =====> Closed passive DATA connection 09:41:45.690914 > "226 File transfer complete[CR][LF]" 09:41:45.730242 < "QUIT" 09:41:45.730658 > "221 bye bye baby[CR][LF]" 09:41:45.737080 MAIN sockfilt said DISC 09:41:45.737447 ====> Client disconnected 09:41:45.738028 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 09:41:44.874664 ====> Client connect 09:41:44.878605 Received DATA (on stdin) 09:41:44.878776 > 160 bytes data, server => client 09:41:44.881028 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:44.881158 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:44.881242 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:44.886638 < 16 bytes data, client => server 09:41:44.886810 'USER anonymous\r\n' 09:41:44.891598 Received DATA (on stdin) 09:41:44.891842 > 33 bytes data, server => client 09:41:44.897058 '331 We are happy you popped in!\r\n' 09:41:44.897794 < 22 bytes data, client => server 09:41:44.897935 'PASS ftp@example.com\r\n' 09:41:44.899052 Received DATA (on stdin) 09:41:44.899278 > 30 bytes data, server => client 09:41:44.901103 '230 Welcome you silly person\r\n' 09:41:44.902008 < 5 bytes data, client => server 09:41:44.902145 'PWD\r\n' 09:41:44.903449 Received DATA (on stdin) 09:41:44.903819 > 30 bytes data, server => client 09:41:44.908026 '257 "/" is current directory\r\n' 09:41:44.911567 < 6 bytes data, client => server 09:41:44.911717 'EPSV\r\n' 09:41:44.926083 Received DATA (on stdin) 09:41:44.926221 > 38 bytes data, server => client 09:41:44.926392 '229 Entering Passive Mode (|||34601|)\n' 09:41:44.927988 < 8 bytes data, client => server 09:41:44.928132 'TYPE I\r\n' 09:41:44.931595 Received DATA (on stdin) 09:41:44.931753 > 33 bytes data, server => client 09:41:44.931824 '200 I modify TYPE as you wanted\r\n' 09:41:44.932658 < 21 bytes data, client => server 09:41:44.932799 'SIZE verifiedserver\r\n' 09:41:44.934657 Received DATA (on stdin) 09:41:44.934808 > 8 bytes data, server => client 09:41:44.934961 '213 17\r\n' 09:41:44.935442 < 21 bytes data, client => server 09:41:44.935647 'RETR verifiedserver\r\n' 09:41:44.940993 Received DATA (on stdin) 09:41:44.941105 > 29 bytes data, server => client 09:41:44.941178 '150 Binary junk (17 bytes).\r\n' 09:41:44.944591 Received DATA (on stdin) 09:41:44.944742 > 28 bytes data, server => client 09:41:44.944817 '226 File transfer complete\r\n' 09:41:44.983292 < 6 bytes data, client => server 09:41:44.983452 'QUIT\r\n' 09:41:44.984381 Received DATA (on stdin) 09:41:44.984608 > 18 bytes data, server => client 09:41:44.984700 '221 bye bye baby\r\n' 09:41:44.990434 ====> Client disconnect 09:41:44.991210 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 09:41:45.922931 Running IPv4 version 09:41:45.923562 Listening on port 34601 09:41:45.923979 Wrote pid 165133 to log/9/server/ftp_sockdata.pid 09:41:45.924143 Received PING (on stdin) 09:41:45.924976 Received PORT (on stdin) 09:41:45.927452 ====> Client connect 09:41:45.940202 Received DATA (on stdin) 09:41:45.940368 > 17 bytes data, server => client 09:41:45.940444 'WE ROOLZ: 77386\r\n' 09:41:45.940984 Received DISC (on stdin) 09:41:45.941839 ====> Client forcibly disconnected 09:41:45.942267 Received QUIT (on stdin) 09:41:45.942406 quits 09:41:45.942928 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 550 Permission denied Testnum 3027 === End of file server.cmd === Start of file valgrind3027 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3027 test 3025...[CURLOPT_HTTP200ALIASES] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind3025 ./libtest/libtests lib3025 http://127.0.0.1:34829/3025 > log/16/stdout3025 2> log/16/stderr3025 3025: data FAILED: --- log/16/check-expected 2025-07-18 09:41:46.763574742 +0000 +++ log/16/check-generated 2025-07-18 09:41:46.762574742 +0000 @@ -1,4 +0,0 @@ -ICY 200 OK[LF] -Content-Length: 7[LF] -[LF] -MooMoo[LF] == Contents of files in the log/16/ dir after test 3025 === Start of file check-expected ICY 200 OK[LF] Content-Length: 7[LF] [LF] MooMoo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/16/valgrind3025 ./libtest/libtests lib3025 http://127.0.0.1:34829/3025 > log/16/stdout3025 2> log/16/stderr3025 === End of file commands.log === Start of file http_server.log 09:41:45.826298 ====> Client connect 09:41:45.826744 accept_connection 3 returned 4 09:41:45.826935 accept_connection 3 returned 0 09:41:45.827087 Read 93 bytes 09:41:45.827193 Process 93 bytes request 09:41:45.827285 Got request: GET /verifiedserver HTTP/1.1 09:41:45.827359 Are-we-friendly question received 09:41:45.827676 Wrote request (93 bytes) input to log/16/server.input 09:41:45.827875 Identifying ourselves as friends 09:41:45.828761 Response sent (56 bytes) and written to log/16/server.response 09:41:45.828890 special request received, no persistency 09:41:45.828954 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34829... * Connected to 127.0.0.1 (127.0.0.1) port 34829 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34829 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73794 === End of file http_verify.out === Start of file server.cmd Testnum 3025 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73794 === End of file server.response === Start of file valgrind3025 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3025 test 3020...[HTTP with invalid --connect-to syntax] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind3020 ../src/curl -q --output log/20/curl3020.out --include --trace-ascii log/20/trace3020 --trace-config all --trace-time --connect-to ::example.com:example.com http://example.com:45475/3020 > log/20/stdout3020 2> log/20/stderr3020 curl returned 1, when expecting 49 3020: exit FAILED == Contents of files in the log/20/ dir after test 3020 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/20/valgrind3020 ../src/curl -q --output log/20/curl3020.out --include --trace-ascii log/20/trace3020 --trace-config all --trace-time --connect-to ::example.com:example.com http://example.com:45475/3020 > log/20/stdout3020 2> log/20/stderr3020 === End of file commands.log === Start of file http_server.log 09:41:45.827940 ====> Client connect 09:41:45.828262 accept_connection 3 returned 4 09:41:45.828424 accept_connection 3 returned 0 09:41:45.828694 Read 93 bytes 09:41:45.828792 Process 93 bytes request 09:41:45.828864 Got request: GET /verifiedserver HTTP/1.1 09:41:45.828953 Are-we-friendly question received 09:41:45.829179 Wrote request (93 bytes) input to log/20/server.input 09:41:45.829383 Identifying ourselves as friends 09:41:45.830171 Response sent (56 bytes) and written to log/20/server.response 09:41:45.830278 special request received, no persistency 09:41:45.830347 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45475... * Connected to 127.0.0.1 (127.0.0.1) port 45475 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45475 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73786 === End of file http_verify.out === Start of file server.cmd Testnum 3020 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73786 === End of file server.response === Start of file valgrind3020 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3020 test 3201...[HTTP GET when PROXY Protocol enabled and spoofed client IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind3201 ../src/curl -q --output log/23/curl3201.out --include --trace-ascii log/23/trace3201 --trace-config all --trace-time http://127.0.0.1:42467/3201 --haproxy-clientip "192.168.1.1" -H "Testno: 3201" > log/23/stdout3201 2> log/23/stderr3201 3201: protocol FAILED! There was no content at all in the file log/23/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/23/ dir after test 3201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/23/valgrind3201 ../src/curl -q --output log/23/curl3201.out --include --trace-ascii log/23/trace3201 --trace-config all --trace-time http://127.0.0.1:42467/3201 --haproxy-clientip "192.168.1.1" -H "Testno: 3201" > log/23/stdout3201 2> log/23/stderr3201 === End of file commands.log === Start of file http_server.log 09:41:45.923882 ====> Client connect 09:41:45.924119 accept_connection 3 returned 4 09:41:45.924233 accept_connection 3 returned 0 09:41:45.928169 Read 93 bytes 09:41:45.928310 Process 93 bytes request 09:41:45.928388 Got request: GET /verifiedserver HTTP/1.1 09:41:45.928449 Are-we-friendly question received 09:41:45.928738 Wrote request (93 bytes) input to log/23/server.input 09:41:45.928888 Identifying ourselves as friends 09:41:45.935783 Response sent (56 bytes) and written to log/23/server.response 09:41:45.935920 special request received, no persistency 09:41:45.935998 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42467... * Connected to 127.0.0.1 (127.0.0.1) port 42467 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42467 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73788 === End of file http_verify.out === Start of file server.cmd Testnum 3201 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73788 === End of file server.response === Start of file valgrind3201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3201 test 3008...[--output-dir] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind3008 ../src/curl -q --trace-ascii log/28/trace3008 --trace-config all --trace-time http://127.0.0.1:37545/this/is/the/3008 -O --output-dir /build/curl/src/build-curl/tests/log/28 > log/28/stdout3008 2> log/28/stderr3008 3008: protocol FAILED! There was no content at all in the file log/28/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/28/ dir after test 3008 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/28/valgrind3008 ../src/curl -q --trace-ascii log/28/trace3008 --trace-config all --trace-time http://127.0.0.1:37545/this/is/the/3008 -O --output-dir /build/curl/src/build-curl/tests/log/28 > log/28/stdout3008 2> log/28/stderr3008 === End of file commands.log === Start of file http_server.log 09:41:45.730790 ====> Client connect 09:41:45.731091 accept_connection 3 returned 4 09:41:45.731280 accept_connection 3 returned 0 09:41:45.731425 Read 93 bytes 09:41:45.731607 Process 93 bytes request 09:41:45.731703 Got request: GET /verifiedserver HTTP/1.1 09:41:45.731778 Are-we-friendly question received 09:41:45.732010 Wrote request (93 bytes) input to log/28/server.input 09:41:45.732206 Identifying ourselves as friends 09:41:45.737769 Response sent (56 bytes) and written to log/28/server.response 09:41:45.737899 special request received, no persistency 09:41:45.737972 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:37545... * Connected to 127.0.0.1 (127.0.0.1) port 37545 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:37545 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73781 === End of file http_verify.out === Start of file server.cmd Testnum 3008 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73781 === End of file server.response === Start of file valgrind3008 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3008 test 3104...[CURLOPT_COOKIELIST with Netscape format] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind3104 ./libtest/libtests lib3104 http://127.0.0.1:45607/3104 > log/32/stdout3104 2> log/32/stderr3104 3104: protocol FAILED! There was no content at all in the file log/32/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/32/ dir after test 3104 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/32/valgrind3104 ./libtest/libtests lib3104 http://127.0.0.1:45607/3104 > log/32/stdout3104 2> log/32/stderr3104 === End of file commands.log === Start of file http_server.log 09:41:45.862356 ====> Client connect 09:41:45.862833 accept_connection 3 returned 4 09:41:45.862997 accept_connection 3 returned 0 09:41:45.863879 Read 93 bytes 09:41:45.864011 Process 93 bytes request 09:41:45.864088 Got request: GET /verifiedserver HTTP/1.1 09:41:45.864155 Are-we-friendly question received 09:41:45.864351 Wrote request (93 bytes) input to log/32/server.input 09:41:45.864587 Identifying ourselves as friends 09:41:45.866950 Response sent (56 bytes) and written to log/32/server.response 09:41:45.867067 special request received, no persistency 09:41:45.867128 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45607... * Connected to 127.0.0.1 (127.0.0.1) port 45607 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45607 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73778 === End of file http_verify.out === Start of file server.cmd Testnum 3104 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73778 === End of file server.response === Start of file valgrind3104 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3104 * starts no server test 3212...[uint_bset unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind3212 ./unit/units unit3212 - > log/33/stdout3212 2> log/33/stderr3212 units returned 1, when expecting 0 3212: exit FAILED == Contents of files in the log/33/ dir after test 3212 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/33/valgrind3212 ./unit/units unit3212 - > log/33/stdout3212 2> log/33/stderr3212 === End of file commands.log === Start of file server.cmd Testnum 3212 === End of file server.cmd === Start of file valgrind3212 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3212 test 3005...[SMTP multiple invalid (all but one) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind3005 ../src/curl -q --output log/35/curl3005.out --include --trace-ascii log/35/trace3005 --trace-config all --trace-time smtp://127.0.0.1:42553/3005 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/35/stdout3005 2> log/35/stderr3005 3005: protocol FAILED! There was no content at all in the file log/35/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/35/ dir after test 3005 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/35/valgrind3005 ../src/curl -q --output log/35/curl3005.out --include --trace-ascii log/35/trace3005 --trace-config all --trace-time smtp://127.0.0.1:42553/3005 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/35/stdout3005 2> log/35/stderr3005 === End of file commands.log === Start of file server.cmd Testnum 3005 === End of file server.cmd === Start of file smtp_server.log 09:41:45.353911 ====> Client connect 09:41:45.355487 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:45.359104 < "EHLO verifiedserver" 09:41:45.360460 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:45.362570 < "HELP" 09:41:45.363248 > "214 WE ROOLZ: 118209[CR][LF]" 09:41:45.363420 return proof we are we 09:41:45.365144 < "QUIT" 09:41:45.368975 > "221 curl ESMTP server signing off[CR][LF]" 09:41:45.369564 MAIN sockfilt said DISC 09:41:45.369887 ====> Client disconnected 09:41:45.370294 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:45.607049 ====> Client connect 09:41:45.608785 Received DATA (on stdin) 09:41:45.608928 > 160 bytes data, server => client 09:41:45.610640 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:45.610791 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:45.610858 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:45.611771 < 21 bytes data, client => server 09:41:45.611914 'EHLO verifiedserver\r\n' 09:41:45.613202 Received DATA (on stdin) 09:41:45.613316 > 53 bytes data, server => client 09:41:45.613461 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:45.615637 < 6 bytes data, client => server 09:41:45.615782 'HELP\r\n' 09:41:45.616687 Received DATA (on stdin) 09:41:45.616812 > 22 bytes data, server => client 09:41:45.617321 '214 WE ROOLZ: 118209\r\n' 09:41:45.618179 < 6 bytes data, client => server 09:41:45.618293 'QUIT\r\n' 09:41:45.619238 Received DATA (on stdin) 09:41:45.619354 > 35 bytes data, server => client 09:41:45.619558 '221 curl ESMTP server signing off\r\n' 09:41:45.623057 ====> Client disconnect 09:41:45.624257 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3005 From: different To: another body === End of file stdin-for-3005 === Start of file valgrind3005 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3005 test 3015...[HTTP GET -w num_headers with redirected fetch (2 connects)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind3015 ../src/curl -q --include --trace-ascii log/41/trace3015 --trace-config all --trace-time http://127.0.0.1:35093/3015 -w "%{num_headers}\n" -L -o/dev/null > log/41/stdout3015 2> log/41/stderr3015 3015: stdout FAILED: --- log/41/check-expected 2025-07-18 09:41:46.879185883 +0000 +++ log/41/check-generated 2025-07-18 09:41:46.877574684 +0000 @@ -1 +0,0 @@ -4[CR][LF] == Contents of files in the log/41/ dir after test 3015 === Start of file check-expected 4[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/41/valgrind3015 ../src/curl -q --include --trace-ascii log/41/trace3015 --trace-config all --trace-time http://127.0.0.1:35093/3015 -w "%{num_headers}\n" -L -o/dev/null > log/41/stdout3015 2> log/41/stderr3015 === End of file commands.log === Start of file http_server.log 09:41:45.746197 ====> Client connect 09:41:45.746593 accept_connection 3 returned 4 09:41:45.746777 accept_connection 3 returned 0 09:41:45.746922 Read 93 bytes 09:41:45.747030 Process 93 bytes request 09:41:45.747122 Got request: GET /verifiedserver HTTP/1.1 09:41:45.747206 Are-we-friendly question received 09:41:45.747453 Wrote request (93 bytes) input to log/41/server.input 09:41:45.747766 Identifying ourselves as friends 09:41:45.752914 Response sent (56 bytes) and written to log/41/server.response 09:41:45.753052 special request received, no persistency 09:41:45.753127 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35093... * Connected to 127.0.0.1 (127.0.0.1) port 35093 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35093 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73770 === End of file http_verify.out === Start of file server.cmd Testnum 3015 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73770 === End of file server.response === Start of file valgrind3015 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3015 test 3014...[Check if %{num_headers} returns correct number of headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind3014 ../src/curl -q --include --trace-ascii log/42/trace3014 --trace-config all --trace-time http://127.0.0.1:42819/1439 --write-out '%{num_headers}' > log/42/stdout3014 2> log/42/stderr3014 3014: stdout FAILED: --- log/42/check-expected 2025-07-18 09:41:46.926214459 +0000 +++ log/42/check-generated 2025-07-18 09:41:46.924574660 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -4 == Contents of files in the log/42/ dir after test 3014 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] 4 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/42/valgrind3014 ../src/curl -q --include --trace-ascii log/42/trace3014 --trace-config all --trace-time http://127.0.0.1:42819/1439 --write-out '%{num_headers}' > log/42/stdout3014 2> log/42/stderr3014 === End of file commands.log === Start of file http_server.log 09:41:45.817313 ====> Client connect 09:41:45.817820 accept_connection 3 returned 4 09:41:45.818014 accept_connection 3 returned 0 09:41:45.818168 Read 93 bytes 09:41:45.818277 Process 93 bytes request 09:41:45.818379 Got request: GET /verifiedserver HTTP/1.1 09:41:45.818553 Are-we-friendly question received 09:41:45.818880 Wrote request (93 bytes) input to log/42/server.input 09:41:45.819104 Identifying ourselves as friends 09:41:45.821979 Response sent (56 bytes) and written to log/42/server.response 09:41:45.822108 special request received, no persistency 09:41:45.822193 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42819... * Connected to 127.0.0.1 (127.0.0.1) port 42819 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42819 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73768 === End of file http_verify.out === Start of file server.cmd Testnum 3014 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73768 === End of file server.response === Start of file valgrind3014 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3014 test 3013...[Two --output-dir with --next in between] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind3013 ../src/curl -q --trace-ascii log/43/trace3013 --trace-config all --trace-time http://127.0.0.1:41267/this/is/the/3013 -O --output-dir /build/curl/src/build-curl/tests/log/43 http://127.0.0.1:41267/another/3013 -o second3013 --output-dir /build/curl/src/build-curl/tests/log/43 > log/43/stdout3013 2> log/43/stderr3013 3013: protocol FAILED! There was no content at all in the file log/43/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/43/ dir after test 3013 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/43/valgrind3013 ../src/curl -q --trace-ascii log/43/trace3013 --trace-config all --trace-time http://127.0.0.1:41267/this/is/the/3013 -O --output-dir /build/curl/src/build-curl/tests/log/43 http://127.0.0.1:41267/another/3013 -o second3013 --output-dir /build/curl/src/build-curl/tests/log/43 > log/43/stdout3013 2> log/43/stderr3013 === End of file commands.log === Start of file http_server.log 09:41:45.754834 ====> Client connect 09:41:45.755323 accept_connection 3 returned 4 09:41:45.755876 accept_connection 3 returned 0 09:41:45.756033 Read 93 bytes 09:41:45.756110 Process 93 bytes request 09:41:45.756198 Got request: GET /verifiedserver HTTP/1.1 09:41:45.756300 Are-we-friendly question received 09:41:45.756645 Wrote request (93 bytes) input to log/43/server.input 09:41:45.756827 Identifying ourselves as friends 09:41:45.759929 Response sent (56 bytes) and written to log/43/server.response 09:41:45.760040 special request received, no persistency 09:41:45.760115 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41267... * Connected to 127.0.0.1 (127.0.0.1) port 41267 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41267 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73765 === End of file http_verify.out === Start of file server.cmd Testnum 3013 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73765 === End of file server.response === Start of file valgrind3013 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3013 test 3012...[--output-dir with -J and -R] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind3012 ../src/curl -q --trace-ascii log/45/trace3012 --trace-config all --trace-time http://127.0.0.1:34239/this/is/the/3012 -OJR --output-dir /build/curl/src/build-curl/tests/log/45 > log/45/stdout3012 2> log/45/stderr3012 3012: protocol FAILED! There was no content at all in the file log/45/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/45/ dir after test 3012 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/45/valgrind3012 ../src/curl -q --trace-ascii log/45/trace3012 --trace-config all --trace-time http://127.0.0.1:34239/this/is/the/3012 -OJR --output-dir /build/curl/src/build-curl/tests/log/45 > log/45/stdout3012 2> log/45/stderr3012 === End of file commands.log === Start of file http_server.log 09:41:44.716886 ====> Client connect 09:41:44.717185 accept_connection 3 returned 4 09:41:44.717354 accept_connection 3 returned 0 09:41:44.717573 Read 93 bytes 09:41:44.717698 Process 93 bytes request 09:41:44.717804 Got request: GET /verifiedserver HTTP/1.1 09:41:44.717908 Are-we-friendly question received 09:41:44.718198 Wrote request (93 bytes) input to log/45/server.input 09:41:44.718397 Identifying ourselves as friends 09:41:44.719243 Response sent (56 bytes) and written to log/45/server.response 09:41:44.719348 special request received, no persistency 09:41:44.719413 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34239... * Connected to 127.0.0.1 (127.0.0.1) port 34239 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34239 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75108 === End of file http_verify.out === Start of file server.cmd Testnum 3012 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75108 === End of file server.response === Start of file valgrind3012 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3012 test 3002...[SMTP multiple and invalid (first) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind3002 ../src/curl -q --output log/59/curl3002.out --include --trace-ascii log/59/trace3002 --trace-config all --trace-time smtp://127.0.0.1:40603/3002 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/59/stdout3002 2> log/59/stderr3002 3002: protocol FAILED! There was no content at all in the file log/59/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/59/ dir after test 3002 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/59/valgrind3002 ../src/curl -q --output log/59/curl3002.out --include --trace-ascii log/59/trace3002 --trace-config all --trace-time smtp://127.0.0.1:40603/3002 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/59/stdout3002 2> log/59/stderr3002 === End of file commands.log === Start of file server.cmd Testnum 3002 === End of file server.cmd === Start of file smtp_server.log 09:41:45.305522 ====> Client connect 09:41:45.311106 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 09:41:45.312217 < "EHLO verifiedserver" 09:41:45.314240 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 09:41:45.315000 < "HELP" 09:41:45.316135 > "214 WE ROOLZ: 118529[CR][LF]" 09:41:45.316362 return proof we are we 09:41:45.318222 < "QUIT" 09:41:45.319273 > "221 curl ESMTP server signing off[CR][LF]" 09:41:45.323631 MAIN sockfilt said DISC 09:41:45.324064 ====> Client disconnected 09:41:45.324598 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 09:41:45.558628 ====> Client connect 09:41:45.560592 Received DATA (on stdin) 09:41:45.560738 > 160 bytes data, server => client 09:41:45.560939 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 09:41:45.561076 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 09:41:45.561151 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 09:41:45.561826 < 21 bytes data, client => server 09:41:45.561975 'EHLO verifiedserver\r\n' 09:41:45.566418 Received DATA (on stdin) 09:41:45.566691 > 53 bytes data, server => client 09:41:45.566878 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 09:41:45.567531 < 6 bytes data, client => server 09:41:45.567673 'HELP\r\n' 09:41:45.569079 Received DATA (on stdin) 09:41:45.569228 > 22 bytes data, server => client 09:41:45.569422 '214 WE ROOLZ: 118529\r\n' 09:41:45.571114 < 6 bytes data, client => server 09:41:45.571275 'QUIT\r\n' 09:41:45.573313 Received DATA (on stdin) 09:41:45.573436 > 35 bytes data, server => client 09:41:45.573610 '221 curl ESMTP server signing off\r\n' 09:41:45.574066 ====> Client disconnect 09:41:45.582699 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3002 From: different To: another body === End of file stdin-for-3002 === Start of file valgrind3002 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3002 test 3011...[--output-dir with --create-dirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind3011 ../src/curl -q --trace-ascii log/61/trace3011 --trace-config all --trace-time http://127.0.0.1:44381/this/is/the/3011 -O --output-dir /build/curl/src/build-curl/tests/log/61/tmp --create-dirs > log/61/stdout3011 2> log/61/stderr3011 3011: protocol FAILED! There was no content at all in the file log/61/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/61/ dir after test 3011 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/61/valgrind3011 ../src/curl -q --trace-ascii log/61/trace3011 --trace-config all --trace-time http://127.0.0.1:44381/this/is/the/3011 -O --output-dir /build/curl/src/build-curl/tests/log/61/tmp --create-dirs > log/61/stdout3011 2> log/61/stderr3011 === End of file commands.log === Start of file http_server.log 09:41:45.715933 ====> Client connect 09:41:45.716323 accept_connection 3 returned 4 09:41:45.716582 accept_connection 3 returned 0 09:41:45.716730 Read 93 bytes 09:41:45.716805 Process 93 bytes request 09:41:45.716877 Got request: GET /verifiedserver HTTP/1.1 09:41:45.716945 Are-we-friendly question received 09:41:45.717143 Wrote request (93 bytes) input to log/61/server.input 09:41:45.717288 Identifying ourselves as friends 09:41:45.717889 Response sent (56 bytes) and written to log/61/server.response 09:41:45.717983 special request received, no persistency 09:41:45.718042 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:44381... * Connected to 127.0.0.1 (127.0.0.1) port 44381 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:44381 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73751 === End of file http_verify.out === Start of file server.cmd Testnum 3011 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73751 === End of file server.response === Start of file valgrind3011 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3011 * starts no server test 3026...[curl_global_init thread-safety] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind3026 ./libtest/libtests lib3026 none > log/13/stdout3026 2> log/13/stderr3026 libtests returned 1, when expecting 0 3026: exit FAILED == Contents of files in the log/13/ dir after test 3026 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/13/valgrind3026 ./libtest/libtests lib3026 none > log/13/stdout3026 2> log/13/stderr3026 === End of file commands.log === Start of file server.cmd Testnum 3026 === End of file server.cmd === Start of file valgrind3026 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3026 test 3103...[CURLOPT_COOKIELIST without expiry] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind3103 ./libtest/libtests lib3103 http://127.0.0.1:40909/3103 > log/29/stdout3103 2> log/29/stderr3103 3103: protocol FAILED! There was no content at all in the file log/29/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/29/ dir after test 3103 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/29/valgrind3103 ./libtest/libtests lib3103 http://127.0.0.1:40909/3103 > log/29/stdout3103 2> log/29/stderr3103 === End of file commands.log === Start of file http_server.log 09:41:44.864397 ====> Client connect 09:41:44.864818 accept_connection 3 returned 4 09:41:44.864964 accept_connection 3 returned 0 09:41:44.865071 Read 93 bytes 09:41:44.865145 Process 93 bytes request 09:41:44.865213 Got request: GET /verifiedserver HTTP/1.1 09:41:44.865283 Are-we-friendly question received 09:41:44.865463 Wrote request (93 bytes) input to log/29/server.input 09:41:44.865742 Identifying ourselves as friends 09:41:44.866364 Response sent (57 bytes) and written to log/29/server.response 09:41:44.866462 special request received, no persistency 09:41:44.866726 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40909... * Connected to 127.0.0.1 (127.0.0.1) port 40909 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40909 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 154862 === End of file http_verify.out === Start of file server.cmd Testnum 3103 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 154862 === End of file server.response === Start of file valgrind3103 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3103 test 3204...[Use --etag-compare and --etag-save on an existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind3204 ../src/curl -q --output log/44/curl3204.out --include --trace-ascii log/44/trace3204 --trace-config all --trace-time http://127.0.0.1:34655/3204 --etag-compare log/44/etag3204 --etag-save log/44/etag3204 > log/44/stdout3204 2> log/44/stderr3204 3204: protocol FAILED! There was no content at all in the file log/44/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/44/ dir after test 3204 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/44/valgrind3204 ../src/curl -q --output log/44/curl3204.out --include --trace-ascii log/44/trace3204 --trace-config all --trace-time http://127.0.0.1:34655/3204 --etag-compare log/44/etag3204 --etag-save log/44/etag3204 > log/44/stdout3204 2> log/44/stderr3204 === End of file commands.log === Start of file etag3204 "21025-dc7-39462498" === End of file etag3204 === Start of file http_server.log 09:41:45.973761 ====> Client connect 09:41:45.973995 accept_connection 3 returned 4 09:41:45.974115 accept_connection 3 returned 0 09:41:45.974220 Read 93 bytes 09:41:45.974286 Process 93 bytes request 09:41:45.974357 Got request: GET /verifiedserver HTTP/1.1 09:41:45.974411 Are-we-friendly question received 09:41:45.974693 Wrote request (93 bytes) input to log/44/server.input 09:41:45.974888 Identifying ourselves as friends 09:41:45.979583 Response sent (56 bytes) and written to log/44/server.response 09:41:45.979692 special request received, no persistency 09:41:45.979749 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:34655... * Connected to 127.0.0.1 (127.0.0.1) port 34655 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:34655 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73766 === End of file http_verify.out === Start of file server.cmd Testnum 3204 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73766 === End of file server.response === Start of file valgrind3204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3204 test 3032...[HTTP redirect loop 3x swsbounce test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind3032 ../src/curl -q --output log/49/curl3032.out --include --trace-ascii log/49/trace3032 --trace-config all --trace-time --location http://127.0.0.1:42667/3032 > log/49/stdout3032 2> log/49/stderr3032 3032: protocol FAILED! There was no content at all in the file log/49/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/49/ dir after test 3032 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/49/valgrind3032 ../src/curl -q --output log/49/curl3032.out --include --trace-ascii log/49/trace3032 --trace-config all --trace-time --location http://127.0.0.1:42667/3032 > log/49/stdout3032 2> log/49/stderr3032 === End of file commands.log === Start of file http_server.log 09:41:45.873342 ====> Client connect 09:41:45.873782 accept_connection 3 returned 4 09:41:45.873952 accept_connection 3 returned 0 09CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3209 ../src/curl -q --output log/3/curl3209.out --include --trace-ascii log/3/trace3209 --trace-config all --trace-time imap://127.0.0.1:43441/3209 -T log/3/upload3209 -u user:secret --upload-flags answered,deleted,draft,flagged,seen > log/3/stdout3209 2> log/3/stderr3209 :41:45.880664 Read 93 bytes 09:41:45.880923 Process 93 bytes request 09:41:45.881071 Got request: GET /verifiedserver HTTP/1.1 09:41:45.881233 Are-we-friendly question received 09:41:45.881745 Wrote request (93 bytes) input to log/49/server.input 09:41:45.882064 Identifying ourselves as friends 09:41:45.883101 Response sent (56 bytes) and written to log/49/server.response 09:41:45.883267 special request received, no persistency 09:41:45.883400 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42667... * Connected to 127.0.0.1 (127.0.0.1) port 42667 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42667 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73760 === End of file http_verify.out === Start of file server.cmd Testnum 3032 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73760 === End of file server.response === Start of file valgrind3032 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3032 test 3101...[HTTP auth without redirection protocols] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind3101 ./libtest/libtests lib3101 http://127.0.0.1:35945/3101 > log/57/stdout3101 2> log/57/stderr3101 3101: protocol FAILED! There was no content at all in the file log/57/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/57/ dir after test 3101 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/57/valgrind3101 ./libtest/libtests lib3101 http://127.0.0.1:35945/3101 > log/57/stdout3101 2> log/57/stderr3101 === End of file commands.log === Start of file http_server.log 09:41:45.875132 ====> Client connect 09:41:45.875595 accept_connection 3 returned 4 09:41:45.875784 accept_connection 3 returned 0 09:41:45.875911 Read 93 bytes 09:41:45.875999 Process 93 bytes request 09:41:45.876078 Got request: GET /verifiedserver HTTP/1.1 09:41:45.876143 Are-we-friendly question received 09:41:45.876452 Wrote request (93 bytes) input to log/57/server.input 09:41:45.876775 Identifying ourselves as friends 09:41:45.877428 Response sent (56 bytes) and written to log/57/server.response 09:41:45.877613 special request received, no persistency 09:41:45.877695 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:35945... * Connected to 127.0.0.1 (127.0.0.1) port 35945 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:35945 > User-Agent: curl/8.15.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73753 === End of file http_verify.out === Start of file server.cmd Testnum 3101 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73753 === End of file server.response === Start of file valgrind3101 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3101 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/imap_server.pid" --logfile "log/3/imap_server.log" --logdir "log/3" --portfile "log/3/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43441 (log/3/server/imap_server.port) RUN: IMAP server is PID 164927 port 43441 * pid imap => 164927 164927 test 3209...[Upload message via IMAP with upload flags] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3209 ../src/curl -q --output log/3/curl3209.out --include --trace-ascii log/3/trace3209 --trace-config all --trace-time imap://127.0.0.1:43441/3209 -T log/3/upload3209 -u user:secret --upload-flags answered,deleted,draft,flagged,seen > log/3/stdout3209 2> log/3/stderr3209 3209: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 3209 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3209 ../src/curl -q --output log/3/curl3209.out --include --trace-ascii log/3/trace3209 --trace-config all --trace-time imap://127.0.0.1:43441/3209 -T log/3/upload3209 -u user:secret --upload-flags answered,deleted,draft,flagged,seen > log/3/stdout3209 2> log/3/stderr3209 === End of file commands.log === Start of file imap_server.log 09:41:46.070684 IMAP server listens on port IPv4/43441 09:41:46.071581 logged pid 164927 in log/3/server/imap_server.pid 09:41:46.071998 Awaiting input === EnCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind3202 ../src/curl -q --output log/12/curl3202.out --include --trace-ascii log/12/trace3202 --trace-config all --trace-time -g "http://[::1]:36657/3202" --haproxy-clientip "2001:db8::" > log/12/stdout3202 2> log/12/stderr3202 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind3100 ./libtest/libtests lib3100 rtsp://127.0.0.1:41997/3100 > log/34/stdout3100 2> log/34/stderr3100 d of file imap_server.log === Start of file imap_sockfilt.log 09:41:46.321620 Running IPv4 version 09:41:46.322281 Listening on port 43441 09:41:46.322895 Wrote pid 166116 to log/3/server/imap_sockfilt.pid 09:41:46.323232 Wrote port 43441 to log/3/server/imap_server.port 09:41:46.323396 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 3209 === End of file server.cmd === Start of file upload3209 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload3209 === Start of file valgrind3209 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3209 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/12/server/http_ipv6_server.pid" --logfile "log/12/http_ipv6_server.log" --logdir "log/12" --portfile log/12/server/http_ipv6_server.port --config log/12/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 164780 port 36657 * pid http-ipv6 => 164780 164780 test 3202...[HTTP-IPv6 GET with PROXY protocol with spoofed client IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind3202 ../src/curl -q --output log/12/curl3202.out --include --trace-ascii log/12/trace3202 --trace-config all --trace-time -g "http://[::1]:36657/3202" --haproxy-clientip "2001:db8::" > log/12/stdout3202 2> log/12/stderr3202 3202: protocol FAILED! There was no content at all in the file log/12/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/12/ dir after test 3202 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/12/valgrind3202 ../src/curl -q --output log/12/curl3202.out --include --trace-ascii log/12/trace3202 --trace-config all --trace-time -g "http://[::1]:36657/3202" --haproxy-clientip "2001:db8::" > log/12/stdout3202 2> log/12/stderr3202 === End of file commands.log === Start of file http_ipv6_server.log 09:41:45.860620 Running HTTP IPv6 version on port 36657 09:41:45.861571 Wrote pid 164780 to log/12/server/http_ipv6_server.pid 09:41:45.861969 Wrote port 36657 to log/12/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 3202 === End of file server.cmd === Start of file valgrind3202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3202 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/34/server/rtsp_server.pid" --portfile "log/34/server/rtsp_server.port" --logfile "log/34/rtsp_server.log" --logdir "log/34" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 164663 port 41997 * pid rtsp => 164663 164663 test 3100...[RTSP Authentication check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind3100 ./libtest/libtests lib3100 rtsp://127.0.0.1:41997/3100 > log/34/stdout3100 2> log/34/stderr3100 3100: protocol FAILED! There was no content at all in the file log/34/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/34/ dir after test 3100 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/34/valgrind3100 ./libtest/libtests lib3100 rtsp://127.0.0.1:41997/3100 > log/34/stdout3100 2> log/34/stderr3100 === End of file commands.log === Start of file rtsp_server.log 09:41:45.862279 Running IPv4 version on port 41997 09:41:45.863084 Wrote pid 164663 to log/34/server/rtsp_server.pid 09:41:45.863445 Wrote port 41997 to log/34/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 3100 === End of file server.cmd === Start of file valgrind3100 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3028 ../src/curl -q --output log/8/curl3028.out --include --trace-ascii log/8/trace3028 --trace-config all --trace-time --haproxy-protocol http://127.0.0.1:46129/page --proxytunnel -x 127.0.0.1:40141 > log/8/stdout3028 2> log/8/stderr3028 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind3210 ../src/curl -q --output log/46/curl3210.out --include --trace-ascii log/46/trace3210 --trace-config all --trace-time imap://127.0.0.1:36067/3210 -T log/46/upload3210 -u user:secret --upload-flags -seen > log/46/stdout3210 2> log/46/stderr3210 libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3100 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/8/server/http2_server.pid" --logfile "log/8/http2_server.log" --logdir "log/8" --portfile log/8/server/http2_server.port --config log/8/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 165019 port 40141 * pid http-proxy => 165019 165019 test 3028...[HTTP GET when PROXY Protocol enabled behind a proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3028 ../src/curl -q --output log/8/curl3028.out --include --trace-ascii log/8/trace3028 --trace-config all --trace-time --haproxy-protocol http://127.0.0.1:46129/page --proxytunnel -x 127.0.0.1:40141 > log/8/stdout3028 2> log/8/stderr3028 3028: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 3028 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3028 ../src/curl -q --output log/8/curl3028.out --include --trace-ascii log/8/trace3028 --trace-config all --trace-time --haproxy-protocol http://127.0.0.1:46129/page --proxytunnel -x 127.0.0.1:40141 > log/8/stdout3028 2> log/8/stderr3028 === End of file commands.log === Start of file http2_server.log 09:41:45.150240 Run as proxy, CONNECT to host 127.0.0.1 09:41:45.151361 Running HTTP IPv4 version on port 40141 09:41:45.151993 Wrote pid 165019 to log/8/server/http2_server.pid 09:41:45.152588 Wrote port 40141 to log/8/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 09:41:45.797901 ====> Client connect 09:41:45.798211 accept_connection 3 returned 4 09:41:45.798366 accept_connection 3 returned 0 09:41:45.800617 Read 93 bytes 09:41:45.800772 Process 93 bytes request 09:41:45.800847 Got request: GET /verifiedserver HTTP/1.1 09:41:45.800911 Are-we-friendly question received 09:41:45.801129 Wrote request (93 bytes) input to log/8/server.input 09:41:45.801321 Identifying ourselves as friends 09:41:45.801917 Response sent (56 bytes) and written to log/8/server.response 09:41:45.802025 special request received, no persistency 09:41:45.802091 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:46129... * Connected to 127.0.0.1 (127.0.0.1) port 46129 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46129 > User-Agent: curl/8.15.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73800 === End of file http_verify.out === Start of file server.cmd Testnum 3028 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73800 === End of file server.response === Start of file valgrind3028 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3028 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/46/server/imap_server.pid" --logfile "log/46/imap_server.log" --logdir "log/46" --portfile "log/46/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36067 (log/46/server/imap_server.port) RUN: IMAP server is PID 164933 port 36067 * pid imap => 164933 164933 test 3210...[Upload message unread via IMAP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind3210 ../src/curl -q --output log/46/curl3210.out --include --trace-ascii log/46/trace3210 --trace-config all --trace-time imap://127.0.0.1:36067/3210 -T log/46/upload3210 -u user:secret --upload-flags -seen > log/46/stdout3210 2> log/46/stderr3210 3210: protocol FAILED! There was no content at all in the file log/46/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/46/ dir after test 3210 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/46/valgrind3210 ../src/curl -q --output log/46/curl3210.out --include --trace-ascii log/46/trace3210 --trace-config all --trace-time imap://127.0.0.1:36067/3210 -T log/46/upload3210 -u user:secret --upload-flags -seen > log/46/stdout3210 2> log/46/stderr3210 === End of file commands.log === Start of file imap_server.log 09:41:46.057716 IMAP server listens on port IPv4/36067 09:41:46.058737 logged pid 164933 in log/46/server/imap_server.pid 09:41:46.059084 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 09:41:46.303315 Running IPv4 version 09:41:46.303942 Listening on port 36067 09:41:46.304278 Wrote pid 166081 to log/46/server/imap_sockfilt.pid 09:41:46.310753 Wrote port 36067 to log/46/server/imap_server.port 09:41:46.310939 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 3210 === End of file server.cmd === Start of file upload3210 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. === End of file upload3210 === Start of file valgrind3210 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symRUN: Process with pid 109369 signalled to die RUN: Process with pid 109369 gracefully died RUN: Process with pid 108825 signalled to die RUN: Process with pid 108831 signalled to die RUN: Process with pid 108825 gracefully died RUN: Process with pid 108831 gracefully died * kill pid for ftp-ctrl => 77922 * kill pid for ftp-ctrl => 78354 * kill pid for ftp-ctrl => 78179 * kill pid for ftp-ctrl => 78370 * kill pid for ftp-ctrl => 78221 * kill pid for ftp-ctrl => 81051 * kill pid for ftp-ipv6-ctrl => 87592 * kill pid for smtp-filt => 118294 * kill pid for imap-filt => 113083 * kill pid for smtp-filt => 118552 * kill pid for ftp-ctrl => 83482 * kill pid for ftp-ctrl => 87513 * kill pid for ftp-ctrl => 78524 * kill pid for ftp-ctrl => 77903 * kill pid for pop3-filt => 118104 * kill pid for ftp-ctrl => 79996 * kill pid for ftp-ctrl => 78780 * kill pid for ftp-ctrl => 78224 * kill pid for ftp-ctrl => 78042 * kill pid for smtp-filt => 118386 * kill pid for ftp-ctrl => 79785 * kill pid for ftp-ipv6-ctrl => 87628 * kill pid for imap-filt => 113073 * kill pid for ftp-ctrl => 77998 * kill pid for ftp-ctrl => 123428 * kill pid for ftp-ctrl => 81549 * kill pid for ftp-ctrl => 101771 RUN: Process with pid 73787 signalled to die * kill pid for ftp-ctrl => 77905 RUN: Process with pid 77469 signalled to die RUN: Process with pid 117764 signalled to die RUN: Process with pid 126027 signalled to die * kill pid for smtp-filt => 121580 * kill pid for pop3-filt => 116062 RUN: Process with pid 151900 signalled to die RUN: Process with pid 73770 signalled to die RUN: Process with pid 77417 signalled to die RUN: Process with pid 117946 signalled to die * kill pid for pop3-filt => 115974 * kill pid for imap-filt => 121861 * kill pid for imap-filt => 154016 * kill pid for ftp-ctrl => 78345 * kill pid for ftp-ctrl => 77868 * kill pid for ftp-ctrl => 78857 RUN: Process with pid 73766 signalled to die RUN: Process with pid 73801 signalled to die * kill pid for imap-filt => 113034 RUN: Process with pid 77468 signalled to die RUN: Process with pid 86560 signalled to die RUN: Process with pid 77570 signalled to die RUN: Process with pid 117536 signalled to die RUN: Process with pid 117937 signalled to die RUN: Process with pid 120704 signalled to die RUN: Process with pid 161570 signalled to die * kill pid for imap-filt => 113177 * kill pid for ftp-ctrl => 95222 * kill pid for ftp-ctrl => 163044 * kill pid for ftp-ctrl => 80300 * kill pid for ftp-ctrl => 78327 * kill pid for ftp-ctrl => 78635 * kill pid for pop3-filt => 123393 * kill pid for ftp-ctrl => 80052 * kill pid for ftp-ctrl => 78188 * kill pid for ftp-ctrl => 78921 * kill pid for ftp-ctrl => 78994 * kill pid for ftp-ctrl => 91462 * kill pid for ftp-ctrl => 77913 * kill pid for imap-filt => 113109 * kill pid for smtp-filt => 118700 * kill pid for ftp-ctrl => 78421 * kill pid for ftp-ctrl => 80631 * kill pid for smtp-filt => 118479 * kill pid for smtp-filt => 119726 * kill pid for smtp-filt => 119285 * kill pid for smtp-filt => 120803 * kill pid for ftp-ctrl => 80269 * kill pid for smtp-filt => 118252 * kill pid for imap-filt => 113084 RUN: Process with pid 73788 signalled to die * kill pid for smtp-filt => 118869 RUN: Process with pid 77500 signalled to die RUN: Process with pid 117824 signalled to die RUN: Process with pid 151972 signalled to die RUN: Process with pid 73778 signalled to die * kill pid for ftp-ctrl => 81044 RUN: Process with pid 77461 signalled to die RUN: Process with pid 119106 signalled to die * kill pid for smtp-filt => 118270 * kill pid for ftp-ctrl => 79462 * kill pid for smtp-filt => 118509 * kill pid for smtp-filt => 118471 * kill pid for ftp-ctrl => 78311 * kill pid for ftp-ctrl => 78785 * kill pid for pop3-filt => 116086 * kill pid for smtp-filt => 106272 RUN: Process with pid 73758 signalled to die * kill pid for ftp-ctrl => 78591 * kill pid for smtp-filt => 118742 RUN: Process with pid 77504 signalled to die RUN: Process with pid 118317 signalled to die RUN: Process with pid 122109 signalled to die RUN: Process with pid 73793 signalled to die RUN: Process with pid 87136 signalled to die RUN: Process with pid 90579 signalled to die RUN: Process with pid 117868 signalled to die RUN: Process with pid 161231 signalled to die RUN: Process with pid 163312 signalled to die RUN: Process with pid 77498 signalled to die RUN: Process with pid 73781 signalled to die RUN: Process with pid 117887 signalled to die RUN: Process with pid 77437 signalled to die RUN: Process with pid 120770 signalled to die RUN: Process with pid 118774 signalled to die RUN: Process with pid 146188 signalled to die RUN: Process with pid 161162 signalled to die * kill pid for ftp-ctrl => 101433 RUN: Process with pid 157890 signalled to die * kill pid for smtp-filt => 106291 * kill pid for imap-filt => 166081 RUN: Process with pid 73796 signalled to die RUN: Process with pid 79551 signalled to die * kill pid for smtp-filt => 118888 RUN: Process with pid 109415 signalled to die RUN: Process with pid 110090 signalled to die RUN: Process with pid 112884 signalled to die RUN: Process with pid 115723 signalled to die * kill pid for imap-filt => 113079 RUN: Process with pid 73752 signalled to die RUN: Process with pid 118711 signalled to die RUN: Process with pid 122584 signalled to die RUN: Process with pid 103627 signalled to die RUN: Process with pid 118529 signalled to die RUN: Process with pid 132606 signalled to die * kill pid for pop3-filt => 116000 RUN: Process with pid 161437 signalled to die * kill pid for imap-filt => 153772 * kill pid for ftp-ctrl => 90364 * kill pid for smtp-filt => 118621 * kill pid for pop3-filt => 116079 * kill pid for ftp-ctrl => 81618 * kill pid for smtp-filt => 106425 * kill pid for smtp-filt => 120340 * kill pid for smtp-filt => 118743 RUN: Process with pid 75714 signalled to die RUN: Process with pid 77175 signalled to die RUN: Process with pid 82698 signalled to die RUN: Process with pid 106052 signalled to die RUN: Process with pid 78258 signalled to die RUN: Process with pid 112863 signalled to die RUN: Process with pid 115991 signalled to die RUN: Process with pid 132662 signalled to die RUN: Process with pid 86139 signalled to die RUN: Process with pid 73763 signalled to die RUN: Process with pid 77543 signalled to die RUN: Process with pid 118111 signalled to die RUN: Process with pid 89110 signalled to die RUN: Process with pid 118309 signalled to die RUN: Process with pid 139503 signalled to die RUN: Process with pid 133751 signalled to die RUN: Process with pid 73757 signalled to die RUN: Process with pid 77586 signalled to die RUN: Process with pid 118182 signalled to die RUN: Process with pid 164933 signalled to die RUN: Process with pid 73807 signalled to die RUN: Process with pid 77416 signalled to die RUN: Process with pid 118024 signalled to die * kill pid for smtp-filt => 119534 * kill pid for pop3-filt => 141474 RUN: Process with pid 73790 signalled to die RUN: Process with pid 79172 signalled to die RUN: Process with pid 106061 signalled to die RUN: Process with pid 112972 signalled to die RUN: Process with pid 115995 signalled to die RUN: Process with pid 133020 signalled to die RUN: Process with pid 135855 signalled to die * kill pid for pop3-filt => 122941 RUN: Process with pid 73797 signalled to die RUN: Process with pid 77386 signalled to die RUN: Process with pid 106081 signalled to die RUN: Process with pid 109167 signalled to die RUN: Process with pid 112889 signalled to die RUN: Process with pid 73750 signalled to die RUN: Process with pid 115864 signalled to die RUN: Process with pid 147125 signalled to die RUN: Process with pid 78622 signalled to die * kill pid for imap-filt => 106246 * kill pid for smtp-filt => 118660 * kill pid for ftp-ctrl => 80651 * kill pid for ftp-ctrl => 78183 * kill pid for ftp-ctrl => 78633 * kill pid for pop3-filt => 116112 * kill pid for ftp-ctrl => 88732 * kill pid for smtp-filt => 120562 RUN: Process with pid 73756 signalled to die RUN: Process with pid 78730 signalled to die * kill pid for smtp-filt => 119505 RUN: Process with pid 152851 signalled to die * kill pid for imap-filt => 113081 RUN: Process with pid 108949 signalled to die RUN: Process with pid 112844 signalled to die RUN: Process with pid 115994 signalled to die * kill pid for ftp-ctrl => 88689 RUN: Process with pid 118802 signalled to die RUN: Process with pid 160102 signalled to die RUN: Process with pid 73777 signalled to die * kill pid for ftp-ctrl => 160050 RUN: Process with pid 73800 signalled to die RUN: Process with pid 80544 signalled to die * kill pid for ftp-ipv6-ctrl => 126529 * kill pid for ftp-ctrl => 78038 RUN: Process with pid 89134 signalled to die RUN: Process with pid 77502 signalled to die RUN: Process with pid 117877 signalled to die RUN: Process with pid 118257 signalled to die RUN: Process with pid 165019 signalled to die RUN: Process with pid 149215 signalled to die RUN: Process with pid 164663 signalled to die * kill pid for ftp-ctrl => 91410 * kill pid for imap-filt => 113230 * kill pid for imap-filt => 166116 * kill pid for ftp-ipv6-ctrl => 87630 RUN: Process with pid 73751 signalled to die RUN: Process with pid 79508 signalled to die RUN: Process with pid 104366 signalled to die * kill pid for ftp-ctrl => 77958 * kill pid for ftp-ctrl => 101498 RUN: Process with pid 119241 signalled to die RUN: Process with pid 126009 signalled to die * kill pid for imap-filt => 113128 RUN: Process with pid 140790 signalled to die RUN: Process with pid 142454 signalled to die * kill pid for smtp-filt => 118601 * kill pid for ftp-ctrl => 80034 * kill pid for ftp-ctrl => 78301 * kill pid for ftp-ctrl => 90576 * kill pid for imap-filt => 146846 * kill pid for pop3-filt => 118125 RUN: Process with pid 73780 signalled to die RUN: Process with pid 79344 signalled to die RUN: Process with pid 118559 signalled to die RUN: Process with pid 126867 signalled to die * kill pid for smtp-filt => 118644 * kill pid for pop3-filt => 116118 * kill pid for smtp-filt => 121012 * kill pid for pop3-filt => 115957 * kill pid for smtp-filt => 118691 * kill pid for smtp-filt => 118539 * kill pid for smtp-filt => 106293 RUN: Process with pid 73748 signalled to die * kill pid for ftp-ctrl => 78151 RUN: Process with pid 73802 signalled to die * kill pid for pop3-filt => 122302 RUN: Process with pid 77381 signalled to die RUN: Process with pid 117955 signalled to die RUN: Process with pid 133815 signalled to die RUN: Process with pid 164927 signalled to die RUN: Process with pid 73791 signalled to die RUN: Process with pid 89661 signalled to die * kill pid for ftp-ctrl => 80528 * kill pid for smtp-filt => 119968 RUN: Process with pid 102051 signalled to die RUN: Process with pid 106059 signalled to die * kill pid for smtp-filt => 118265 * kill pid for smtp-filt => 119402 * kill pid for smtp-filt => 120936 RUN: Process with pid 118697 signalled to die * kill pid for ftp-ctrl => 78588 * kill pid for ftp-ipv6-ctrl => 127122 RUN: Process with pid 73794 signalled to die RUN: Process with pid 90762 signalled to die RUN: Process with pid 118124 signalled to die RUN: Process with pid 151517 signalled to die * kill pid for smtp-filt => 118489 * kill pid for smtp-filt => 119029 * kill pid for pop3-filt => 116025 RUN: Process with pid 109392 signalled to die RUN: Process with pid 112880 signalled to die RUN: Process with pid 73799 signalled to die RUN: Process with pid 115999 signalled to die RUN: Process with pid 133803 signalled to die RUN: Process with pid 77501 signalled to die RUN: Process with pid 117844 signalled to die RUN: Process with pid 151689 signalled to die RUN: Process with pid 120832 signalled to die RUN: Process with pid 157881 signalled to die RUN: Process with pid 164780 signalled to die * kill pid for ftp-ctrl => 80023 * kill pid for smtp-filt => 118533 RUN: Process with pid 73768 signalled to die RUN: Process with pid 79706 signalled to die RUN: Process with pid 73798 signalled to die RUN: Process with pid 86585 signalled to die RUN: Process with pid 118258 signalled to die RUN: Process with pid 77456 signalled to die * kill pid for smtp-filt => 118638 RUN: Process with pid 118504 signalled to die RUN: Process with pid 73769 signalled to die RUN: Process with pid 77518 signalled to die RUN: Process with pid 109352 signalled to die RUN: Process with pid 73761 signalled to die * kill pid for ftp-ipv6-ctrl => 87625 RUN: Process with pid 73760 signalled to die RUN: Process with pid 113110 signalled to die RUN: Process with pid 115662 signalled to die RUN: Process with pid 117533 signalled to die RUN: Process with pid 119692 signalled to die RUN: Process with pid 118710 signalled to die RUN: Process with pid 146327 signalled to die RUN: Process with pid 159141 signalled to die * kill pid for smtp-filt => 118403 RUN: Process with pid 78009 signalled to die RUN: Process with pid 89046 signalled to die RUN: Process with pid 102580 signalled to die RUN: Process with pid 118251 signalled to die RUN: Process with pid 121955 signalled to die RUN: Process with pid 132900 signalled to die * kill pid for imap-filt => 112977 RUN: Process with pid 77508 signalled to die RUN: Process with pid 119614 signalled to die * kill pid for imap-filt => 113042 RUN: Process with pid 133004 signalled to die * kill pid for ftp-ctrl => 80493 RUN: Process with pid 73784 signalled to die RUN: Process with pid 87701 signalled to die RUN: Process with pid 118108 signalled to die RUN: Process with pid 145999 signalled to die RUN: Process with pid 158158 signalled to die RUN: Process with pid 73755 signalled to die RUN: Process with pid 77973 signalled to die RUN: Process with pid 109157 signalled to die RUN: Process with pid 113069 signalled to die RUN: Process with pid 115963 signalled to die RUN: Process with pid 118129 signalled to die RUN: Process with pid 141247 signalled to die * kill pid for smtp-filt => 118462 RUN: Process with pid 73776 signalled to die RUN: Process with pid 100730 signalled to die RUN: Process with pid 106054 signalled to die RUN: Process with pid 109342 signalled to die * kill pid for pop3-filt => 115996 RUN: Process with pid 115997 signalled to die RUN: Process with pid 118676 signalled to die RUN: Process with pid 122443 signalled to die RUN: Process with pid 138836 signalled to die * kill pid for smtp-filt => 120976 * kill pid for smtp-filt => 118185 RUN: Process with pid 73767 signalled to die RUN: Process with pid 89681 signalled to die RUN: Process with pid 118283 signalled to die RUN: Process with pid 161636 signalled to die * kill pid for smtp-filt => 118511 * kill pid for pop3-filt => 115998 * kill pid for smtp-filt => 118631 RUN: Process with pid 75108 signalled to die RUN: Process with pid 73762 signalled to die RUN: Process with pid 77499 signalled to die RUN: Process with pid 118532 signalled to die RUN: Process with pid 145628 signalled to die RUN: Process with pid 161566 signalled to die RUN: Process with pid 73773 signalled to die RUN: Process with pid 73803 signalled to die RUN: Process with pid 79493 signalled to die RUN: Process with pid 86151 signalled to die RUN: Process with pid 109146 signalled to die RUN: Process with pid 73772 signalled to die RUN: Process with pid 112731 signalled to die RUN: Process with pid 100684 signalled to die RUN: Process with pid 87603 signalled to die RUN: Process with pid 118052 signalled to die RUN: Process with pid 127399 signalled to die RUN: Process with pid 126022 signalled to die RUN: Process with pid 115770 signalled to die RUN: Process with pid 136494 signalled to die RUN: Process with pid 118018 signalled to die * kill pid for pop3-filt => 115875 RUN: Process with pid 127218 signalled to die RUN: Process with pid 146353 signalled to die RUN: Process with pid 73775 signalled to die RUN: Process with pid 161650 signalled to die * kill pid for smtp-filt => 118548 * kill pid for smtp-filt => 118501 * kill pid for smtp-filt => 118796 * kill pid for smtp-filt => 118894 * kill pid for imap-filt => 113078 * kill pid for smtp-filt => 119976 RUN: Process with pid 73764 signalled to die RUN: Process with pid 77544 signalled to die RUN: Process with pid 86581 signalled to die RUN: Process with pid 118339 signalled to die RUN: Process with pid 132862 signalled to die RUN: Process with pid 77705 signalled to die RUN: Process with pid 87691 signalled to die RUN: Process with pid 118063 signalled to die RUN: Process with pid 152935 signalled to die RUN: Process with pid 79551 gracefully died RUN: Process with pid 73795 signalled to die RUN: Process with pid 79507 signalled to die RUN: Process with pid 118576 signalled to die RUN: Process with pid 78026 signalled to die RUN: Process with pid 73785 signalled to die RUN: Process with pid 119287 signalled to die RUN: Process with pid 77494 signalled to die RUN: Process with pid 117856 signalled to die * kill pid for imap-filt => 106613 RUN: Process with pid 73759 signalled to die RUN: Process with pid 126034 signalled to die RUN: Process with pid 77995 signalled to die RUN: Process with pid 86175 signalled to die RUN: Process with pid 149030 signalled to die RUN: Process with pid 118313 signalled to die RUN: Process with pid 160157 signalled to die * kill pid for pop3-filt => 115911 * kill pid for pop3-filt => 116045 RUN: Process with pid 77543 gracefully died * kill pid for smtp-filt => 118545 * kill pid for smtp-filt => 146762 RUN: Process with pid 73749 signalled to die RUN: Process with pid 78462 signalled to die RUN: Process with pid 118850 signalled to die RUN: Process with pid 73757 gracefully died RUN: Process with pid 73771 signalled to die RUN: Process with pid 100686 signalled to die RUN: Process with pid 107925 signalled to die RUN: Process with pid 109407 signalled to die RUN: Process with pid 112720 signalled to die RUN: Process with pid 115473 signalled to die RUN: Process with pid 118209 signalled to die RUN: Process with pid 135970 signalled to die RUN: Process with pid 161623 signalled to die RUN: Process with pid 73753 signalled to die RUN: Process with pid 79056 signalled to die RUN: Process with pid 86620 signalled to die RUN: Process with pid 145564 signalled to die RUN: Process with pid 146748 signalled to die * kill pid for smtp-filt => 119929 RUN: Process with pid 73804 signalled to die RUN: Process with pid 77425 signalled to die RUN: Process with pid 109110 signalled to die RUN: Process with pid 112722 signalled to die RUN: Process with pid 73752 gracefully died RUN: Process with pid 73779 signalled to die * kill pid for smtp-filt => 118721 * kill pid for imap-filt => 141880 RUN: Process with pid 115725 signalled to die RUN: Process with pid 117934 signalled to die * kill pid for imap-filt => 155731 * kill pid for imap-filt => 113132 * kill pid for pop3-filt => 115885 RUN: Process with pid 73786 signalled to die RUN: Process with pid 79624 signalled to die RUN: Process with pid 117803 signalled to die RUN: Process with pid 73750 gracefully died RUN: Process with pid 77429 signalled to die RUN: Process with pid 106142 signalled to die RUN: Process with pid 109387 signalled to die RUN: Process with pid 111735 signalled to die RUN: Process with pid 115540 signalled to die RUN: Process with pid 118740 signalled to die RUN: Process with pid 133201 signalled to die * kill pid for imap-filt => 113035 * kill pid for smtp-filt => 121055 RUN: Process with pid 89661 gracefully died RUN: Process with pid 73747 signalled to die RUN: Process with pid 159141 gracefully died * kill pid for smtp-filt => 118499 RUN: Process with pid 77431 signalled to die RUN: Process with pid 73783 signalled to die RUN: Process with pid 88938 signalled to die RUN: Process with pid 103047 signalled to die RUN: Process with pid 112855 signalled to die * kill pid for smtp-filt => 119092 RUN: Process with pid 115976 signalled to die RUN: Process with pid 118163 signalled to die RUN: Process with pid 127586 signalled to die * kill pid for smtp-filt => 118368 RUN: Process with pid 133725 signalled to die RUN: Process with pid 118068 signalled to die RUN: Process with pid 122335 signalled to die RUN: Process with pid 73770 gracefully died RUN: Process with pid 151649 signalled to die RUN: Process with pid 73787 gracefully died RUN: Process with pid 73754 signalled to die RUN: Process with pid 77376 signalled to die RUN: Process with pid 102012 signalled to die RUN: Process with pid 77570 gracefully died RUN: Process with pid 73806 signalled to die * kill pid for smtp-filt => 118706 RUN: Process with pid 77379 signalled to die RUN: Process with pid 118062 signalled to die * kill pid for smtp-filt => 118451 RUN: Process with pid 73798 gracefully died RUN: Process with pid 77468 gracefully died RUN: Process with pid 119219 signalled to die RUN: Process with pid 127229 signalled to die RUN: Process with pid 133491 signalled to die RUN: Process with pid 140801 signalled to die RUN: Process with pid 142476 signalled to die RUN: Process with pid 78998 signalled to die RUN: Process with pid 118082 signalled to die RUN: Process with pid 154862 signalled to die * kill pid for pop3-filt => 115712 RUN: Process with pid 100730 gracefully died * kill pid for smtp-filt => 119411 RUN: Process with pid 77835 signalled to die RUN: Process with pid 87603 gracefully died RUN: Process with pid 86383 signalled to die RUN: Process with pid 90308 signalled to die RUN: Process with pid 113100 signalled to die RUN: Process with pid 115522 signalled to die RUN: Process with pid 118641 signalled to die RUN: Process with pid 132935 signalled to die * kill pid for pop3-filt => 97455 RUN: Process with pid 150350 signalled to die RUN: Process with pid 73789 signalled to die * kill pid for smtp-filt => 120117 RUN: Process with pid 78763 signalled to die RUN: Process with pid 88297 signalled to die RUN: Process with pid 118299 signalled to die RUN: Process with pid 154895 signalled to die RUN: Process with pid 161503 signalled to die RUN: Process with pid 73788 gracefully died RUN: Process with pid 73793 gracefully died RUN: Process with pid 73781 gracefully died RUN: Process with pid 73778 gracefully died RUN: Process with pid 73758 gracefully died RUN: Process with pid 73775 gracefully died RUN: Process with pid 77995 gracefully died RUN: Process with pid 73796 gracefully died RUN: Process with pid 77498 gracefully died RUN: Process with pid 77175 gracefully died RUN: Process with pid 73763 gracefully died RUN: Process with pid 73807 gracefully died RUN: Process with pid 75714 gracefully died RUN: Process with pid 73765 signalled to die RUN: Process with pid 77906 signalled to die RUN: Process with pid 94256 signalled to die RUN: Process with pid 96591 signalled to die RUN: Process with pid 109117 signalled to die RUN: Process with pid 113056 signalled to die RUN: Process with pid 118844 signalled to die RUN: Process with pid 126368 signalled to die RUN: Process with pid 73797 gracefully died RUN: Process with pid 77586 gracefully died RUN: Process with pid 73800 gracefully died RUN: Process with pid 73777 gracefully died RUN: Process with pid 100686 gracefully died RUN: Process with pid 73756 gracefully died RUN: Process with pid 73790 gracefully died RUN: Process with pid 132862 gracefully died RUN: Process with pid 73808 signalled to die RUN: Process with pid 77399 signalled to die RUN: Process with pid 101717 signalled to die RUN: Process with pid 108952 signalled to die RUN: Process with pid 112803 signalled to die RUN: Process with pid 115326 signalled to die RUN: Process with pid 118365 signalled to die RUN: Process with pid 158728 signalled to die RUN: Process with pid 73780 gracefully died RUN: Process with pid 118529 gracefully died RUN: Process with pid 73751 gracefully died RUN: Process with pid 77425 gracefully died RUN: Process with pid 73802 gracefully died RUN: Process with pid 117803 gracefully died RUN: Process with pid 90762 gracefully died RUN: Process with pid 78622 gracefully died RUN: Process with pid 77429 gracefully died RUN: Process with pid 73791 gracefully died RUN: Process with pid 73768 gracefully died RUN: Process with pid 73799 gracefully died RUN: Process with pid 79056 gracefully died RUN: Process with pid 73769 gracefully died RUN: Process with pid 73760 gracefully died RUN: Process with pid 73748 gracefully died RUN: Process with pid 73761 gracefully died RUN: Process with pid 77417 gracefully died RUN: Process with pid 73755 gracefully died RUN: Process with pid 77469 gracefully died RUN: Process with pid 77431 gracefully died RUN: Process with pid 73801 gracefully died RUN: Process with pid 77456 gracefully died RUN: Process with pid 73766 gracefully died RUN: Process with pid 73784 gracefully died RUN: Process with pid 73767 gracefully died RUN: Process with pid 77379 gracefully died RUN: Process with pid 73776 gracefully died RUN: Process with pid 73754 gracefully died RUN: Process with pid 73762 gracefully died RUN: Process with pid 73772 gracefully died RUN: Process with pid 115522 gracefully died RUN: Process with pid 73803 gracefully died RUN: Process with pid 77500 gracefully died RUN: Process with pid 87136 gracefully died RUN: Process with pid 77437 gracefully died RUN: Process with pid 77461 gracefully died RUN: Process with pid 77504 gracefully died RUN: Process with pid 73773 gracefully died RUN: Process with pid 73795 gracefully died RUN: Process with pid 77705 gracefully died RUN: Process with pid 75108 gracefully died RUN: Process with pid 73785 gracefully died RUN: Process with pid 109415 gracefully died RUN: Process with pid 82698 gracefully died RUN: Process with pid 117887 gracefully died RUN: Process with pid 73759 gracefully died RUN: Process with pid 118309 gracefully died RUN: Process with pid 77416 gracefully died RUN: Process with pid 78258 gracefully died RUN: Process with pid 73749 gracefully died RUN: Process with pid 77386 gracefully died RUN: Process with pid 73765 gracefully died RUN: Process with pid 118182 gracefully died RUN: Process with pid 77502 gracefully died RUN: Process with pid 80544 gracefully died RUN: Process with pid 79172 gracefully died RUN: Process with pid 78730 gracefully died RUN: Process with pid 73771 gracefully died RUN: Process with pid 73764 gracefully died RUN: Process with pid 115326 gracefully died RUN: Process with pid 79344 gracefully died RUN: Process with pid 79508 gracefully died RUN: Process with pid 73804 gracefully died RUN: Process with pid 77381 gracefully died RUN: Process with pid 73786 gracefully died RUN: Process with pid 118697 gracefully died RUN: Process with pid 73794 gracefully died RUN: Process with pid 73779 gracefully died RUN: Process with pid 106059 gracefully died RUN: Process with pid 79706 gracefully died RUN: Process with pid 73753 gracefully died RUN: Process with pid 161437 gracefully died RUN: Process with pid 117533 gracefully died RUN: Process with pid 77518 gracefully died RUN: Process with pid 78009 gracefully died RUN: Process with pid 77508 gracefully died RUN: Process with pid 73783 gracefully died RUN: Process with pid 117946 gracefully died RUN: Process with pid 77973 gracefully died RUN: Process with pid 117764 gracefully died RUN: Process with pid 117937 gracefully died RUN: Process with pid 73747 gracefully died RUN: Process with pid 118504 gracefully died RUN: Process with pid 86560 gracefully died RUN: Process with pid 87701 gracefully died RUN: Process with pid 78998 gracefully died RUN: Process with pid 73806 gracefully died RUN: Process with pid 77376 gracefully died RUN: Process with pid 106054 gracefully died RUN: Process with pid 77499 gracefully died RUN: Process with pid 118052 gracefully died RUN: Process with pid 77835 gracefully died RUN: Process with pid 79493 gracefully died RUN: Process with pid 77501 gracefully died RUN: Process with pid 73789 gracefully died RUN: Process with pid 89681 gracefully died RUN: Process with pid 117824 gracefully died RUN: Process with pid 90579 gracefully died RUN: Process with pid 118774 gracefully died RUN: Process with pid 119106 gracefully died RUN: Process with pid 86151 gracefully died RUN: Process with pid 118063 gracefully died RUN: Process with pid 79507 gracefully died RUN: Process with pid 118317 gracefully died RUN: Process with pid 78026 gracefully died RUN: Process with pid 77494 gracefully died RUN: Process with pid 110090 gracefully died RUN: Process with pid 106052 gracefully died RUN: Process with pid 120770 gracefully died RUN: Process with pid 86175 gracefully died RUN: Process with pid 118024 gracefully died RUN: Process with pid 139503 gracefully died RUN: Process with pid 86139 gracefully died RUN: Process with pid 78462 gracefully died RUN: Process with pid 106081 gracefully died RUN: Process with pid 77906 gracefully died RUN: Process with pid 152851 gracefully died RUN: Process with pid 117877 gracefully died RUN: Process with pid 108949 gracefully died RUN: Process with pid 118257 gracefully died RUN: Process with pid 106061 gracefully died RUN: Process with pid 77544 gracefully died RUN: Process with pid 73808 gracefully died RUN: Process with pid 118559 gracefully died RUN: Process with pid 119241 gracefully died RUN: Process with pid 109110 gracefully died RUN: Process with pid 117955 gracefully died RUN: Process with pid 79624 gracefully died RUN: Process with pid 118124 gracefully died RUN: Process with pid 106142 gracefully died RUN: Process with pid 109392 gracefully died RUN: Process with pid 86585 gracefully died RUN: Process with pid 119692 gracefully died RUN: Process with pid 109352 gracefully died RUN: Process with pid 118251 gracefully died RUN: Process with pid 86620 gracefully died RUN: Process with pid 119614 gracefully died RUN: Process with pid 118068 gracefully died RUN: Process with pid 109157 gracefully died RUN: Process with pid 151900 gracefully died RUN: Process with pid 112855 gracefully died RUN: Process with pid 117536 gracefully died RUN: Process with pid 118108 gracefully died RUN: Process with pid 118082 gracefully died RUN: Process with pid 118062 gracefully died RUN: Process with pid 118532 gracefully died RUN: Process with pid 126022 gracefully died RUN: Process with pid 119219 gracefully died RUN: Process with pid 86383 gracefully died RUN: Process with pid 109146 gracefully died RUN: Process with pid 117844 gracefully died RUN: Process with pid 109342 gracefully died RUN: Process with pid 78763 gracefully died RUN: Process with pid 118283 gracefully died RUN: Process with pid 151972 gracefully died RUN: Process with pid 109407 gracefully died RUN: Process with pid 117868 gracefully died RUN: Process with pid 161162 gracefully died RUN: Process with pid 100684 gracefully died RUN: Process with pid 152935 gracefully died RUN: Process with pid 118576 gracefully died RUN: Process with pid 122109 gracefully died RUN: Process with pid 119287 gracefully died RUN: Process with pid 117856 gracefully died RUN: Process with pid 112884 gracefully died RUN: Process with pid 112863 gracefully died RUN: Process with pid 146188 gracefully died RUN: Process with pid 118313 gracefully died RUN: Process with pid 118850 gracefully died RUN: Process with pid 109167 gracefully died RUN: Process with pid 118111 gracefully died RUN: Process with pid 94256 gracefully died RUN: Process with pid 165019 gracefully died RUN: Process with pid 112844 gracefully died RUN: Process with pid 149215 gracefully died RUN: Process with pid 112972 gracefully died RUN: Process with pid 86581 gracefully died RUN: Process with pid 126867 gracefully died RUN: Process with pid 77399 gracefully died RUN: Process with pid 126009 gracefully died RUN: Process with pid 112722 gracefully died RUN: Process with pid 133815 gracefully died RUN: Process with pid 151517 gracefully died RUN: Process with pid 109387 gracefully died RUN: Process with pid 112880 gracefully died RUN: Process with pid 118258 gracefully died RUN: Process with pid 146327 gracefully died RUN: Process with pid 121955 gracefully died RUN: Process with pid 113110 gracefully died RUN: Process with pid 145564 gracefully died RUN: Process with pid 133004 gracefully died RUN: Process with pid 122335 gracefully died RUN: Process with pid 113069 gracefully died RUN: Process with pid 115976 gracefully died RUN: Process with pid 120704 gracefully died RUN: Process with pid 145999 gracefully died RUN: Process with pid 154862 gracefully died RUN: Process with pid 145628 gracefully died RUN: Process with pid 136494 gracefully died RUN: Process with pid 133491 gracefully died RUN: Process with pid 113100 gracefully died RUN: Process with pid 112731 gracefully died RUN: Process with pid 120832 gracefully died RUN: Process with pid 115997 gracefully died RUN: Process with pid 88297 gracefully died RUN: Process with pid 161636 gracefully died RUN: Process with pid 112720 gracefully died RUN: Process with pid 161231 gracefully died RUN: Process with pid 126034 gracefully died RUN: Process with pid 115723 gracefully died RUN: Process with pid 115991 gracefully died RUN: Process with pid 157890 gracefully died RUN: Process with pid 112889 gracefully died RUN: Process with pid 133751 gracefully died RUN: Process with pid 96591 gracefully died RUN: Process with pid 115994 gracefully died RUN: Process with pid 115995 gracefully died RUN: Process with pid 118339 gracefully died RUN: Process with pid 108952 gracefully died RUN: Process with pid 140790 gracefully died RUN: Process with pid 164927 gracefully died RUN: Process with pid 115725 gracefully died RUN: Process with pid 111735 gracefully died RUN: Process with pid 115999 gracefully died RUN: Process with pid 132900 gracefully died RUN: Process with pid 115662 gracefully died RUN: Process with pid 151649 gracefully died RUN: Process with pid 115963 gracefully died RUN: Process with pid 118163 gracefully died RUN: Process with pid 161570 gracefully died RUN: Process with pid 158158 gracefully died RUN: Process with pid 161566 gracefully died RUN: Process with pid 140801 gracefully died RUN: Process with pid 115770 gracefully died RUN: Process with pid 157881 gracefully died RUN: Process with pid 118676 gracefully died RUN: Process with pid 118641 gracefully died RUN: Process with pid 118299 gracefully died RUN: Process with pid 115473 gracefully died RUN: Process with pid 163312 gracefully died RUN: Process with pid 149030 gracefully died RUN: Process with pid 132662 gracefully died RUN: Process with pid 118711 gracefully died RUN: Process with pid 115864 gracefully died RUN: Process with pid 164933 gracefully died RUN: Process with pid 109117 gracefully died RUN: Process with pid 118802 gracefully died RUN: Process with pid 133020 gracefully died RUN: Process with pid 146748 gracefully died RUN: Process with pid 112803 gracefully died RUN: Process with pid 142454 gracefully died RUN: Process with pid 117934 gracefully died RUN: Process with pid 115540 gracefully died RUN: Process with pid 133803 gracefully died RUN: Process with pid 118710 gracefully died RUN: Process with pid 118129 gracefully died RUN: Process with pid 127586 gracefully died RUN: Process with pid 142476 gracefully died RUN: Process with pid 118018 gracefully died RUN: Process with pid 164780 gracefully died RUN: Process with pid 138836 gracefully died RUN: Process with pid 132935 gracefully died RUN: Process with pid 154895 gracefully died RUN: Process with pid 118209 gracefully died RUN: Process with pid 132606 gracefully died RUN: Process with pid 147125 gracefully died RUN: Process with pid 113056 gracefully died RUN: Process with pid 118365 gracefully died RUN: Process with pid 118740 gracefully died RUN: Process with pid 151689 gracefully died RUN: Process with pid 141247 gracefully died RUN: Process with pid 133725 gracefully died RUN: Process with pid 146353 gracefully died RUN: Process with pid 150350 gracefully died RUN: Process with pid 161503 gracefully died RUN: Process with pid 135970 gracefully died RUN: Process with pid 118844 gracefully died RUN: Process with pid 158728 gracefully died RUN: Process with pid 133201 gracefully died RUN: Process with pid 161650 gracefully died RUN: Process with pid 161623 gracefully died RUN: Process with pid 126368 gracefully died RUN: Process with pid 89110 forced to die with SIGKILL RUN: Process with pid 126027 forced to die with SIGKILL RUN: Process with pid 122584 forced to die with SIGKILL RUN: Process with pid 135855 forced to die with SIGKILL RUN: Process with pid 89134 forced to die with SIGKILL RUN: Process with pid 164663 forced to die with SIGKILL RUN: Process with pid 104366 forced to die with SIGKILL RUN: Process with pid 160102 forced to die with SIGKILL RUN: Process with pid 102051 forced to die with SIGKILL RUN: Process with pid 122443 forced to die with SIGKILL RUN: Process with pid 127218 forced to die with SIGKILL RUN: Process with pid 87691 forced to die with SIGKILL RUN: Process with pid 127399 forced to die with SIGKILL RUN: Process with pid 160157 forced to die with SIGKILL RUN: Process with pid 89046 forced to die with SIGKILL RUN: Process with pid 102580 forced to die with SIGKILL RUN: Process with pid 103627 forced to die with SIGKILL RUN: Process with pid 88938 forced to die with SIGKILL RUN: Process with pid 103047 forced to die with SIGKILL RUN: Process with pid 102012 forced to die with SIGKILL RUN: Process with pid 90308 forced to die with SIGKILL RUN: Process with pid 127229 forced to die with SIGKILL RUN: Process with pid 101717 forced to die with SIGKILL RUN: Process with pid 107925 forced to die with SIGKILL bols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3210 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 43973 --port2 34883 --nghttpx "nghttpx" --pidfile "log/39/server/http_v2_server.pid" --logfile "log/39/http_v2_server.log" --logdir "log/39" --connect 127.0.0.1:42899 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 35799 --port2 41073 --nghttpx "nghttpx" --pidfile "log/51/server/http_v2_server.pid" --logfile "log/51/http_v2_server.log" --logdir "log/51" --connect 127.0.0.1:34903 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 37735 --port2 34491 --nghttpx "nghttpx" --pidfile "log/54/server/http_v2_server.pid" --logfile "log/54/http_v2_server.log" --logdir "log/54" --connect 127.0.0.1:44921 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 38555 --port2 44445 --nghttpx "nghttpx" --pidfile "log/50/server/http_v2_server.pid" --logfile "log/50/http_v2_server.log" --logdir "log/50" --connect 127.0.0.1:45651 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http3-server.pl --port 37113 --nghttpx "nghttpx" --pidfile "log/62/server/http_v3_server.pid" --logfile "log/62/http_v3_server.log" --logdir "log/62" --connect 127.0.0.1:38899 startnew: child process has died, server might start up RUN: failed to start the HTTP/3 server test 2502 SKIPPED: failed starting HTTP/3 server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/63/server/ssh_server.pid" --logdir "log/63" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 43145 startnew: child process has died, server might start up RUN: failed to start the SSH server on 43145 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/18/server/ssh_server.pid" --logdir "log/18" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 40457 startnew: child process has died, server might start up RUN: failed to start the SSH server on 40457 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/17/server/ssh_server.pid" --logdir "log/17" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 32771 startnew: child process has died, server might start up RUN: failed to start the SSH server on 32771 * kill pid for http => 73801 * kill pid for ftp => 77570 * kill pid for smtp => 117937 * kill pid for smtp => 117946 * kill pid for http => 73770 * kill pid for ftp => 77417 * kill pid for http => 73766 * kill pid for pop3 => 117536 * kill pid for ftp-ipv6 => 86560 * kill pid for ftp => 77468 * kill pid for smtp => 120704 * kill pid for mqtt => 161570 * kill pid for http-proxy => 88297 * kill pid for imap => 154895 * kill pid for smtp => 118299 * kill pid for ftp => 78763 * kill pid for http-ipv6 => 161503 * kill pid for http => 73789 * kill pid for http-proxy => 142476 * kill pid for smtp => 119219 * kill pid for mqtt => 133491 * kill pid for tftp => 127229 * kill pid for rtsp => 102012 * kill pid for imap => 140801 * kill pid for http => 73754 * kill pid for ftp => 77376 * kill pid for smtp => 117764 * kill pid for http-proxy => 151900 * kill pid for tftp => 126027 * kill pid for http => 73787 * kill pid for ftp => 77469 * kill pid for pop3 => 115723 * kill pid for socks => 110090 * kill pid for smtp => 118711 * kill pid for http-proxy => 109415 * kill pid for mqtt => 132606 * kill pid for tftp => 122584 * kill pid for http => 73796 * kill pid for ftp => 79551 * kill pid for imap => 112884 * kill pid for ftp => 77437 * kill pid for http => 73781 * kill pid for http-proxy => 161162 * kill pid for smtp => 118774 * kill pid for smtp => 118062 * kill pid for http => 73806 * kill pid for ftp => 77379 * kill pid for http => 77175 * kill pid for ftp => 82698 * kill pid for pop3 => 115991 * kill pid for imap => 112863 * kill pid for smtp => 106052 * kill pid for mqtt => 132662 * kill pid for ftp => 77544 * kill pid for ftp-ipv6 => 86581 * kill pid for http => 73764 * kill pid for mqtt => 132862 * kill pid for smtp => 118339 * kill pid for http-proxy => 146748 * kill pid for ftp => 86383 * kill pid for http => 150350 * kill pid for imap => 113100 * kill pid for pop3 => 115522 * kill pid for mqtt => 132935 * kill pid for tftp => 90308 * kill pid for http-proxy => 77835 * kill pid for smtp => 118641 * kill pid for ftp => 79507 * kill pid for http => 73795 * kill pid for smtp => 118576 * kill pid for socks => 109352 * kill pid for smtp => 118710 * kill pid for pop3 => 115662 * kill pid for imap => 113110 * kill pid for http => 73769 * kill pid for ftp => 77518 * kill pid for pop3 => 122109 * kill pid for ftp => 77504 * kill pid for http => 73758 * kill pid for smtp => 118317 * kill pid for http => 146188 * kill pid for ftp => 77498 * kill pid for smtp => 117887 * kill pid for imap => 120770 * kill pid for mqtt => 157890 * kill pid for imap => 152851 * kill pid for smtp => 118182 * kill pid for http => 73757 * kill pid for ftp => 77586 * kill pid for imap => 106142 * kill pid for ftp => 77429 * kill pid for http => 73779 * kill pid for mqtt => 133201 * kill pid for http-proxy => 111735 * kill pid for socks => 109387 * kill pid for smtp => 118740 * kill pid for pop3 => 115540 * kill pid for http => 73749 * kill pid for ftp => 78462 * kill pid for smtp => 118850 * kill pid for pop3 => 115326 * kill pid for rtsp => 101717 * kill pid for http-proxy => 158728 * kill pid for socks => 108952 * kill pid for smtp => 118365 * kill pid for ftp => 77399 * kill pid for http => 73808 * kill pid for imap => 112803 * kill pid for smtp => 118313 * kill pid for tftp => 160157 * kill pid for http => 73759 * kill pid for http-ipv6 => 86175 * kill pid for ftp => 77995 * kill pid for http => 73783 * kill pid for ftp => 122335 * kill pid for smtp => 118068 * kill pid for http-proxy => 151649 * kill pid for pop3 => 115473 * kill pid for http-ipv6 => 135970 * kill pid for mqtt => 161623 * kill pid for rtsp => 107925 * kill pid for http-proxy => 109407 * kill pid for smtp => 118209 * kill pid for ftp => 100686 * kill pid for http => 73771 * kill pid for imap => 112720 * kill pid for ftp => 94256 * kill pid for http => 73765 * kill pid for imap => 113056 * kill pid for http-ipv6 => 126368 * kill pid for pop3 => 96591 * kill pid for socks => 109117 * kill pid for smtp => 118844 * kill pid for http-proxy => 77906 * kill pid for http-ipv6 => 147125 * kill pid for pop3 => 115864 * kill pid for socks => 109167 * kill pid for smtp => 106081 * kill pid for http => 73797 * kill pid for ftp => 77386 * kill pid for imap => 112889 * kill pid for ftp => 161437 * kill pid for http => 73752 * kill pid for rtsp => 1Runner 73689 exiting Runner 73723 exiting Runner 73726 exiting Runner 73738 exiting Runner 73703 exiting Runner 73706 exiting Runner 73695 exiting Runner 73683 exiting Runner 73718 exiting Runner 73710 exiting Runner 73730 exiting Runner 73699 exiting Runner 73696 exiting Runner 73734 exiting Runner 73693 exiting Runner 73737 exiting Runner 73721 exiting Runner 73712 exiting Runner 73744 exiting Runner 73686 exiting Runner 73709 exiting Runner 73732 exiting Runner 73717 exiting Runner 73725 exiting Runner 73691 exiting Runner 73741 exiting Runner 73729 exiting Runner 73714 exiting Runner 73705 exiting Runner 73684 exiting Runner 73700 exiting Runner 73742 exiting Runner 73733 exiting Runner 73697 exiting Runner 73690 exiting Runner 73708 exiting Runner 73736 exiting Runner 73694 exiting Runner 73746 exiting Runner 73720 exiting Runner 73728 exiting Runner 73743 exiting Runner 73716 exiting Runner 73701 exiting Runner 73713 exiting Runner 73692 exiting Runner 73715 exiting Runner 73740 exiting Runner 73727 exiting Runner 73685 exiting Runner 73724 exiting Runner 73698 exiting Runner 73704 exiting Runner 73719 exiting Runner 73707 exiting Runner 73722 exiting Runner 73687 exiting Runner 73731 exiting Runner 73735 exiting Runner 73745 exiting Runner 73702 exiting Runner 73739 exiting Runner 73688 exiting Runner 73711 exiting 03627 * kill pid for smtp => 118529 * kill pid for http => 73778 * kill pid for ftp => 77461 * kill pid for smtp => 119106 * kill pid for http => 73762 * kill pid for http-ipv6 => 145628 * kill pid for ftp => 77499 * kill pid for smtp => 118532 * kill pid for mqtt => 161566 * kill pid for smtp => 106061 * kill pid for tftp => 135855 * kill pid for mqtt => 133020 * kill pid for pop3 => 115995 * kill pid for imap => 112972 * kill pid for http => 73790 * kill pid for ftp => 79172 * kill pid for ftp => 77416 * kill pid for http => 73807 * kill pid for smtp => 118024 * kill pid for ftp => 77500 * kill pid for http => 73788 * kill pid for http-proxy => 151972 * kill pid for smtp => 117824 * kill pid for ftp => 78622 * kill pid for http => 73750 * kill pid for smtp => 118697 * kill pid for tftp => 89110 * kill pid for http-proxy => 139503 * kill pid for smtp => 118309 * kill pid for ftp => 77543 * kill pid for http => 73763 * kill pid for ftp => 90579 * kill pid for http => 73793 * kill pid for socks => 163312 * kill pid for smtp => 117868 * kill pid for http-proxy => 161231 * kill pid for http-ipv6 => 87136 * kill pid for ftp => 77502 * kill pid for http => 73800 * kill pid for smtp => 117877 * kill pid for http-proxy => 165019 * kill pid for http => 73780 * kill pid for ftp => 79344 * kill pid for http-ipv6 => 126867 * kill pid for smtp => 118559 * kill pid for imap => 112844 * kill pid for ftp => 78730 * kill pid for http => 73756 * kill pid for tftp => 160102 * kill pid for socks => 108949 * kill pid for smtp => 118802 * kill pid for pop3 => 115994 * kill pid for http => 73799 * kill pid for ftp => 77501 * kill pid for pop3 => 120832 * kill pid for http-ipv6 => 164780 * kill pid for smtp => 117844 * kill pid for mqtt => 157881 * kill pid for http => 73748 * kill pid for ftp => 78009 * kill pid for pop3 => 121955 * kill pid for smtp => 118251 * kill pid for tftp => 89046 * kill pid for mqtt => 132900 * kill pid for rtsp => 102580 * kill pid for http => 73775 * kill pid for imap => 152935 * kill pid for tftp => 87691 * kill pid for http-proxy => 77705 * kill pid for smtp => 118063 * kill pid for http => 73751 * kill pid for ftp => 79508 * kill pid for http-proxy => 142454 * kill pid for smtp => 119241 * kill pid for rtsp => 104366 * kill pid for pop3 => 140790 * kill pid for http-ipv6 => 126009 * kill pid for smtp => 118111 * kill pid for http-ipv6 => 86139 * kill pid for imap => 164933 * kill pid for http => 75714 * kill pid for ftp => 78258 * kill pid for gopher => 133751 * kill pid for http => 73777 * kill pid for ftp => 80544 * kill pid for smtp => 118257 * kill pid for socks5unix => 149215 * kill pid for tftp => 89134 * kill pid for rtsp => 164663 * kill pid for http => 73791 * kill pid for gopher => 133803 * kill pid for ftp => 89661 * kill pid for imap => 112880 * kill pid for pop3 => 115999 * kill pid for socks => 109392 * kill pid for smtp => 106059 * kill pid for http-proxy => 151689 * kill pid for rtsp => 102051 * kill pid for pop3 => 115997 * kill pid for socks => 109342 * kill pid for smtp => 118676 * kill pid for http-proxy => 138836 * kill pid for tftp => 122443 * kill pid for http => 73776 * kill pid for ftp => 100730 * kill pid for imap => 106054 * kill pid for imap => 112722 * kill pid for ftp => 77425 * kill pid for http => 73804 * kill pid for socks => 109110 * kill pid for smtp => 117934 * kill pid for pop3 => 115725 * kill pid for ftp => 77973 * kill pid for http => 73755 * kill pid for imap => 113069 * kill pid for pop3 => 115963 * kill pid for smtp => 118129 * kill pid for socks => 109157 * kill pid for http-proxy => 141247 * kill pid for http => 73773 * kill pid for http-ipv6 => 86151 * kill pid for ftp => 100684 * kill pid for tftp => 127399 * kill pid for ftp-ipv6 => 86585 * kill pid for ftp => 79706 * kill pid for http => 73768 * kill pid for smtp => 118258 * kill pid for smtp => 119287 * kill pid for ftp => 78026 * kill pid for http => 75108 * kill pid for imap => 164927 * kill pid for smtp => 117955 * kill pid for ftp => 77381 * kill pid for gopher-ipv6 => 133815 * kill pid for http => 73802 * kill pid for ftp => 90762 * kill pid for http => 73794 * kill pid for smtp => 118124 * kill pid for http-proxy => 151517 * kill pid for smtp => 117856 * kill pid for socks5unix => 149030 * kill pid for http => 73785 * kill pid for ftp-ipv6 => 126034 * kill pid for ftp => 77494 * kill pid for smtp => 118052 * kill pid for http-ipv6 => 136494 * kill pid for ftp => 87603 * kill pid for ftp-ipv6 => 126022 * kill pid for http => 73772 * kill pid for http-proxy => 158158 * kill pid for smtp => 118108 * kill pid for imap => 145999 * kill pid for ftp => 87701 * kill pid for http => 73784 * kill pid for ftp => 89681 * kill pid for http => 73767 * kill pid for mqtt => 161636 * kill pid for smtp => 118283 * kill pid for http => 73798 * kill pid for ftp => 77456 * kill pid for smtp => 118504 * kill pid for smtp => 119692 * kill pid for http-unix => 146327 * kill pid for http => 73760 * kill pid for pop3 => 117533 * kill pid for ftp => 159141 * kill pid for http => 73761 * kill pid for ftp => 77508 * kill pid for smtp => 119614 * kill pid for mqtt => 133004 * kill pid for rtsp => 103047 * kill pid for tftp => 88938 * kill pid for smtp => 118163 * kill pid for http-proxy => 127586 * kill pid for pop3 => 115976 * kill pid for imap => 112855 * kill pid for gopher => 133725 * kill pid for ftp => 77431 * kill pid for http => 73747 * kill pid for http => 73786 * kill pid for ftp => 79624 * kill pid for smtp => 117803 * kill pid for smtp => 145564 * kill pid for http => 73753 * kill pid for ftp => 79056 * kill pid for ftp-ipv6 => 86620 * kill pid for imap => 112731 * kill pid for ftp => 79493 * kill pid for http => 73803 * kill pid for http-unix => 146353 * kill pid for tftp => 127218 * kill pid for mqtt => 161650 * kill pid for socks => 109146 * kill pid for smtp => 118018 * kill pid for pop3 => 115770 * kill pid for smtp => 118082 * kill pid for http => 154862 * kill pid for ftp => 78998 TESTDONE: 1849 tests were considered during 95 seconds. TESTINFO: 273 tests were skipped due to these restraints: TESTINFO: "curl lacks Debug support" 96 times (159, 356, 358, 359, 363, 412, 413, 437, 438 and 87 more) TESTINFO: "no stunnel" 58 times (300, 301, 302, 303, 304, 305, 306, 307, 308 and 49 more) TESTINFO: "failed starting SSH server" 52 times (582, 583, 600, 601, 602, 603, 604, 605, 606 and 43 more) TESTINFO: "configured as DISABLED" 15 times (323, 433, 594, 836, 882, 938, 1182, 1184, 1209 and 6 more) TESTINFO: "curl lacks manual support" 7 times (1026, 1179, 1461, 1707, 1708, 1709, 1710) TESTINFO: "failed starting HTTP/2 server" 7 times (1700, 1701, 1702, 2402, 2403, 2404, 2405) TESTINFO: "curl lacks Schannel support" 6 times (2033, 2070, 2079, 2087, 3023, 3024) TESTINFO: "no gnutls-serv (with SRP support)" 4 times (320, 321, 322, 324) TESTINFO: "precheck command error" 4 times (518, 537, 1517, 1960) TESTINFO: "curl has IDN support" 3 times (959, 960, 961) TESTINFO: "curl lacks TrackMemory support" 3 times (96, 558, 1330) TESTINFO: "curl lacks ECH support" 2 times (4000, 4001) TESTINFO: "curl lacks ldap support" 2 times (445, 1560) TESTINFO: "curl lacks nghttpx-h3 support" 2 times (2500, 2503) TESTINFO: "curl lacks override-dns support" 2 times (2102, 2103) TESTINFO: "Resolving IPv6 'ip6-localhost' didn't work" 2 times (241, 1083) TESTINFO: "curl has IPv6 support" 1 time (1454) TESTINFO: "curl has proxy support" 1 time (375) TESTINFO: "curl has threaded-resolver support" 1 time (506) TESTINFO: "curl lacks Unicode support" 1 time (1703) TESTINFO: "failed starting DICT server" 1 time (1450) TESTINFO: "failed starting HTTP/3 server" 1 time (2502) TESTINFO: "failed starting neg TELNET server" 1 time (1452) TESTINFO: "failed starting SMB server" 1 time (1451) FAIL-IGNORED 573: 'verify connect time with multi interface' HTTP, multi, flaky FAIL-IGNORED 587: 'HTTP multi-part formpost with aborted read callback' HTTP, HTTP POST, FORM, flaky FAIL-IGNORED 1086: 'FTP download with strict timeout and slow data transfer' FTP, EPSV, RETR, timeout, FAILURE, SLOWDOWNDATA, flaky, timing-dependent FAIL-IGNORED 1113: 'FTP wildcard download - changed fnmatch, 2x perform (DOS LIST response)' FTP, RETR, LIST, wildcardmatch, ftplistparser, flaky FAIL-IGNORED 1162: 'FTP wildcard with crazy pattern' FTP, RETR, LIST, wildcardmatch, ftplistparser, flaky FAIL-IGNORED 1163: 'FTP wildcard with pattern ending with an open-bracket' FTP, RETR, LIST, wildcardmatch, ftplistparser, flaky FAIL-IGNORED 1208: 'FTP PORT download, no data conn and no transient negative reply' FTP, PORT, RETR, NODATACONN150, timeout, FAILURE, flaky, timing-dependent FAIL-IGNORED 1510: 'HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)' HTTP, verbose logs, flaky FAIL-IGNORED 1592: 'HTTP request, remove handle while resolving, don't block' HTTP, multi, resolve, speedcheck, flaky, timing-dependent FAIL-IGNORED 2032: 'NTLM connection mapping' HTTP, HTTP GET, HTTP Basic auth, HTTP NTLM auth, NTLM, flaky, timing-dependent IGNORED: failed tests: 573 587 1086 1113 1162 1163 1208 1510 1592 2032 TESTDONE: 25 tests out of 1576 reported OK: 1% FAIL 1: 'HTTP GET' HTTP, HTTP GET FAIL 2: 'HTTP GET with user and password' HTTP, HTTP GET, HTTP Basic auth FAIL 3: 'HTTP POST with auth and contents but with content-length set to 0' HTTP, HTTP POST, HTTP Basic auth FAIL 4: 'Replaced internal and added custom HTTP headers' HTTP, HTTP GET, HTTP added headers, HTTP replaced headers FAIL 5: 'HTTP over proxy' HTTP, HTTP GET, HTTP proxy FAIL 6: 'HTTP with simple cookie send' HTTP, HTTP GET, HTTP set cookie, cookies FAIL 7: 'HTTP with cookie parser and header recording' HTTP, HTTP GET, cookies, header dump FAIL 8: 'HTTP with cookie parsing from header file' HTTP, HTTP GET, cookies FAIL 9: 'HTTP RFC1867-type formposting' HTTP, HTTP FORMPOST, HTTP file upload FAIL 10: 'simple HTTP PUT from file' HTTP, HTTP PUT FAIL 11: 'simple HTTP Location: following' HTTP, HTTP GET, followlocation FAIL 12: 'HTTP range support' HTTP, HTTP GET, Content-Range FAIL 13: 'HTTP custom request 'DELETE'' HTTP, HTTP custom request FAIL 14: 'HTTP HEAD with Connection: close' HTTP, HTTP HEAD FAIL 15: '--write-out test' HTTP, HTTP GET, --write-out FAIL 16: 'HTTP with proxy authorization' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 17: 'HTTP with config file on stdin' HTTP, HTTP custom request, config file FAIL 18: 'multiple requests using {} in URL' HTTP, HTTP GET, globbing, {} list FAIL 19: 'attempt connect to non-listening socket' HTTP, connect to non-listen, FAILURE FAIL 20: 'attempt connect to non-existing host name' HTTP, FAILURE, non-existing host FAIL 21: 'use curl with multiple request methods' FAILURE, multiple HTTP requests FAIL 22: 'get HTTP with URL > 10000 bytes' HTTP, long URL FAIL 23: 'unsupported protocol:// URL' unsupported scheme, FAILURE FAIL 24: 'HTTP GET fail silently on HTTP error return' HTTP, HTTP GET, --fail FAIL 25: 'looping HTTP Location: following with --max-redirs' HTTP, HTTP GET, followlocation, --max-redirs FAIL 26: 'specify more -o than URLs' HTTP, HTTP GET FAIL 27: 'Get same cookie page several times' HTTP, HTTP GET, cookies FAIL 28: 'HTTP Location: following with extra spaces in header' HTTP, HTTP GET FAIL 29: 'HTTP with 2 secs timeout' HTTP, HTTP GET, timeout, FAILURE FAIL 30: 'HTTP with no data in server reply' HTTP, HTTP GET, FAILURE FAIL 31: 'HTTP with weirdly formatted cookies and cookiejar storage' HTTP, HTTP GET, cookies, cookiejar FAIL 32: 'HTTP with -d and -G' HTTP, HTTP GET, -G FAIL 33: 'HTTP PUT with resume' HTTP, HTTP PUT, Resume, Content-Range FAIL 34: 'HTTP GET with chunked Transfer-Encoding' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 35: 'HTTP POST binary data with embedded NUL' HTTP, HTTP POST, --data-binary FAIL 36: 'HTTP GET with bad chunked Transfer-Encoding' HTTP, HTTP GET, chunked Transfer-Encoding, FAILURE FAIL 37: 'HTTP GET with nothing returned from server' HTTP, HTTP GET, FAILURE FAIL 38: 'HTTP resume request without server supporting it' HTTP, HTTP GET, Resume, FAILURE FAIL 39: 'HTTP RFC1867-type formposting with filename= and type=' HTTP, HTTP FORMPOST FAIL 40: 'HTTP redirect with whitespace after ? (and conversion)' HTTP, HTTP GET, followlocation FAIL 41: 'HTTP formpost with missing file' HTTP, HTTP FORMPOST, FAILURE FAIL 42: 'HTTP redirect with whitespace in path (and conversion)' HTTP, HTTP GET, followlocation FAIL 43: 'HTTP Location: following over HTTP proxy' HTTP, HTTP GET, followlocation, HTTP proxy FAIL 44: 'HTTP RFC1867-type formposting without Expect: header' HTTP, HTTP FORMPOST, HTTP replaced headers FAIL 45: 'simple HTTP Location: without protocol in initial URL' HTTP, HTTP GET, followlocation FAIL 46: 'HTTP with bad domain name, get cookies and store in cookie jar' HTTP, HTTP GET, cookies, cookiejar, --resolve FAIL 47: 'simple HTTP 1.0 GET' HTTP, HTTP GET, HTTP/1.0 FAIL 48: 'HTTP with -d and -G and -I' HTTP, HTTP HEAD, -G FAIL 49: 'HTTP follow redirect with ../' HTTP, HTTP GET, followlocation FAIL 50: 'HTTP follow redirect with ../../' HTTP, HTTP GET, followlocation FAIL 51: 'HTTP follow redirect with excessive ../' HTTP, HTTP GET, followlocation FAIL 52: 'HTTP follow redirect with ./-prefix' HTTP, HTTP GET, followlocation FAIL 53: 'HTTP, junk session cookies' HTTP, HTTP GET, cookies FAIL 54: 'HTTP with blank Location:' HTTP, HTTP GET, followlocation FAIL 55: 'HTTP follow redirect with single slash in path' HTTP, HTTP GET, followlocation FAIL 56: 'HTTP POST with *HUGE* request and chunked transfer-encoding' HTTP, HTTP POST, chunked Transfer-Encoding, config file, -A FAIL 57: 'HTTP content-type with spaces in' HTTP, HTTP GET, --write-out FAIL 58: 'HTTP PUT from file with weird letters' HTTP, HTTP PUT FAIL 59: 'HTTP URL with slash but with "parameter"' HTTP, HTTP GET FAIL 60: 'HTTP PUT from stdin with wrong content-length' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 61: 'HTTP with various cookies and custom Host:' HTTP, HTTP GET, cookies, cookiejar, HTTP replaced headers, httponly FAIL 62: 'HTTP, send cookies when using custom Host:' HTTP, HTTP GET, HTTP replaced headers, cookies, httponly FAIL 63: 'HTTP with proxy authorization set in environment' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, http_proxy FAIL 64: 'HTTP with Digest authorization' HTTP, HTTP GET, HTTP Digest auth FAIL 65: 'HTTP with Digest authorization with bad password' HTTP, HTTP GET, HTTP Digest auth FAIL 66: 'HTTP GET without headers in the response' HTTP, HTTP GET, HTTP/0.9 FAIL 67: 'HTTP with NTLM authorization' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 68: 'HTTP with NTLM authorization and wrong password' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 69: 'HTTP with NTLM, Basic or Wild-and-crazy authorization' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 70: 'HTTP with Digest *OR* NTLM authorization' HTTP, HTTP GET, HTTP Digest auth, --anyauth FAIL 71: 'HTTP and -F upload in config file' HTTP, HTTP FORMPOST, config file FAIL 72: 'HTTP with Digest *OR* Basic authorization' HTTP, HTTP GET, HTTP Digest auth FAIL 73: 'HTTP, receive cookies when using custom Host:, domain using only two dots' HTTP, HTTP GET, cookies, cookiejar FAIL 74: 'HTTP, urlglob {}-retrieval and -o #[num] usage' HTTP, HTTP GET, globbing, {} list FAIL 75: 'HTTP, urlglob retrieval with bad range' HTTP, HTTP GET, globbing, FAILURE FAIL 76: 'HTTP with comma-separated WWW-Authenticate header' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 77: 'HTTP with -z "older date"' HTTP, HTTP GET, If-Modified-Since, -z FAIL 78: 'HTTP with -z "newer date"' HTTP, HTTP GET, If-Modified-Since, -z FAIL 79: 'FTP over HTTP proxy' FTP, HTTP, HTTP GET, HTTP proxy FAIL 80: 'HTTP 1.0 CONNECT with proxytunnel and proxy+host Basic authentication' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, HTTP proxy, HTTP proxy Basic auth, proxytunnel FAIL 81: 'HTTP with proxy using NTLM authorization' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 82: 'HTTP with proxy requiring NTLM, but we send Basic' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, HTTP proxy NTLM auth FAIL 83: 'HTTP over proxy-tunnel with site authentication' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, proxytunnel FAIL 84: 'HTTP over proxy with site authentication' HTTP, HTTP GET, HTTP Basic auth, HTTP proxy FAIL 85: 'HTTP over proxy with site and proxy authentication' HTTP, HTTP GET, HTTP Basic auth, HTTP proxy, HTTP proxy Basic auth FAIL 86: 'HTTP, urlglob []-retrieval and -o #[num] usage' HTTP, HTTP GET, globbing, [] range FAIL 87: 'urlglob with out of range -o #[num] usage' HTTP, HTTP GET, globbing, [] range, FAILURE FAIL 88: 'HTTP PUT with Digest authorization' HTTP, HTTP PUT, HTTP Digest auth FAIL 89: 'HTTP with NTLM and follow-location' HTTP, HTTP GET, HTTP NTLM auth, followlocation, NTLM FAIL 90: 'HTTP with NTLM via --anyauth, and then follow-location with NTLM again' HTTP, HTTP GET, HTTP NTLM auth, --anyauth, followlocation, NTLM FAIL 91: 'HTTP with NTLM/Negotiate/Basic, anyauth and user with domain, with size 0' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 92: 'HTTP resume transfer with the whole file already downloaded' HTTP, HTTP GET, Content-Range, Resume FAIL 93: 'HTTP GET with failed proxy auth' HTTP, HTTP GET, HTTP proxy FAIL 94: 'HTTPS GET with failed proxy auth (CONNECT 1.0)' HTTPS, HTTP GET, HTTP CONNECT, HTTP proxy, FAILURE FAIL 95: 'HTTP over proxytunnel using POST' HTTP, HTTP POST, HTTP CONNECT, proxytunnel FAIL 97: 'HTTP POST with custom content-type' HTTP, HTTP POST, HTTP replaced headers FAIL 98: 'HTTP PUT from stdin with set size, disabling chunked transfer-encoding' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 99: 'HTTP GET with large-file resume point and failed resume' HTTP, HTTP GET, Resume, Largefile, FAILURE FAIL 100: 'FTP dir list PASV' FTP, PASV, LIST FAIL 101: 'FTP dir list, PORT with specified IP' FTP, PORT, LIST FAIL 102: 'FTP RETR PASV' FTP, PASV, RETR FAIL 103: 'FTP RETR PORT with CWD' FTP, PORT, RETR FAIL 104: 'FTP --head to get file size only' FTP, NOBODY FAIL 105: 'FTP user+password in URL and ASCII transfer' FTP, PASV, TYPE A, RETR FAIL 106: 'FTP GET with type=A style ASCII URL using %20 codes' FTP, EPSV, TYPE A, RETR, type= FAIL 107: 'FTP PASV upload file' FTP, EPSV, STOR FAIL 108: 'FTP PORT upload with CWD' FTP, PORT, STOR FAIL 109: 'FTP PASV upload append' FTP, EPSV, APPE FAIL 110: 'FTP download resume with set limit' FTP, PASV, RETR, Resume FAIL 111: 'FTP download resume beyond file size' FTP, EPSV, Resume, FAILURE FAIL 112: 'FTP PASV upload resume' FTP, EPSV, APPE, Resume FAIL 113: 'FTP download, failed login: USER not valid' FTP, FAILURE FAIL 114: 'FTP download, failed login: PASS not valid' FTP, FAILURE FAIL 115: 'FTP download, failed PASV' FTP, PASV, FAILURE FAIL 116: 'FTP download, failed PORT' FTP, EPRT, PORT, FAILURE, EPRT refused FAIL 117: 'FTP download, failed TYPE' FTP, FAILURE FAIL 118: 'FTP download, failed RETR' FTP, PASV, RETR, FAILURE FAIL 119: 'FTP download, failed RETR with PORT' FTP, PORT, RETR, FAILURE FAIL 120: 'ftp download with post-quote delete operation' FTP, PASV, RETR, post-quote FAIL 121: 'ftp download with post- and pre-transfer delete operations' FTP, EPSV, RETR, post-quote, pre-quote FAIL 122: 'FTP download resume with whole file already downloaded' FTP, PASV, Resume FAIL 123: 'FTP upload resume with whole file already downloaded' FTP, EPSV, Resume FAIL 124: 'FTP download, failed PWD' FTP, PASV, RETR FAIL 125: 'FTP download, failed CWD' FTP, FAILURE FAIL 126: 'FTP download with multiple replies at once in RETR' FTP, EPSV, RETR, RETRWEIRDO FAIL 127: 'FTP --disable-epsv' FTP, PASV, RETR, --disable-epsv FAIL 128: 'FTP upload with --crlf' FTP, EPSV, STOR, --crlf FAIL 129: 'HTTP/1.2 is rejected' HTTP, HTTP GET FAIL 130: 'FTP (optional .netrc; no user/pass) dir list PASV' FTP, EPSV, LIST, netrc FAIL 131: 'FTP (optional .netrc; user/no pass) dir list PASV' FTP, EPSV, LIST, netrc FAIL 132: 'FTP (optional .netrc; user/passwd supplied) dir list PASV' FTP, EPSV, LIST, netrc FAIL 133: 'FTP compulsory .netrc; ignore passwd in URL' FTP, EPSV, LIST, netrc FAIL 134: 'FTP (optional .netrc; programmatic user/passwd) dir list PASV' FTP, EPSV, LIST, netrc FAIL 135: 'FTP retrieve a byte-range' FTP, EPSV, RETR, Range FAIL 136: 'FTP with user and no password' FTP, EPSV, RETR FAIL 137: 'FTP download without size in RETR string' FTP, RETR, --data-binary FAIL 138: 'FTP download without size in RETR string and no SIZE command' FTP, RETR FAIL 139: 'FTP download a newer file with -z' FTP, RETR, -z FAIL 140: 'FTP download file with -z, expected to not transfer' FTP, -z, --data-binary FAIL 141: 'FTP download info with -I' FTP, NOBODY FAIL 142: 'FTP URL with 150 dir levels' FTP FAIL 143: 'FTP URL with type=a' FTP, RETR, type= FAIL 144: 'FTP NLST dir list without contents, using PORT' FTP, PORT, NLST, --data-binary FAIL 145: 'FTP NLST dir list with weird reply code, using PORT' FTP, NLST, PORT FAIL 146: 'persistent FTP with different paths' FTP, RETR, persistent connection FAIL 147: 'FTP with --ftp-create-dirs (failing CWD)' FTP FAIL 148: 'FTP with --ftp-create-dirs (failing MKD)' FTP FAIL 149: 'FTP with multiple uploads' FTP FAIL 150: 'HTTP with NTLM authorization and --fail' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 151: 'HTTP GET with an error code that might trick authentication' HTTP, HTTP GET FAIL 152: 'HTTP GET with an error code that might trick authentication and --fail' HTTP, HTTP GET, --fail FAIL 153: 'HTTP with Digest authorization with stale=true' HTTP, HTTP GET, HTTP Digest auth FAIL 154: 'HTTP PUT with --anyauth authorization (picking Digest)' HTTP, HTTP PUT, HTTP Digest auth, --anyauth FAIL 155: 'HTTP PUT with --anyauth authorization (picking NTLM)' HTTP, HTTP PUT, HTTP NTLM auth, NTLM FAIL 156: 'HTTP PUT with --anyauth (when the server requires none)' HTTP, HTTP PUT, --anyauth FAIL 157: 'HTTP GET with --anyauth (when the server requires none)' HTTP, HTTP GET, --anyauth FAIL 158: 'HTTP multipart formpost with only a 100 reply' HTTP, HTTP POST FAIL 160: 'HTTP with delayed close, conn reuse, connection reset and retry' HTTP, HTTP GET, DELAY FAIL 161: 'FTP RETR PASV' FTP, CURLE_PARTIAL_FILE, RETR, PASV FAIL 162: 'HTTP GET asking for --proxy-ntlm when some other authentication is required' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, FAILURE FAIL 163: 'HTTP multipart formpost with contents from a file' HTTP, HTTP POST FAIL 164: 'HTTP range with multiple ranges' HTTP, HTTP GET FAIL 165: 'HTTP over proxy with IDN host name' HTTP, HTTP GET, HTTP proxy, IDN FAIL 166: 'HTTP formpost a file with spaces in name' HTTP, HTTP POST FAIL 167: 'HTTP with proxy-requiring-Basic to site-requiring-Digest' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, HTTP Digest auth FAIL 168: 'HTTP with proxy-requiring-Digest to site-requiring-Digest' HTTP, HTTP GET, HTTP proxy, HTTP proxy Digest auth, HTTP Digest auth FAIL 169: 'HTTP with proxy-requiring-NTLM to site-requiring-Digest' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, HTTP Digest auth, NTLM FAIL 170: 'HTTP POST with --proxy-ntlm and no SSL with no response' HTTP, HTTP POST, HTTP proxy, HTTP proxy NTLM auth FAIL 171: 'HTTP, get cookie with dot prefixed full domain' HTTP, HTTP GET, HTTP proxy, cookies FAIL 172: 'HTTP with cookies file and custom added cookie' HTTP, HTTP GET, cookies FAIL 173: 'HTTP RFC1867-formpost a file from stdin with "faked" filename' HTTP, HTTP POST FAIL 174: 'HTTP POST --anyauth to server not requiring any auth at all' HTTP, HTTP POST FAIL 175: 'HTTP POST --digest to server not requiring any auth at all' HTTP, HTTP POST, HTTP Digest auth FAIL 176: 'HTTP POST --ntlm to server not requiring any auth at all' HTTP, HTTP POST, HTTP NTLM auth FAIL 177: 'HTTP POST --digest to server doing a 302-location response' HTTP, HTTP POST, HTTP Digest auth, followlocation FAIL 178: 'HTTP response with negative Content-Length' HTTP, HTTP GET FAIL 179: 'HTTP using proxy and cookies with path checks' HTTP, HTTP GET, HTTP proxy, cookies FAIL 180: 'HTTP 1.0 PUT' HTTP, HTTP PUT, HTTP/1.0 FAIL 181: 'HTTP 1.0 POST' HTTP, HTTP POST, HTTP/1.0 FAIL 182: 'FTP download an empty file' FTP FAIL 183: 'HTTP GET two URLs over a single proxy with persistent connection' HTTP, HTTP GET, HTTP proxy, persistent connection FAIL 184: 'HTTP replace Host: when following Location: to new host' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 185: 'HTTP replace Host: when following Location: on the same host' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 186: 'HTTP RFC1867-type formposting with types on text fields' HTTP, HTTP POST FAIL 187: 'HTTP redirect with bad host name separation and slash in parameters' HTTP, HTTP GET, followlocation FAIL 188: 'HTTP GET with resume and redirect' HTTP, HTTP GET, Content-Range, Resume, followlocation FAIL 189: 'HTTP GET with resume and redirect (to a page that doesn't resume)' HTTP, HTTP GET FAIL 190: 'FTP download with strict timeout and slow CWD' FTP, timeout, FAILURE, DELAY FAIL 191: 'FTP URL with ?-letters in username and password' FTP FAIL 192: 'HTTP GET -w num_connects with one simple connect' HTTP, HTTP GET FAIL 193: 'HTTP GET -w num_connects with redirected fetch (2 connects)' HTTP, HTTP GET, followlocation, --write-out FAIL 194: 'HTTP resume transfer with the whole file already downloaded and --fail' HTTP, HTTP GET, Content-Range, Resume FAIL 195: 'FTP response 530 after PASS, temporarily not allowed access' FTP FAIL 196: 'FTP transient error, retry request once' FTP, retry FAIL 197: 'HTTP GET --retry on 503 error with output to stdout' HTTP, HTTP GET, retry FAIL 198: 'HTTP GET --retry on 503 error with output to file' HTTP, HTTP GET, retry FAIL 199: 'HTTP with -d, -G and {}' HTTP, HTTP GET, globbing FAIL 200: 'basic file:// file' FILE FAIL 201: 'missing file:// file' FILE, FAILURE FAIL 202: 'two file:// URLs to stdout' FILE FAIL 203: 'file:/path URL with a single slash' FILE FAIL 204: '"upload" with file://' FILE FAIL 205: '"upload" nonexisting with file://' FILE, FAILURE FAIL 206: 'HTTP proxy CONNECT auth Digest' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, HTTP proxy Digest auth FAIL 207: 'HTTP GET with chunked Transfer-Encoding closed prematurely' HTTP, HTTP GET, CURLE_PARTIAL_FILE, FAILURE, chunked Transfer-Encoding FAIL 208: 'HTTP PUT to an FTP URL with username+password - over HTTP proxy' FTP, HTTP, HTTP PUT, HTTP proxy FAIL 209: 'HTTP proxy CONNECT auth NTLM' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 210: 'Get two FTP files from the same remote dir: no second CWD' FTP FAIL 211: 'Get two FTP files with no remote EPSV support' FTP FAIL 212: 'Get two FTP files with no remote EPRT support' FTP, EPRT FAIL 213: 'HTTP 1.0 proxy CONNECT auth NTLM and then POST' HTTP, HTTP POST, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 214: 'HTTP URL with escaped { and }' HTTP, HTTP GET FAIL 215: 'Get two FTP dir listings from the same remote dir: no second CWD' FTP FAIL 216: 'FTP upload two files to the same dir' FTP FAIL 217: 'HTTP proxy CONNECT to proxy returning 405' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, followlocation, --write-out FAIL 218: 'HTTP PUT from a file but enforce chunked transfer-encoding' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 219: 'try using proxy with unsupported scheme' proxy, unsupported scheme FAIL 220: 'HTTP GET gzip compressed content' HTTP, HTTP GET, compressed FAIL 221: 'HTTP GET gzip compressed content with broken gzip header' HTTP, HTTP GET, compressed, FAILURE FAIL 222: 'HTTP GET deflate compressed content' HTTP, HTTP GET, compressed FAIL 223: 'HTTP GET deflate compressed content with broken deflate header' HTTP, HTTP GET, compressed, FAILURE FAIL 224: 'HTTP GET gzip compressed content with huge comment and extra field' HTTP, HTTP GET, compressed FAIL 225: 'FTP %0a-code in URL's name part' FTP, FAILURE FAIL 226: 'FTP %0d-code in URL's CWD part' FTP, FAILURE FAIL 227: 'FTP with quote ops' FTP, post-quote, pre-quote FAIL 228: 'FTP RETR with ACCT' FTP, ACCT FAIL 229: 'FTP RETR with bad ACCT' FTP, ACCT, FAILURE FAIL 230: 'HTTP GET multiply compressed content' HTTP, HTTP GET, compressed FAIL 231: 'file:// with resume' FILE FAIL 232: 'HTTP GET deflate raw-compressed content' HTTP, HTTP GET, compressed FAIL 233: 'HTTP, proxy, site+proxy auth and Location: to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation FAIL 234: 'HTTP, proxy, site+proxy auth and Location: to new host location-trusted' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, followlocation, --location-trusted FAIL 235: 'FTP resumed upload but no file present remotely' FTP, STOR FAIL 236: 'FTP resume upload but denied access to remote file' FTP FAIL 237: 'FTP getting bad host in 227-response to PASV' FTP FAIL 238: 'FTP getting bad port in response to EPSV' FTP FAIL 239: 'HTTP proxy-auth NTLM and then POST' HTTP, HTTP POST, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 240: 'HTTP-IPv6 GET' HTTP, HTTP GET, IPv6 FAIL 242: 'HTTP-IPv6 GET with username+password in URL' HTTP, HTTP GET, IPv6, HTTP Basic auth FAIL 243: 'HTTP POST with --proxy-anyauth, picking NTLM' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, --proxy-anyauth, NTLM FAIL 244: 'FTP dir listing with nocwd and URL encoded path' FTP, PASV, CWD, --ftp-method, nocwd FAIL 245: 'HTTP POST --digest' HTTP, HTTP POST, HTTP Digest auth FAIL 246: 'HTTP POST --digest with server doing a 100 before 401 response' HTTP, HTTP POST, HTTP Digest auth FAIL 247: 'FTP upload time condition evaluates TRUE => skip upload' FTP, MDTM FAIL 248: 'FTP upload time condition evaluates FALSE => upload anyway' FTP, STOR, MDTM FAIL 249: 'HTTP 304 response with "illegal" Content-Length: header' HTTP, HTTP GET, -z FAIL 250: 'FTP dir list PASV with slow response' FTP, SLOWDOWN FAIL 251: 'FTP dir list, PORT with specified IP and slow response' FTP, SLOWDOWN FAIL 252: 'FTP IPv6 dir list PASV' FTP, FTP-ipv6, IPv6, EPSV FAIL 253: 'FTP IPv6 dir list with EPRT' FTP, FTP-ipv6, IPv6, EPRT FAIL 254: 'FTP IPv6 dir list PASV and --disable-epsv' FTP, FTP-ipv6, IPv6, EPSV, --disable-epsv FAIL 255: 'FTP IPv6 dir list with EPRT and --disable-eprt' FTP, FTP-ipv6, IPv6, EPRT, --disable-eprt FAIL 256: 'HTTP resume request over proxy with auth without server supporting it' HTTP, HTTP GET, HTTP proxy, Resume, FAILURE FAIL 257: 'HTTP Location: following with --netrc-optional' HTTP, HTTP GET, HTTP proxy, HTTP Basic auth, followlocation, netrc FAIL 258: 'HTTP POST multipart without Expect: header using proxy anyauth (Digest)' HTTP, HTTP FORMPOST, HTTP replaced headers, HTTP proxy, HTTP proxy Digest auth, --proxy-anyauth FAIL 259: 'HTTP POST multipart with Expect: header using proxy anyauth (Digest)' HTTP, HTTP FORMPOST, HTTP proxy, HTTP proxy Digest auth, --proxy-anyauth FAIL 260: 'HTTP GET URL without slash but with question mark' HTTP, HTTP GET FAIL 261: 'FTP RETR with 226 response code to TYPE' FTP, EPSV, RETR FAIL 262: 'Reject HTTP response with binary zero in header' HTTP, HTTP GET FAIL 263: 'HTTP-IPv6 GET with proxy specified using IPv6-numerical address' HTTP, HTTP GET, IPv6, HTTP proxy FAIL 264: 'HTTP with proxy string including http:// and user+password' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 265: 'HTTP proxy CONNECT auth NTLM and then POST, response-body in the 407' HTTP, HTTP POST, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 266: 'HTTP GET with chunked Transfer-Encoding and chunked trailer' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 267: 'HTTP POST with NTLM authorization and added custom headers' HTTP, HTTP POST, HTTP NTLM auth, NTLM FAIL 268: 'JSON encoding of Unicode string' HTTP, variables FAIL 269: 'HTTP --ignore-content-length' HTTP, HTTP GET FAIL 270: 'FTP RETR PASV --ftp-skip-pasv-ip' FTP, PASV, RETR FAIL 271: 'TFTP retrieve' TFTP, TFTP RRQ FAIL 272: 'FTP timed conditioned get file with identical time stamp' FTP, PASV, RETR FAIL 273: 'HTTP with two Digest authorization headers' HTTP, HTTP GET, HTTP Digest auth FAIL 274: 'HTTP Location: following with --max-redirs 0' HTTP, HTTP GET, followlocation, --max-redirs FAIL 275: 'HTTP CONNECT with proxytunnel getting two URLs from the same host' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, HTTP proxy, HTTP proxy Basic auth, proxytunnel FAIL 276: 'HTTP Location: following with multiple question marks in URLs' HTTP, HTTP GET, followlocation FAIL 277: 'HTTP RFC1867-type formposting with custom Content-Type' HTTP, HTTP FORMPOST FAIL 278: 'HTTP with proxy string including http:// and user+empty password' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 279: 'HTTP with proxy string including http:// and user only' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 280: 'FTP --ftp-alternative-to-user on USER failure' FTP, PASV, LIST, --ftp-alternative-to-user FAIL 281: 'HTTP PUT from file with 100 + 401 responses and -f without auth given' HTTP, HTTP PUT FAIL 282: 'HTTP GET with no response body or headers' HTTP, HTTP GET FAIL 283: 'TFTP retrieve on invalid file' TFTP, TFTP RRQ, FAILURE FAIL 284: 'TFTP retrieve of boundary case 512 byte file' TFTP, TFTP RRQ FAIL 285: 'TFTP send' TFTP, TFTP WRQ FAIL 286: 'TFTP send of boundary case 512 byte file' TFTP, TFTP WRQ FAIL 287: 'HTTP proxy CONNECT with custom User-Agent header' HTTP, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 288: 'file:// with (unsupported) proxy, authentication and range' FILE FAIL 289: 'FTP resume upload but denied access to local file' FTP, STOR, Resume, FAILURE FAIL 290: 'FTP download maximum filesize exceeded' FTP, --max-filesize FAIL 291: 'FTP download maximum filesize not exceeded' FTP, RETR, --max-filesize FAIL 292: 'HTTP GET with maximum filesize not exceeded' HTTP, HTTP GET, --max-filesize FAIL 293: 'HTTP GET with maximum filesize exceeded' HTTP, HTTP GET, --max-filesize, FAILURE FAIL 294: 'FTP --ftp-account on ACCT request' FTP, PASV, LIST, ACCT, --ftp-account FAIL 295: 'FTP ACCT request without --ftp-account' FTP, PASV, LIST, ACCT, FAILURE FAIL 296: 'FTP CWD with --ftp-method multicwd' FTP, PASV, CWD, --ftp-method, multicwd FAIL 297: 'FTP CWD with --ftp-method singlecwd' FTP, PASV, CWD, --ftp-method, singlecwd FAIL 298: 'FTP CWD with --ftp-method nocwd' FTP, PASV, CWD, --ftp-method, nocwd FAIL 299: 'FTP over HTTP proxy with user:pass not in url' FTP, HTTP, CURLOPT_USERPWD, HTTP proxy FAIL 314: 'HTTP GET brotli compressed content' HTTP, HTTP GET, compressed FAIL 315: 'HTTP GET brotli compressed content with broken header' HTTP, HTTP GET, compressed, FAILURE FAIL 316: 'HTTP GET brotli compressed content of size more than CURL_MAX_WRITE_SIZE' HTTP, HTTP GET, compressed FAIL 317: 'HTTP with custom Authorization: and redirect to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation FAIL 318: 'HTTP with custom Authorization: and redirect to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation FAIL 319: 'HTTP GET gobbledigook transfer-encoded data in raw mode' HTTP, HTTP GET, Transfer-Encoding, --raw FAIL 326: 'HTTP GET chunked data in raw mode' HTTP, HTTP GET FAIL 327: 'HTTP with cookiejar without cookies left' HTTP, HTTP GET, cookies, header dump FAIL 328: 'HTTP with "Content-Encoding: none' HTTP, HTTP GET, Content-Encoding FAIL 329: 'HTTP cookie with Max-Age=0' HTTP, HTTP GET, cookies FAIL 330: 'HTTP with custom Cookie: and redirect to new host' HTTP, HTTP proxy, followlocation, cookies FAIL 331: 'HTTP with cookie using host name 'moo'' HTTP, HTTP GET, HTTP proxy, cookies FAIL 332: 'TFTP retrieve with blksize 400' TFTP, TFTP RRQ, FAILURE FAIL 333: 'Try a non-boolean command line option with --no-' cmdline FAIL 334: 'HTTP 204 No content with chunked header' HTTP, 204 FAIL 335: 'HTTP with proxy Digest and site Digest with creds in URLs' HTTP, HTTP GET, HTTP proxy, HTTP proxy Digest auth, HTTP Digest auth, HTTP auth in URL FAIL 336: 'FTP range download when SIZE doesn't work' FTP, PASV, TYPE A, RETR FAIL 337: 'FTP range download with SIZE returning extra crap' FTP, PASV, TYPE A, RETR FAIL 338: 'ANYAUTH connection reuse of non-authed connection' HTTP, HTTP GET FAIL 339: 'Check if --etag-save saved correct etag to a file' HTTP, HTTP GET FAIL 340: 'FTP using %00 in path with singlecwd' FTP, PASV, CWD, --ftp-method, singlecwd FAIL 341: 'A non existing file with --etag-compare is just a blank' HTTP, HTTP GET FAIL 342: 'Check if --etag-compare set correct etag in header' HTTP, HTTP GET FAIL 343: 'Both --etag-compare and --etag-save to save new Etag' HTTP, HTTP GET FAIL 344: 'Both --etag-compare and -save store new Etag using non-existing file' HTTP, HTTP GET FAIL 345: 'Both --etag-compare and -save store new Etag using one pre-existing file' HTTP, HTTP GET FAIL 346: 'HTTP GET over proxy with credentials using blank passwords' HTTP, proxy FAIL 347: '--etag-save with blank incoming header' HTTP, HTTP GET FAIL 348: 'FTP upload file with 552 disk full response' FTP, EPSV, STOR FAIL 349: 'HTTP GET --fail-with-body on HTTP error return' HTTP, HTTP GET, --fail-with-body FAIL 350: 'FTP root dir list multicwd' FTP, PASV, LIST FAIL 351: 'FTP root dir list nocwd' FTP, PASV, LIST FAIL 352: 'FTP root dir list singlecwd' FTP, PASV, LIST FAIL 353: 'FTP home dir list singlecwd' FTP, PASV, LIST FAIL 354: 'FTP without password' FTP, PASV, RETR FAIL 355: 'load Alt-Svc from file and use' HTTP, Alt-Svc FAIL 357: 'HTTP PUT with Expect: 100-continue and 417 response' HTTP, HTTP PUT, Expect: 100-continue FAIL 360: 'Error on both --fail-with-body and --fail' --fail, --fail-with-body FAIL 361: 'HTTP GET --fail-with-body on HTTP error return - twice' HTTP, HTTP GET, --fail-with-body FAIL 362: 'FTP resume upload file with nothing to start from' FTP, EPSV, STOR FAIL 365: 'HTTP/1.1 with chunked AND Content-Length headers' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 366: 'HTTP --retry-max-time with too long Retry-After' HTTP, HTTP GET, retry FAIL 367: 'Empty user name provided in URL' HTTP, HTTP GET, HTTP Basic auth FAIL 368: 'Append dash if -r range specified without one' HTTP, HTTP GET, Range FAIL 369: '--etag-save with bad path then working transfer' HTTP, HTTP GET, etag FAIL 370: '--etag-save with bad path - no transfer' HTTP, HTTP GET, etag FAIL 371: 'using more -o than URLs in the command line' HTTP, HTTP GET FAIL 372: 'Binary zero in data element.' HTTP, HTTP GET FAIL 373: 'Chunked transfer encoding - Multiple valid chunks with binary zeros.' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 374: 'Valid gif with two frames. No new line in data section.' HTTP, HTTP GET, gif data FAIL 376: '--remove-on-error' HTTP, HTTP GET FAIL 378: 'Reject using -T and -d at once' HTTP PUT, HTTP POST FAIL 379: '--remove-on-error with --no-clobber and an added number' HTTP, HTTP GET FAIL 380: 'pick netrc password based on user name in URL' FTP, EPSV, LIST, netrc FAIL 381: 'netrc-optional lets URL creds override netrc' FTP, EPSV, LIST, netrc FAIL 383: 'HTTP with --json' HTTP, HTTP POST, --json FAIL 384: 'HTTP with --json from stdin' HTTP, HTTP POST, --json FAIL 385: 'HTTP with --json x 2' HTTP, HTTP POST, --json FAIL 386: 'HTTP with --json + --next' HTTP, HTTP POST, --json FAIL 387: 'Response with overly long compression chain' HTTP, gzip FAIL 388: 'HTTP with Digest and multiple qop values with leading space' HTTP, HTTP GET, HTTP Digest auth FAIL 389: '*.localhost is a local host' HTTP, .localhost FAIL 390: 'curl HTTP, FILE and FTP in parallel' HTTP, FTP, parallel FAIL 391: '--path-as-is with redirect, keeping dotdots' HTTP, HTTP GET, --path-as-is FAIL 392: 'HTTP secure cookies over localhost' HTTP, HTTP GET, cookies, secure FAIL 393: 'HTTP max-filesize and out-of-range Content-Length' HTTP, HTTP GET, --max-filesize, FAILURE FAIL 394: 'HTTP with rubbish in Content-Length' HTTP, HTTP GET, FAILURE FAIL 395: 'HTTP and out-of-range Content-Length' HTTP, HTTP GET FAIL 396: 'HTTP GET zstd compressed content' HTTP, HTTP GET, compressed FAIL 397: 'HTTP GET zstd compressed content of size more than CURL_MAX_WRITE_SIZE' HTTP, HTTP GET, compressed FAIL 398: 'Reject HTTP/1.1 response with colon-less header' HTTP, HTTP GET FAIL 399: '65536 bytes long host name in URL' URL FAIL 402: 'FTP SSL required on non-SSL server' FTP, FTPS, FAILURE FAIL 405: 'FTPS operation to FTP port' FTP, FTPS, FAILURE FAIL 411: '-K with missing file causes error' -K FAIL 415: 'HTTP response with control code then negative Content-Length' HTTP, HTTP GET FAIL 416: 'FTP growing file support' FTP, EPSV, RETR, Range FAIL 418: 'Response with multiple Transfer-Encoding headers' HTTP, gzip FAIL 419: '--dump-header to file that cannot be created' --dump-header, FAILURE FAIL 420: 'Setting cookies set with expired dates that were loaded from jar' HTTP, HTTP GET, cookies FAIL 421: 'HTTP GET multiple headers and %{header_json}' header_json FAIL 422: 'use --next with missing URL before it' cmdline, --next FAIL 423: '-w with url.* variables' -w, --write-out FAIL 424: '-w with urle.* variables' -w, --write-out FAIL 425: 'HTTP PUT with path ending with slash + query' HTTP, HTTP PUT FAIL 426: 'try --data with --continue-at' Resume, error detection FAIL 427: 'Keep Cookie: header within 8190 bytes' HTTP, HTTP GET, cookies FAIL 428: 'Expand environment variables within config file' HTTP, variables, --config FAIL 429: 'Expand environment variable in config file - too long name' HTTP, HTTP POST, variables FAIL 430: 'Three -K uses with --next and --data in each' --next, --config, POST FAIL 431: 'Two -K uses with --next and then one on cmdline' --next, --config, POST FAIL 432: 'Use -K with --next and --config from within' --next, --config, POST FAIL 434: '-K with a single line without newline' HTTP, --config FAIL 435: 'verify -w local/remote port+ip after connection reuse' HTTP, HTTP GET FAIL 436: 'Find .curlrc in .config/curlrc via CURL_HOME' --config FAIL 440: 'HSTS with trailing-dot host name in URL but none in hsts file' HTTP, HTTP proxy, HSTS, trailing-dot FAIL 441: 'HSTS with no t-dot host name in URL but t-dot in file' HTTP, HTTP proxy, HSTS, trailing-dot FAIL 442: 'Send capped huge number of matching cookies' HTTP, cookies, --resolve FAIL 443: 'Cookie header in request no longer than 8K' HTTP, cookies, --resolve FAIL 444: 'Many Set-Cookie response headers' HTTP, cookies, --resolve FAIL 448: 'Environment variables within config file, unbalanced braces' HTTP, variables, --config FAIL 449: 'Environment variables in config file w/o [expand]' HTTP, variables, --config FAIL 450: 'Variable from file that is trimmed and URL encoded' HTTP, variables FAIL 451: 'Variable from file that is JSON and URL encoded (with null byte)' HTTP, variables FAIL 452: 'Variable using illegal function in expansion' variables FAIL 453: 'Variable output containing null byte' HTTP, variables FAIL 454: 'Variable using illegal function separator' variables FAIL 455: 'Variable using base64' variables FAIL 456: 'Variable output starting with null byte' HTTP, variables FAIL 457: 'chunked Transfer-Encoding with --max-filesize' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 458: 'variable expand the file name with --expand-output' HTTP, variables FAIL 459: 'config file with argument using whitespace missing quotes' HTTP, --config FAIL 460: 'try --expand without an argument' variables, expand FAIL 461: 'disable Host: when specified as lower case' HTTP, HTTP GET, --header FAIL 462: 'Missing environment variables in config file' variables, --config FAIL 463: 'HTTP with -d @file with file containing CR, LF and null byte' HTTP, HTTP POST, -d FAIL 467: 'use a bad short option letter that does not exist (after one does exist)' cmdline FAIL 468: 'set -w in config, then reset -w to blank on cmdline' HTTP, --write-out, --config FAIL 469: 'warn about Unicode quote character' HTTP FAIL 470: 'warn about Unicode quote character read from config file' HTTP FAIL 471: 'Reject HTTP/1.1 to HTTP/2 switch on the same connection' HTTP, HTTP GET, globbing, {} list FAIL 473: 'Check if --etag-save saved correct etag to a file on 301' HTTP, HTTP GET FAIL 475: 'FTP PASV upload ASCII file' FTP, EPSV, STOR, TYPE A FAIL 476: 'FTP PASV upload ASCII file already using CRLF' FTP, EPSV, STOR, TYPE A FAIL 477: 'HTTP GET with maximum filesize with a redirect sending data' HTTP, HTTP GET, --max-filesize FAIL 478: '.netrc with multiple accounts for same host' netrc, HTTP FAIL 479: '.netrc with redirect and default without password' netrc, HTTP FAIL 480: 'Reject .netrc with credentials using CRLF for POP3' netrc, POP3 FAIL 481: '--no-clobber with --continue-at' HTTP, HTTP GET, --no-clobber, --continue-at FAIL 482: '--remove-on-error with --continue-at' HTTP, --remove-on-error, --continue-at FAIL 483: 'HTTP cookies with long expire dates' HTTP, HTTP GET, cookies FAIL 484: 'Use --etag-compare and -save with more than one URL' HTTP, etag FAIL 485: 'Use --etag-compare and -save with more than one URL, URLs specified first' HTTP, etag FAIL 486: '.netrc with redirect and "default" with no password or login' netrc, HTTP FAIL 487: 'Variable using 64dec with bad base64' variables FAIL 488: 'Download two URLs provided on stdin' HTTP, HTTP GET, --url FAIL 489: 'Download two URLs provided in a file' HTTP, HTTP GET, --url FAIL 490: 'Two globbed HTTP PUTs' HTTP, HTTP PUT FAIL 491: 'Two globbed HTTP PUTs, the second upload file is missing' HTTP, HTTP PUT FAIL 492: 'Two globbed HTTP PUTs to two globbed URLs' HTTP, HTTP PUT FAIL 493: 'HSTS and %{url_effective} after upgrade' HTTP, HTTP proxy, HSTS, url_effective FAIL 494: 'skip 'macdef' when parsing netrc' FTP, EPSV, netrc, macdef FAIL 495: 'user+password in URL with optional netrc' HTTP, netrc FAIL 496: 'parallel upload missing file' curl tool, cmdline, parallel FAIL 497: 'Reject too large accumulated HTTP response headers' HTTP, HTTP GET FAIL 498: 'Reject too large HTTP response headers on endless redirects' HTTP, HTTP GET FAIL 499: 'HTTP HEAD to server still sending a body' HTTP, HTTP GET FAIL 500: 'simple libcurl HTTP GET tool' HTTP, HTTP GET FAIL 501: 'simple libcurl attempt operation without URL set' missing URL FAIL 502: 'simple multi file:// get' FILE FAIL 503: 'simple multi http:// through proxytunnel with authentication info' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy Basic auth, proxytunnel, multi FAIL 504: 'simple multi through local proxy without listener' HTTP, HTTP GET, HTTP proxy, multi, FAILURE, connect to non-listen FAIL 505: 'FTP upload with rename after transfer' FTP, STOR FAIL 507: 'multi interface get with non-existing host name' HTTP, multi, FAILURE, non-existing host FAIL 508: 'send HTTP POST using read callback' HTTP, POST, POST callback FAIL 509: 'initialization with memory callbacks and actual usage' memory callbacks FAIL 510: 'send HTTP POST using read callback, using chunked transfer-encoding' HTTP, HTTP POST, chunked Transfer-Encoding FAIL 511: 'FTP with FILETIME and NOBODY but missing file' FTP FAIL 512: 'simple curl_easy_duplicate() test' HTTP, HTTP GET FAIL 513: 'send HTTP POST using read callback that returns CURL_READFUNC_ABORT' HTTP, HTTP POST FAIL 514: 'First set options to POST and then to make HEAD' HTTP, HTTP HEAD FAIL 515: 'make a POSTFIELDS set to NULL with POSTFIELDSIZE set to zero' HTTP, HTTP POST FAIL 516: 'make an HTTPPOST set to NULL' HTTP, HTTP POST, FORM FAIL 517: 'curl_getdate() testing' getdate, unittest FAIL 519: 'GET same URL twice with different users' HTTP, HTTP GET FAIL 520: 'FTP RETR with FILETIME' FTP FAIL 521: 'FTP dir list PASV with CURLOPT_PORT' FTP, PASV, CURLOPT_PORT FAIL 522: 'HTTP GET with CURLOPT_PORT' HTTP, HTTP GET, CURLOPT_PORT FAIL 523: 'HTTP GET with proxy and CURLOPT_PORT' HTTP, HTTP GET, HTTP proxy, CURLOPT_PORT, CURLOPT_PROXY FAIL 524: 'FTP upload with target URL ending with slash' FTP, UPLOAD FAIL 525: 'FTP PORT upload using multi interface' FTP, PORT, STOR, multi FAIL 526: 'FTP RETR same file using different handles but same connection' FTP, PASV, RETR, multi FAIL 527: 'FTP RETR same file using different handles but same connection' FTP, PASV, RETR, multi FAIL 528: 'HTTP GET same file using different handles but same connection' HTTP, HTTP GET, multi FAIL 529: 'FTP PORT upload using multi interface (weird cleanup function sequence)' FTP, PORT, STOR, multi FAIL 530: 'multi_socket interface transfer with callbacks returning error' multi, HTTP FAIL 531: 'FTP PORT upload using multi interface and get 425 response' FTP, PORT, STOR, multi FAIL 532: 'FTP RETR same file using reset handles between each transfer' FTP, PASV, RETR, multi FAIL 533: 'FTP RETR a non-existing file twice using the multi interface' FTP, PASV, RETR, multi FAIL 534: 'FTP RETR twice using multi: non-existing host and non-existing file' FTP, PASV, RETR, multi, non-existing host FAIL 535: 'HTTP GET multi two files with FAILONERROR' HTTP, HTTP GET, multi FAIL 536: 'CURLINFO_USED_PROXY' HTTP, HTTP GET, HTTP proxy, CURLOPT_PROXY, CURLOPT_NOBODY, CURLINFO_USED_PROXY FAIL 538: 'FTP multi-interface download, failed login: PASS not valid' FTP, FAILURE, multi FAIL 539: 'Two FTP fetches using different CURLOPT_FTP_FILEMETHOD' FTP FAIL 540: 'HTTP proxy auth Digest multi API re-using connection' HTTP, HTTP GET, HTTP proxy, HTTP proxy Digest auth, multi FAIL 541: 'FTP upload and upload same file again without rewind' FTP, STOR FAIL 542: 'FTP a file with NOBODY yes and HEADER no' FTP, PASV, RETR FAIL 543: 'curl_easy_escape' curl_easy_escape FAIL 544: 'HTTP POST text data using CURLOPT_COPYPOSTFIELDS' HTTP, HTTP POST FAIL 545: 'HTTP POST binary with embedded zero and no trailing zero' HTTP, HTTP POST FAIL 546: 'FTP RETR a non-existing file then a found one using the multi interface' FTP, PASV, RETR, multi FAIL 547: 'HTTP proxy auth NTLM with POST data from read callback' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 548: 'HTTP proxy auth NTLM with POST data from CURLOPT_POSTFIELDS' HTTP, HTTP POST, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 549: 'FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE' FTP, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_PROXY, HTTP proxy FAIL 550: 'FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE and ASCII transfer' FTP, HTTP proxy, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_PROXY FAIL 551: 'HTTP proxy auth Digest with POST data from read callback' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy Digest auth FAIL 552: 'HTTP proxy auth Digest with 70K POST data from read callback' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy Digest auth FAIL 553: 'HTTP post with huge request headers and post data from callback' HTTP, HTTP POST, POST callback, huge request header FAIL 554: 'HTTP multi-part formpost using read callback for the file part' HTTP, HTTP POST, FORM FAIL 555: 'HTTP proxy auth NTLM with POST data from read callback multi-if' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, multi, NTLM FAIL 556: 'send and recv HTTP' HTTP, HTTP GET FAIL 557: 'curl_mprintf() testing' printf, unittest FAIL 559: 'use tiny CURLOPT_BUFFERSIZE' CURLOPT_BUFFERSIZE, HTTP FAIL 561: 'FTP RETR with CURLOPT_PROXY_TRANSFER_MODE, ASCII transfer and type=i' FTP, HTTP proxy, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_PROXY, type= FAIL 562: 'FTP a type=A URL and CURLOPT_PORT set' FTP, PASV, RETR FAIL 563: 'FTP type=A URL and CURLOPT_PORT set and proxy' FTP, CURLOPT_PORT, HTTP proxy FAIL 564: 'FTP RETR a file over a SOCKS proxy using the multi interface' FTP, PASV, RETR, multi, SOCKS4 FAIL 565: 'send HTTP POST using read callback, chunked transfer-encoding and Digest' HTTP, HTTP POST, HTTP Digest auth, chunked Transfer-Encoding FAIL 566: 'HTTP GET with CURLINFO_CONTENT_LENGTH_DOWNLOAD and 0 bytes transfer' HTTP, HTTP GET FAIL 567: 'simple RTSP OPTIONS command' RTSP, OPTIONS FAIL 568: 'RTSP Announce (PUT and POST style) test' RTSP, ANNOUNCE FAIL 569: 'RTSP Session ID parsing' RTSP, SESSION_ID FAIL 570: 'RTSP CSeq and Session Mismatch checks' RTSP, Mismatch checking FAIL 571: 'RTSP RTP Interleaving Test' RTSP, RTP FAIL 572: 'RTSP GET_PARAMETER (Put/Heartbeat/Post)' RTSP, GET_PARAMETER FAIL 574: 'FTP wildcard download - changed fnmatch, 2x perform (Unix LIST response)' FTP, LIST, RETR, wildcardmatch, ftplistparser FAIL 575: 'FTP wildcard download - dup_handle and multi interface' FTP, RETR, multi, wildcardmatch, ftplistparser FAIL 576: 'FTP wildcard - skip/parser_correctness/CURLOPT_FNMATCH_FUNCTION (Unix)' FTP, wildcardmatch, ftplistparser FAIL 577: 'Funny RTSP version in response' RTSP, OPTIONS FAIL 578: 'HTTP POST lower than MAX_INITIAL_POST_SIZE with progress callback' HTTP, HTTP POST FAIL 579: 'small chunked HTTP POSTs with digest auth. and progress callback' HTTP, HTTP POST, HTTP Digest auth FAIL 580: 'multi interface, multiple Location: headers' HTTP, HTTP GET, multi, Duplicate-header FAIL 581: 'multi interface, multiple Content-Type: headers' HTTP, HTTP GET, multi, Duplicate-header FAIL 584: 'CURLOPT_MIMEPOST first set then set to NULL' HTTP, HTTP POST, HTTP MIME FAIL 585: 'socket open/close callbacks' HTTP, HTTP GET, multi, CURLOPT_OPENSOCKETFUNCTION, CURLOPT_CLOSESOCKETFUNCTION FAIL 586: 'FTP and open/close socket callbacks' FTP, PASV, CURLOPT_PORT FAIL 588: 'FTP PORT upload using multi interface, EPRT doesn't work' FTP, PORT, STOR, multi, EPRT refused FAIL 589: 'make an HTTP MIME POST set to NULL' HTTP, HTTP POST, HTTP MIME FAIL 590: 'HTTP proxy offers Negotiate+NTLM, use only NTLM' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 591: 'FTP multi PORT and 425 on upload' FTP, PORT, STOR, multi, EPRT refused, NODATACONN425 FAIL 592: 'FTP multi PORT and 421 on upload' FTP, PORT, STOR, multi, EPRT refused, NODATACONN421 FAIL 593: 'FTP multi PORT upload, no data conn and no transient neg. reply' FTP, PORT, STOR, multi, EPRT refused, NODATACONN150 FAIL 595: 'verify close callbacks with passive FTP' FTP FAIL 596: 'verify close callbacks with active FTP' FTP FAIL 597: 'FTP connect only option' FTP, CONNECT_ONLY FAIL 598: 'curl_easy_reset with referer and other strings set' HTTP, HTTP GET, HTTP set cookie, cookies, CURLOPT_REFERER, curl_easy_reset FAIL 599: 'HTTP GET with progress callback and redirects changing content sizes' HTTP, HTTP POST, chunked Transfer-Encoding FAIL 632: 'SFTP syntactically invalid host key' SFTP, FAILURE, server key check FAIL 643: 'HTTP multi-part mimepost using read callback for the file part' HTTP, HTTP POST, HTTP MIME POST FAIL 645: 'HTTP multi-part chunked mimepost using read callback for the file part' HTTP, HTTP POST, HTTP MIME POST FAIL 646: 'SMTP multipart using mime API' SMTP, MULTIPART FAIL 647: 'IMAP APPEND multipart using mime API' IMAP, APPEND, UPLOAD, MULTIPART FAIL 648: 'SMTP multipart with transfer content encoders' SMTP, MULTIPART FAIL 649: 'SMTP multipart with 7bit encoder error' SMTP, MULTIPART FAIL 650: 'HTTP formpost using form API - with redirect and re-POST' HTTP, HTTP POST, FORM FAIL 651: 'curl_formadd with huge COPYCONTENTS' HTTP, HTTP POST, FORM FAIL 652: 'SMTP with encoded huge mime data contents' SMTP, MIME FAIL 653: 'Reuse of handle after altering mime data' HTTP, HTTP POST, MIME FAIL 654: 'HTTP duplicate easy handle with mime data' HTTP, HTTP POST, HTTP MIME POST FAIL 655: 'resolver start callback' HTTP FAIL 658: 'Pass URL to libcurl with CURLOPT_CURLU' HTTP, HTTP GET, CURLOPT_CURLU FAIL 659: 'CURLOPT_CURLU without the path set - over proxy' HTTP, HTTP GET, CURLOPT_CURLU, proxy FAIL 660: 'IMAP CONNECT_ONLY option' IMAP, CONNECT_ONLY FAIL 661: 'Avoid redundant CWDs' FTP FAIL 662: 'HTTP redirect with whitespace in absolute Location: URL' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 663: 'HTTP redirect with dotdots and whitespaces in absolute Location: URL' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 666: 'HTTP mime post with binary-encoded huge data contents' HTTP, HTTP POST, HTTP MIME POST, MIME FAIL 667: 'HTTP chunked mimepost using single-byte read callback with encoder' HTTP, HTTP POST, HTTP MIME POST FAIL 668: 'HTTP mimepost early end of data detection' HTTP, HTTP POST, HTTP MIME POST FAIL 669: 'HTTP custom Content-Type with parameter' HTTP, HTTP POST, HTTP MIME POST, HTTP FORMPOST FAIL 670: 'Request pause from mime read callback: multi' HTTP, HTTP POST, MIME FAIL 671: 'Request pause from mime read callback: easy' HTTP, HTTP POST, MIME FAIL 672: 'Request pause from form read callback: multi' HTTP, HTTP POST, FORM FAIL 673: 'Request pause from form read callback: easy' HTTP, HTTP POST, FORM FAIL 674: 'Set CURLOPT_CURLU and dupe the handle' HTTP, HTTP GET, CURLOPT_CURLU, curl_easy_duphandle FAIL 675: 'HTTP connection reuse and different credentials' HTTP, HTTP GET, HTTP Basic auth FAIL 676: 'verify setting CURLOPT_COOKIEFILE to NULL again' HTTP, HTTP GET, HTTP set cookie, cookies, CURLOPT_REFERER, curl_easy_reset FAIL 677: 'IMAP with CONNECT_ONLY, custom command then exit' IMAP, CONNECT_ONLY FAIL 679: 'netrc with quoted password' HTTP, netrc FAIL 680: 'netrc with quoted password but missing end quote' HTTP, netrc FAIL 681: '--remote-name-all with --no-remote-name' HTTP, HTTP GET FAIL 682: 'netrc with multiple logins - pick first' HTTP, netrc FAIL 683: 'netrc with multiple logins - pick second' HTTP, netrc FAIL 684: 'netrc with no login' HTTP, netrc FAIL 685: 'netrc with no login - provided user' HTTP, netrc FAIL 686: 'verify return code for missing URL after --next' errorcode FAIL 689: 'fuzzing crash issue #12701' RTSP, OPTIONS FAIL 690: '-O with URL without path using trailing slash' HTTP, HTTP GET FAIL 691: '-O with URL with path using trailing slash' HTTP, HTTP GET FAIL 692: '-JO with URL without path using trailing slash' HTTP, HTTP GET FAIL 693: '--etag-save with --create-dirs' HTTP, HTTP GET, etag FAIL 694: 'HTTP with NTLM twice, verify CURLINFO_HTTPAUTH_USED' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 695: 'MIME parts reuse as a child part' MIME FAIL 696: 'CONNECT_ONLY and doing a second curl_easy_perform' HTTP, HTTP GET FAIL 697: 'netrc with missing netrc file' HTTP, netrc FAIL 698: 'FTP with ACCT and connection reuse' FTP, ACCT FAIL 699: '--config with single-letter options plus one that is cleared' HTTP, --config FAIL 700: 'HTTP GET via SOCKS4 proxy' HTTP, HTTP GET, SOCKS4 FAIL 701: 'HTTP GET via SOCKS5 proxy' HTTP, HTTP GET, SOCKS5 FAIL 702: 'Attempt connect to non-listening HTTP server via SOCKS4 proxy' HTTP, SOCKS4, connect to non-listen, FAILURE FAIL 703: 'Attempt connect to non-listening HTTP server via SOCKS5 proxy' HTTP, SOCKS5, connect to non-listen, FAILURE FAIL 704: 'Attempt connect to non-listening SOCKS4 proxy' HTTP, SOCKS4, connect to non-listen, FAILURE FAIL 705: 'Attempt connect to non-listening SOCKS5 proxy' HTTP, SOCKS5, connect to non-listen, FAILURE FAIL 706: 'FTP dir list PASV via SOCKS4' FTP, PASV, LIST, SOCKS4 FAIL 707: 'FTP dir list PASV via SOCKS5' FTP, PASV, LIST, SOCKS5 FAIL 708: 'HTTP GET via SOCKS4 proxy' HTTP, HTTP GET, SOCKS4 FAIL 709: 'HTTP GET via SOCKS5 set in http_proxy environment variable' HTTP, HTTP GET, SOCKS5, http_proxy FAIL 710: 'HTTP GET via SOCKS5 set with --proxy' HTTP, HTTP GET, SOCKS5 FAIL 711: 'FTP fetch with all_proxy set to socks5' FTP, PASV, RETR, SOCKS5, all_proxy FAIL 712: 'FTP fetch with --proxy set to socks5://' FTP, PASV, RETR, SOCKS5 FAIL 713: 'FTP fetch with --proxy set to socks5:// and with --connect-to' FTP, PASV, RETR, SOCKS5, CURLOPT_CONNECT_TO FAIL 714: 'FTP fetch with --proxy set to http:// and with --connect-to' FTP, PASV, RETR, HTTP, HTTP CONNECT, proxytunnel, CURLOPT_CONNECT_TO FAIL 715: 'FTP fetch with --preproxy, --proxy and --connect-to' FTP, PASV, RETR, HTTP, HTTP CONNECT, proxytunnel, SOCKS5, CURLOPT_CONNECT_TO FAIL 716: 'SOCKS5 proxy with too long user name' HTTP, SOCKS5, all_proxy FAIL 717: 'SOCKS5 proxy auth' HTTP, SOCKS5, all_proxy FAIL 718: 'HTTP proxy CONNECT (no auth) with proxy returning 407 and closing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, HTTP proxy Digest auth FAIL 719: 'HTTP GET with IPv6 numerical via SOCKS5h' HTTP, HTTP GET, SOCKS5, SOCKS5h FAIL 720: 'HTTP GET with IPv4 numerical via SOCKS5h' HTTP, HTTP GET, SOCKS5, SOCKS5h FAIL 721: 'HTTP GET with host name using SOCKS5h' HTTP, HTTP GET, SOCKS5, SOCKS5h FAIL 722: 'IPFS' IPFS FAIL 723: 'IPFS with malformed gateway URL (bad function argument error)' IPFS FAIL 724: 'IPFS with gateway URL from gateway file' IPFS FAIL 725: 'IPFS with malformed gateway URL from gateway file' IPFS FAIL 726: 'IPFS with no gateway URL (no environment or home file either)' IPFS FAIL 727: 'IPNS' IPNS FAIL 728: 'SOCKS5h with HTTP redirect to hostname too long' HTTP, HTTP GET, SOCKS5, SOCKS5h, followlocation FAIL 729: 'SOCKS4 with very long proxy user name' HTTP, HTTP GET, SOCKS4 FAIL 730: 'IPFS arg gateway with path' IPFS FAIL 731: 'IPFS with gateway URL and path from gateway file' IPFS FAIL 732: 'IPFS with path' IPFS FAIL 733: 'IPFS with path and query args' IPFS FAIL 734: 'IPFS with path, query args and gateway with path' IPFS FAIL 735: 'IPNS with path, query args and gateway with path' IPFS FAIL 736: 'IPFS with IPFS_PATH set, no trailing slash' IPFS FAIL 737: 'IPFS with IPFS_PATH set, with trailing slash' IPFS FAIL 738: 'IPFS with IPFS_PATH, no gateway file' IPFS FAIL 739: 'IPNS path and query args for gateway and IPFS url (malformed gateway url)' IPFS FAIL 740: 'IPFS with gateway URL from multiline gateway file' IPFS FAIL 741: 'IPFS malformed gw URL from multiline gateway file, first line no url' IPFS FAIL 742: 'SOCKS5-hostname with max length credentials and max host name length' HTTP, SOCKS5, all_proxy FAIL 743: '--config with a 127 byte line' HTTP, --config FAIL 744: '--netrc-file with a 127 byte line' HTTP, --netrc-file, netrc FAIL 746: 'too large numerical value passed to -m' cmdline FAIL 747: 'Reject too many HTTP response headers' HTTP, HTTP GET FAIL 748: 'A --config file that uses -h and no URL' --config FAIL 749: 'HTTP CONNECT with proxy returning 400 and closing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 750: 'HTTP CONNECT with proxy returning just HTML and closing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 751: 'multi - add many easy handles' MULTI FAIL 752: '--retry and -f on a HTTP 404 response' HTTP, HTTP GET, -f, --retry FAIL 754: 'FTP list with quote ops' FTP, list, post-quote, pre-quote FAIL 784: '--variable with a file byte range' HTTP, --variable FAIL 785: '--variable with a file byte range without end' HTTP, --variable FAIL 786: '--variable with a file byte range, reading from stdin' HTTP, --variable FAIL 787: '--variable with a file byte range, bad range' HTTP, --variable FAIL 788: '--variable with a file and single-byte byte range' HTTP, --variable FAIL 789: '--variable with a file and byte range out of file' HTTP, --variable FAIL 790: '--variable with a byte range using plain assign' HTTP, --variable FAIL 791: '--variable with a byte range using plain assign, out of range' HTTP, --variable FAIL 792: '.netrc with embedded NULL byte' netrc, FTP FAIL 793: '.netrc with embedded NULL byte, with quoted token' netrc, FTP FAIL 799: 'IMAP with --login-options 'AUTH=+LOGIN'' IMAP, Clear Text, SASL AUTH +LOGIN FAIL 800: 'IMAP FETCH message' IMAP, Clear Text, FETCH FAIL 801: 'IMAP FETCH message by MAILINDEX and SECTION' IMAP, Clear Text, FETCH FAIL 802: 'IMAP SELECT UIDVALIDITY Success' IMAP, Clear Text, SELECT, UIDVALIDITY FAIL 803: 'IMAP SELECT UIDVALIDITY Failure' IMAP, Clear Text, SELECT, UIDVALIDITY, FAILURE FAIL 804: 'IMAP doesn't perform SELECT if re-using the same mailbox' IMAP, Clear Text, SELECT FAIL 805: 'IMAP APPEND message' IMAP, Clear Text, APPEND, UPLOAD FAIL 806: 'IMAP LIST mailbox' IMAP, Clear Text, LIST FAIL 807: 'IMAP LSUB mailbox' IMAP, Clear Text, LSUB, CUSTOMREQUEST FAIL 808: 'IMAP EXAMINE mailbox (CUSTOMREQUEST)' IMAP, Clear Text, EXAMINE, CUSTOMREQUEST FAIL 809: 'IMAP mailbox STATUS (CUSTOMREQUEST)' IMAP, Clear Text, STATUS, CUSTOMREQUEST FAIL 810: 'IMAP SEARCH for NEW messages' IMAP, Clear Text, SEARCH FAIL 811: 'IMAP CREATE mailbox (CUSTOMREQUEST)' IMAP, Clear Text, CREATE, CUSTOMREQUEST FAIL 812: 'IMAP DELETE mailbox (CUSTOMREQUEST)' IMAP, Clear Text, DELETE, CUSTOMREQUEST FAIL 813: 'IMAP RENAME mailbox (CUSTOMREQUEST)' IMAP, Clear Text, RENAME, CUSTOMREQUEST FAIL 814: 'IMAP CHECK mailbox (CUSTOMREQUEST)' IMAP, Clear Text, CHECK, CUSTOMREQUEST FAIL 815: 'IMAP STORE - delete message (CUSTOMREQUEST)' IMAP, Clear Text, STORE, CLOSE, CUSTOMREQUEST FAIL 816: 'IMAP STORE - delete message with confirmation (CUSTOMREQUEST)' IMAP, Clear Text, STORE, EXPUNGE, CUSTOMREQUEST FAIL 817: 'IMAP COPY message to mailbox (CUSTOMREQUEST)' IMAP, Clear Text, COPY, CUSTOMREQUEST FAIL 818: 'IMAP NOOP (CUSTOMREQUEST)' IMAP, Clear Text, NOOP, CUSTOMREQUEST FAIL 819: 'IMAP plain authentication' IMAP, SASL, SASL AUTH PLAIN, RFC4616 FAIL 820: 'IMAP login authentication' IMAP, SASL, SASL AUTH LOGIN FAIL 821: 'IMAP CRAM-MD5 authentication' IMAP, SASL, SASL AUTH CRAM-MD5, RFC2195 FAIL 822: 'IMAP NTLM authentication' IMAP, SASL, SASL AUTH NTLM, NTLM FAIL 824: 'IMAP OAuth 2.0 (XOAUTH2) authentication' IMAP, SASL, SASL AUTH OAUTH2, RFC6749 FAIL 825: 'IMAP plain authentication with initial response' IMAP, SASL, SASL AUTH PLAIN, SASL-IR, RFC4616 FAIL 826: 'IMAP login authentication with initial response' IMAP, SASL, SASL AUTH LOGIN, SASL-IR FAIL 827: 'IMAP NTLM authentication with initial response' IMAP, SASL, SASL AUTH NTLM, SASL-IR, NTLM FAIL 828: 'IMAP OAuth 2.0 (XOAUTH2) authentication with initial response' IMAP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC6749 FAIL 829: 'IMAP with URL-encoded CR LF in the URL' IMAP, CRLF-in-URL FAIL 830: 'IMAP CRAM-MD5 graceful cancellation' IMAP, SASL, SASL AUTH CRAM-MD5, SASL CANCELLATION, RFC2195 FAIL 831: 'IMAP NTLM graceful cancellation' IMAP, SASL, SASL AUTH NTLM, SASL CANCELLATION FAIL 833: 'IMAP CRAM-MD5 authentication with SASL downgrade' IMAP, SASL, SASL AUTH CRAM-MD5, SASL AUTH PLAIN, SASL DOWNGRADE, RFC2195 FAIL 834: 'IMAP NTLM authentication with SASL downgrade' IMAP, SASL, SASL AUTH NTLM, SASL AUTH PLAIN, SASL DOWNGRADE FAIL 837: 'IMAP external authentication' IMAP, SASL, SASL AUTH EXTERNAL, RFC4422 FAIL 838: 'IMAP external authentication without credentials' IMAP, SASL, SASL AUTH EXTERNAL, RFC4422 FAIL 839: 'IMAP external authentication with initial response' IMAP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422 FAIL 840: 'IMAP external authentication with initial response without credentials' IMAP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422 FAIL 841: 'IMAP custom request doesn't check continuation data' IMAP, Clear Text, FETCH, CUSTOMREQUEST FAIL 842: 'IMAP OAuth 2.0 (OAUTHBEARER) authentication' IMAP, SASL, SASL AUTH OAUTH2, RFC6749, RFC7628 FAIL 843: 'IMAP OAuth 2.0 (OAUTHBEARER) authentication with initial response' IMAP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC6749, RFC7628 FAIL 844: 'IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation' IMAP, SASL, SASL AUTH OAUTH2, RFC6749, RFC7628 FAIL 845: 'IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response' IMAP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC6749, RFC7628 FAIL 846: 'IMAP PREAUTH response' IMAP FAIL 847: 'IMAP FETCH message' IMAP, Clear Text, FETCH FAIL 848: 'IMAP plain authentication with alternative authorization identity' IMAP, SASL, SASL AUTH PLAIN, RFC4616 FAIL 849: 'IMAP plain auth with alt authorization identity (Not authorized)' IMAP, SASL, SASL AUTH PLAIN, RFC4616 FAIL 850: 'POP3 RETR message' POP3, Clear Text, RETR FAIL 851: 'POP3 LIST one message' POP3, Clear Text, LIST FAIL 852: 'POP3 LIST invalid message' POP3, Clear Text, LIST, FAILURE FAIL 853: 'POP3 LIST messages from *SLOW* server' POP3, Clear Text, LIST, SLOWDOWN FAIL 854: 'POP3 LIST no messages available' POP3, Clear Text, LIST FAIL 855: 'POP3 RETR invalid message' POP3, Clear Text, RETR, FAILURE FAIL 856: 'POP3 invalid login' POP3, Clear Text, FAILURE FAIL 857: 'POP3 RETR message with dot-prefixed line' POP3, Clear Text, RETR FAIL 858: 'POP3 DELE message (CUSTOMREQUEST)' POP3, Clear Text, DELE, CUSTOMREQUEST FAIL 859: 'POP3 STAT (CUSTOMREQUEST)' POP3, Clear Text, STAT, CUSTOMREQUEST FAIL 860: 'POP3 NOOP (CUSTOMREQUEST)' POP3, Clear Text, NOOP, CUSTOMREQUEST FAIL 861: 'POP3 UIDL (CUSTOMREQUEST)' POP3, Clear Text, UIDL, CUSTOMREQUEST, RFC2449 FAIL 862: 'POP3 retrieve message header (CUSTOMREQUEST)' POP3, Clear Text, TOP, CUSTOMREQUEST, RFC2449 FAIL 863: 'POP3 RSET (CUSTOMREQUEST)' POP3, Clear Text, RSET, CUSTOMREQUEST FAIL 864: 'POP3 APOP authentication' POP3, APOP FAIL 865: 'POP3 plain authentication' POP3, SASL, SASL AUTH PLAIN, RFC1734, RFC4616, RFC5034 FAIL 866: 'POP3 login authentication' POP3, SASL, SASL AUTH LOGIN, RFC1734, RFC5034 FAIL 867: 'POP3 CRAM-MD5 authentication' POP3, SASL, SASL AUTH CRAM-MD5, RFC1734, RFC2195, RFC5034 FAIL 868: 'POP3 NTLM authentication' POP3, SASL, SASL AUTH NTLM, RFC1734, RFC5034, NTLM FAIL 870: 'POP3 OAuth 2.0 (XOAUTH2) authentication' POP3, SASL, SASL AUTH OAUTH2, RFC1734, RFC5034, RFC6749 FAIL 871: 'POP3 plain authentication with initial response' POP3, SASL, SASL AUTH PLAIN, SASL-IR, RFC1734, RFC4616, RFC5034 FAIL 872: 'POP3 login authentication with initial response' POP3, SASL, SASL AUTH LOGIN, SASL-IR, RFC1734, RFC5034 FAIL 873: 'POP3 NTLM authentication with initial response' POP3, SASL, SASL AUTH NTLM, SASL-IR, RFC1734, RFC5034, NTLM FAIL 874: 'POP3 OAuth 2.0 (XOAUTH2) authentication with initial response' POP3, SASL, SASL AUTH OAUTH2, SASL-IR, RFC1734, RFC5034, RFC6749 FAIL 875: 'POP3 with URL-encoded CR LF in the URL' POP3, CRLF-in-URL FAIL 876: 'POP3 CRAM-MD5 graceful cancellation' POP3, SASL, SASL AUTH CRAM-MD5, SASL CANCELLATION, RFC1734, RFC2195, RFC5034 FAIL 877: 'POP3 NTLM graceful cancellation' POP3, SASL, SASL AUTH NTLM, SASL CANCELLATION, RFC1734, RFC5034 FAIL 879: 'POP3 CRAM-MD5 authentication with SASL downgrade' POP3, SASL, SASL AUTH CRAM-MD5, SASL AUTH PLAIN, SASL DOWNGRADE, RFC1734, RFC2195, RFC5034 FAIL 880: 'POP3 NTLM authentication with SASL downgrade' POP3, SASL, SASL AUTH NTLM, SASL AUTH PLAIN, SASL DOWNGRADE, RFC1734, RFC5034 FAIL 883: 'POP3 external authentication' POP3, SASL, SASL AUTH EXTERNAL, RFC1734, RFC4422, RFC5034 FAIL 884: 'POP3 external authentication without credentials' POP3, SASL, SASL AUTH EXTERNAL, RFC1734, RFC4422, RFC5034 FAIL 885: 'POP3 external authentication with initial response' POP3, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC1734, RFC4422, RFC5034 FAIL 886: 'POP3 external authentication with initial response without credentials' POP3, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC1734, RFC4422, RFC5034 FAIL 887: 'POP3 OAuth 2.0 (OAUTHBEARER) authentication' POP3, SASL, SASL AUTH OAUTH2, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 888: 'POP3 OAuth 2.0 (OAUTHBEARER) authentication with initial response' POP3, SASL, SASL AUTH OAUTH2, SASL-IR, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 889: 'POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation' POP3, SASL, SASL AUTH OAUTH2, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 890: 'POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response' POP3, SASL, SASL AUTH OAUTH2, SASL-IR, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 891: 'POP3 with short authentication response' POP3 FAIL 892: 'POP3 plain authentication with alternative authorization identity' POP3, SASL, SASL AUTH PLAIN, RFC1734, RFC4616, RFC5034 FAIL 893: 'POP3 plain auth with alt authorization identity (Not authorized)' POP3, SASL, SASL AUTH PLAIN, RFC1734, RFC4616, RFC5034 FAIL 894: 'POP3 with CR in username' POP3, Clear Text, RETR FAIL 895: 'IMAP with --login-options 'AUTH=*'' IMAP, Clear Text, FETCH, --login-options FAIL 896: 'IMAP with --login-options 'AUTH=dummy' (failing)' IMAP, Clear Text, FETCH, --login-options FAIL 897: 'IMAP and envelope meta data after body transfer' IMAP, Clear Text, FETCH FAIL 898: 'HTTP with custom auth and cookies redirected to HTTP on a diff port' HTTP, HTTP proxy, --location, Authorization, cookies FAIL 899: 'URL with credentials redirects to URL with different credentials' HTTP, HTTP GET, HTTP Basic auth FAIL 900: 'SMTP' SMTP FAIL 901: 'SMTP with CRLF-dot-CRLF in data' SMTP FAIL 902: 'RFC821-only SMTP server (EHLO not supported)' SMTP, SMTP HELO, RFC821 FAIL 903: 'SMTP plain authentication' SMTP, SASL, SASL AUTH PLAIN, RFC4616, RFC4954 FAIL 904: 'SMTP login authentication' SMTP, SASL, SASL AUTH LOGIN, RFC4954 FAIL 905: 'SMTP CRAM-MD5 authentication' SMTP, SASL, SASL AUTH CRAM-MD5, RFC2195, RFC4954 FAIL 906: 'SMTP NTLM authentication' SMTP, SASL, SASL AUTH NTLM, RFC4954, NTLM FAIL 908: 'SMTP OAuth 2.0 (XOAUTH2) authentication' SMTP, SASL, SASL AUTH OAUTH2, RFC4954, RFC6749 FAIL 909: 'SMTP without SIZE support' SMTP FAIL 910: 'SMTP without terminating CRLF' SMTP FAIL 911: 'SMTP with no mail data' SMTP FAIL 912: 'SMTP with SIZE support' SMTP, SIZE FAIL 913: 'SMTP with large message SIZE' SMTP, SIZE FAIL 914: 'SMTP invalid --mail-from' SMTP FAIL 915: 'SMTP without --mail-from' SMTP FAIL 916: 'SMTP with invalid --mail-rcpt' SMTP FAIL 917: 'SMTP with multiple --mail-rcpt' SMTP FAIL 918: 'SMTP with multiple and invalid --mail-rcpt' SMTP FAIL 919: 'SMTP plain authentication with initial response' SMTP, SASL, SASL AUTH PLAIN, SASL-IR, RFC4616, RFC4954 FAIL 920: 'SMTP login authentication with initial response' SMTP, SASL, SASL AUTH LOGIN, SASL-IR, RFC4954 FAIL 921: 'SMTP NTLM authentication with initial response' SMTP, SASL, SASL AUTH NTLM, SASL-IR, RFC4954, NTLM FAIL 922: 'SMTP OAuth 2.0 (XOAUTH2) authentication with initial response' SMTP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC4954, RFC6749 FAIL 923: 'SMTP VRFY' SMTP, VRFY FAIL 924: 'SMTP ambiguous VRFY' SMTP, VRFY FAIL 925: 'SMTP external VRFY' SMTP, VRFY FAIL 926: 'SMTP unknown user VRFY' SMTP, VRFY FAIL 927: 'SMTP mailing list EXPN (CUSTOMREQUEST)' SMTP, EXPN, CUSTOMREQUEST FAIL 928: 'SMTP HELP' SMTP, HELP FAIL 929: 'SMTP NOOP (CUSTOMREQUEST)' SMTP, NOOP, CUSTOMREQUEST FAIL 930: 'SMTP RSET (CUSTOMREQUEST)' SMTP, RSET, CUSTOMREQUEST FAIL 931: 'SMTP with URL-encoded CR LF in the URL' SMTP, CRLF-in-URL FAIL 932: 'SMTP CRAM-MD5 graceful cancellation' SMTP, SASL, SASL AUTH CRAM-MD5, SASL CANCELLATION, RFC2195, RFC4954 FAIL 933: 'SMTP NTLM graceful cancellation' SMTP, SASL, SASL AUTH NTLM, SASL CANCELLATION, RFC4954 FAIL 935: 'SMTP CRAM-MD5 authentication with SASL downgrade' SMTP, SASL, SASL AUTH CRAM-MD5, SASL AUTH PLAIN, SASL DOWNGRADE, RFC2195, RFC4954 FAIL 936: 'SMTP NTLM authentication with SASL downgrade' SMTP, SASL, SASL AUTH NTLM, SASL AUTH PLAIN, SASL DOWNGRADE, RFC4954 FAIL 939: 'RFC821-only SMTP with username and password' SMTP, RFC821 FAIL 940: 'SMTP with username and password but no AUTH capability' SMTP FAIL 941: 'SMTP with --crlf' SMTP, --crlf FAIL 942: 'SMTP external authentication' SMTP, SASL, SASL AUTH EXTERNAL, RFC4422, RFC4954 FAIL 943: 'SMTP external authentication without credentials' SMTP, SASL, SASL AUTH EXTERNAL, RFC4422, RFC4954 FAIL 944: 'SMTP external authentication with initial response' SMTP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422, RFC4954 FAIL 945: 'SMTP external authentication with initial response without credentials' SMTP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422, RFC4954 FAIL 946: 'SMTP OAuth 2.0 (OAUTHBEARER) authentication' SMTP, SASL, SASL AUTH OAUTH2, RFC4954, RFC6749, RFC7628 FAIL 947: 'SMTP OAuth 2.0 (OAUTHBEARER) authentication with initial response' SMTP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC4954, RFC6749, RFC7628 FAIL 948: 'SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation' SMTP, SASL, SASL AUTH OAUTH2, RFC4954, RFC6749, RFC7628 FAIL 949: 'SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response' SMTP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC4954, RFC6749, RFC7628 FAIL 950: 'SMTP VRFY with custom request' SMTP, VRFY, --request FAIL 951: 'SMTP data with dot as first character' SMTP FAIL 952: 'SMTP data with single dot-only line' SMTP FAIL 953: 'SMTP plain authentication with alternative authorization identity' SMTP, SASL, SASL AUTH PLAIN, RFC4616, RFC4954 FAIL 954: 'SMTP plain auth with alt authorization identity (Not authorized)' SMTP, SASL, SASL AUTH PLAIN, RFC4616, RFC4954 FAIL 955: 'SMTP without SMTPUTF8 support - UTF-8 based sender (local part only)' SMTP FAIL 956: 'SMTP without SMTPUTF8 support - UTF-8 based recipient (local part only)' SMTP FAIL 957: 'SMTP VRFY without SMTPUTF8 support - UTF-8 recipient (local part only)' SMTP, VRFY FAIL 958: 'SMTP external VRFY without SMTPUTF8 - UTF-8 recipient (local part only)' SMTP, VRFY FAIL 962: 'SMTP without SMTPUTF8 support - UTF-8 based sender (host part only)' SMTP, IDN FAIL 963: 'SMTP without SMTPUTF8 support (IDN) - UTF-8 recipient (host part only)' SMTP, IDN FAIL 964: 'SMTP external VRFY without SMTPUTF8 (IDN) - UTF-8 recipient (host part)' SMTP, VRFY, IDN FAIL 965: 'SMTP with SMTPUTF8 support - UTF-8 based sender' SMTP, IDN FAIL 966: 'SMTP with SMTPUTF8 support - UTF-8 based recipient' SMTP, IDN FAIL 967: 'SMTP external VRFY with SMTPUTF8 support' SMTP, VRFY, IDN FAIL 968: 'SMTP VRFY with SMTPUTF8 support' SMTP, VRFY, IDN FAIL 969: 'SMTP mailing list EXPN (CUSTOMREQUEST) with SMTPUTF8 support' SMTP, EXPN, CUSTOMREQUEST, IDN FAIL 973: 'HTTP with auth redirected to FTP w/o auth' HTTP, FTP, --location FAIL 974: 'HTTP with auth redirected to HTTP on a diff port w/o auth' HTTP, HTTP proxy, --location FAIL 975: 'HTTP with auth redirected to FTP allowing auth to continue' HTTP, FTP, --location-trusted FAIL 976: 'HTTP with auth redirected to HTTP on a diff port --location-trusted' HTTP, HTTP proxy, --location-trusted FAIL 977: 'URL with trailing dot and receiving a cookie for the TLD with dot' HTTP, HTTP proxy, cookies FAIL 978: 'verify that --stderr works for -w's stderr as well' HTTP, --stderr FAIL 979: '-u with redirect to absolute URL using same origin and auth' HTTP, HTTP GET, HTTP Basic auth FAIL 980: 'SMTP STARTTLS pipelined server response' SMTP, STARTTLS FAIL 981: 'IMAP STARTTLS pipelined server response' IMAP, STARTTLS FAIL 982: 'POP3 STARTTLS pipelined server response' POP3, STARTTLS FAIL 983: 'FTP STARTTLS pipelined server response' FTP, STARTTLS FAIL 984: 'IMAP require STARTTLS with failing capabilities' IMAP, STARTTLS FAIL 985: 'POP3 require STARTTLS with failing capabilities' POP3, STARTTLS FAIL 986: 'FTP require STARTTLS while preauthenticated' FTP, STARTTLS FAIL 990: 'use -w %output{}' HTTP, HTTP GET, -w FAIL 991: 'use -w %output{} append' HTTP, HTTP GET, -w FAIL 992: 'SASL verify default mechanisms are reset by login options' SMTP, SASL, UPLOAD FAIL 993: 'POP3 LIST 1000 messages' POP3, Clear Text, LIST FAIL 994: '--skip-existing with globbing' HTTP, HTTP GET FAIL 995: '--skip-existing without file present' HTTP, HTTP GET FAIL 996: '--skip-existing with file present' HTTP, HTTP GET FAIL 997: 'POP3 retrieve STAT (CUSTOMREQUEST)' POP3, Clear Text, STAT, CUSTOMREQUEST, RFC2449 FAIL 998: 'HTTP with auth in URL redirected to another host' HTTP, --location-trusted FAIL 999: 'HTTP with auth in first URL but not second' HTTP, --location-trusted FAIL 1000: 'FTP dir list PASV with -I' FTP, PASV, LIST, NOBODY FAIL 1001: 'HTTP POST --digest with PUT and resumed upload and modified method' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 1002: 'HTTP PUT with Digest auth, resumed upload and modified method, twice' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 1003: 'FTP with excessively large server command response line' FTP, RETR, huge response FAIL 1004: 'HTTP GET with empty proxy' HTTP, HTTP GET, HTTP proxy FAIL 1005: 'FTP with excessively large number of server command response lines' FTP, RETR, huge response FAIL 1006: 'FTP with large number of command response lines (boundary condition)' FTP, RETR, huge response FAIL 1007: 'TFTP send with invalid permission on server' TFTP, TFTP WRQ, FAILURE FAIL 1008: 'HTTP proxy CONNECT auth NTLM with chunked-encoded 407 response' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, chunked Transfer-Encoding, NTLM FAIL 1009: 'TFTP retrieve with --local-port' TFTP, TFTP RRQ, --local-port FAIL 1010: 'FTP dir list nocwd' FTP, PASV, LIST FAIL 1011: 'HTTP POST with 301 redirect' HTTP, HTTP POST, followlocation FAIL 1012: 'HTTP POST with 301 redirect and --post301' HTTP, HTTP POST, followlocation FAIL 1013: 'Compare curl --version with curl-config --protocols' curl-config FAIL 1014: 'Compare curl --version with curl-config --features' curl-config FAIL 1015: '--data-urlencode' HTTP, HTTP POST, --data-urlencode FAIL 1016: 'X-Y range on a file:// URL to stdout' FILE, Range FAIL 1017: '0-Y range on a file:// URL to stdout' FILE, Range FAIL 1018: 'X-X range on a file:// URL to stdout' FILE, Range FAIL 1019: 'X- range on a file:// URL to stdout' FILE, Range FAIL 1020: '-Y range on a file:// URL to stdout' FILE, Range FAIL 1021: 'HTTP proxy CONNECT with any proxyauth and proxy offers NTLM and close' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, --proxy-anyauth, NTLM FAIL 1022: 'Compare curl --version with curl-config --version' curl-config FAIL 1023: 'Compare curl --version with curl-config --vernum' curl-config FAIL 1024: 'HTTP Location: following with cookies' HTTP, HTTP GET, followlocation, cookies FAIL 1025: 'HTTP Location: following with command-line and server cookies' HTTP, HTTP GET, followlocation, cookies FAIL 1027: 'curl --help' --help FAIL 1028: 'HTTP Location: redirect to FTP URL' HTTP, HTTP GET, followlocation, FTP, PASV, FILE FAIL 1029: 'HTTP Location: and 'redirect_url' check' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1030: 'HTTP PUT with --anyauth authorization (picking Digest)' HTTP, HTTP PUT, HTTP Digest auth, --anyauth FAIL 1031: 'HTTP Location: following to a query string' HTTP, HTTP GET, followlocation FAIL 1032: 'HTTP HEAD with --range' HTTP, HTTP HEAD, Range FAIL 1033: 'HTTP GET with 102 response!' HTTP, HTTP GET FAIL 1034: 'HTTP over proxy with malformatted IDN host name' HTTP, HTTP GET, HTTP proxy, IDN, FAILURE, config file FAIL 1035: 'HTTP over proxy with too long IDN host name' HTTP, HTTP GET, HTTP proxy, IDN, FAILURE FAIL 1036: 'FTP download resume from end of file' FTP, PASV, RETR, Resume FAIL 1037: 'FTP download resume from end of empty file' FTP, PASV, RETR, Resume FAIL 1038: 'FTP PASV upload resume from end of file' FTP, EPSV, APPE, Resume FAIL 1039: 'FTP PASV upload resume from end of empty file' FTP, EPSV, APPE, Resume FAIL 1040: 'HTTP GET with resume from end of entirely-downloaded file' HTTP, HTTP GET, Resume FAIL 1041: 'HTTP PUT with resume from end of already-uploaded file' HTTP, HTTP PUT, Resume, Content-Range FAIL 1042: 'HTTP GET beyond end of entirely-downloaded file, no server resume' HTTP, HTTP GET, Resume, FAILURE FAIL 1043: 'HTTP GET with resume from end of file' HTTP, HTTP GET, Resume FAIL 1044: 'FTP download large file info with -I' FTP, NOBODY, Largefile FAIL 1045: 'HTTP GET with numeric localhost --interface' HTTP, HTTP GET, --interface FAIL 1046: 'HTTP-IPv6 GET with numeric localhost --interface' HTTP, HTTP GET, --interface, IPv6 FAIL 1047: 'FTP dir list PASV with localhost --interface' FTP, PASV, LIST, --interface FAIL 1048: 'FTP-IPv6 dir list PASV with localhost --interface' FTP, FTP-ipv6, IPv6, PASV, LIST, --interface FAIL 1049: 'TFTP retrieve with localhost --interface' TFTP, TFTP RRQ, --interface FAIL 1050: 'FTP-IPv6 dir list, EPRT with specified IP' FTP, FTP-ipv6, IPv6, EPRT FAIL 1051: 'HTTP PUT with Location: following' HTTP, HTTP PUT, followlocation FAIL 1052: 'HTTP 1.0 PUT with Location: following' HTTP, HTTP PUT, followlocation FAIL 1053: 'HTTP RFC1867-type formposting from file with Location: following' HTTP, HTTP FORMPOST, HTTP file upload, followlocation FAIL 1054: 'HTTP POST from file with 301 redirect and --post301' HTTP, HTTP POST, followlocation FAIL 1055: 'HTTP PUT Location: redirect to FTP URL' HTTP, HTTP PUT, followlocation, FTP, EPSV, STOR FAIL 1056: 'HTTP follow redirect from IPv4 to IPv6 with scope' HTTP, HTTP GET, followlocation, IPv6 FAIL 1057: 'FTP retrieve a byte-range relative to end of file' FTP, EPSV, RETR, Range FAIL 1058: 'HTTP range relative to end of file' HTTP, HTTP GET, Content-Range FAIL 1059: 'HTTP CONNECT with proxytunnel to unsupported FTP URL' HTTP, HTTP CONNECT, proxytunnel, FTP, FAILURE FAIL 1060: 'HTTP proxy CONNECT auth Digest, large headers and data' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, HTTP proxy Digest auth FAIL 1061: 'HTTP proxy CONNECT auth Digest, large headers and chunked data' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, chunked Transfer-Encoding, proxytunnel, HTTP proxy Digest auth FAIL 1062: 'FTP with excessively long server command response lines, boundary condition' FTP, RETR, huge response FAIL 1063: 'Invalid large X- range on a file://' FILE, Range, FAILURE FAIL 1064: 'HTTP PUT twice' HTTP, HTTP PUT FAIL 1065: 'HTTP PUT with one file but two URLs' HTTP, HTTP PUT, HTTP GET FAIL 1066: 'HTTP --dump-header - with two URLs' HTTP, HTTP GET FAIL 1067: 'HTTP Location: following with auto-referer' HTTP, HTTP GET, followlocation FAIL 1068: 'HTTP PUT from stdin' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 1069: 'HTTP 1.0 PUT from stdin with no content length' HTTP, HTTP PUT, HTTP/1.0 FAIL 1070: 'HTTP POST with server closing connection before (all) data is received' HTTP, HTTP POST FAIL 1071: 'Downgraded HTTP PUT to HTTP 1.0 with authorization' HTTP, HTTP PUT, HTTP Digest auth, --anyauth, HTTP/1.0 FAIL 1072: 'HTTP chunked PUT to HTTP 1.0 server with authorization' HTTP, HTTP PUT, HTTP Digest auth, --anyauth, HTTP/1.0, chunked Transfer-Encoding FAIL 1073: 'HTTP chunked PUT to HTTP 1.0 server with redirect' HTTP, HTTP PUT, HTTP/1.0, followlocation, chunked Transfer-Encoding FAIL 1074: 'HTTP downgrade to HTTP/1.0 on second request' HTTP, HTTP GET, HTTP/1.0, DELAY FAIL 1075: 'HTTP PUT with --anyauth authorization (picking Basic)' HTTP, HTTP PUT, HTTP Basic auth, --anyauth FAIL 1076: 'HTTP POST with 302 redirect and --post302' HTTP, HTTP POST, followlocation FAIL 1077: 'FTP over HTTP proxy with downgrade to HTTP 1.0' FTP, HTTP, HTTP/1.0, HTTP GET, HTTP proxy FAIL 1078: 'HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0' HTTP, HTTP/1.0, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1079: 'HTTP retry after closed connection and empty response' HTTP, HTTP GET, HTTP Digest auth FAIL 1080: 'HTTP Location: on two URLs 'redirect_url' check' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1081: 'HTTP no Location: on second URL 'redirect_url' check' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1082: 'HTTP GET with localhost --interface' HTTP, HTTP GET, --interface FAIL 1084: 'HTTP GET with invalid --interface' HTTP, HTTP GET, --interface, FAILURE, non-existing host FAIL 1085: 'HTTP-IPv6 GET with invalid --interface' HTTP, HTTP GET, --interface, IPv6, FAILURE, non-existing host FAIL 1087: 'HTTP, proxy with --anyauth and Location: to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation, --anyauth FAIL 1088: 'HTTP, proxy with --anyauth and Location: to new host using location-trusted' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation, --anyauth, --location-trusted FAIL 1089: 'HTTP GET --write-out with redirected fetch' HTTP, HTTP GET, followlocation, --write-out FAIL 1090: 'HTTP GET --write-out with redirected fetch and chunked reply' HTTP, HTTP GET, followlocation, chunked Transfer-Encoding, --write-out FAIL 1091: 'FTP URL with type=i' FTP, RETR, type= FAIL 1092: 'FTP with type=i over HTTP proxy' FTP, HTTP, HTTP GET, HTTP proxy, type= FAIL 1093: 'TFTP retrieve with mode=i' TFTP, TFTP RRQ, mode= FAIL 1094: 'TFTP retrieve with mode=netascii' TFTP, TFTP RRQ, mode= FAIL 1095: 'HTTP with Digest and realm with quoted quotes' HTTP, HTTP GET, HTTP Digest auth FAIL 1096: 'Two FTP downloads, with failed RETR but reused control connection' FTP, PASV, RETR, FAILURE FAIL 1098: 'FTP RETR twice over proxy confirming persistent connection' FTP, HTTP proxy, CURLOPT_PROXY FAIL 1099: 'TFTP get first a non-existing file then an existing' TFTP, TFTP RRQ, FAILURE FAIL 1101: 'NO_PROXY test, with user name in URL' HTTP, HTTP GET, HTTP Basic auth, HTTP proxy, http_proxy, NO_PROXY FAIL 1102: 'FTP OS/400 server name format check' FTP, SYST, SITE, OS400 FAIL 1103: 'FTP non-OS/400 server' FTP, SYST, SITE, OS400 FAIL 1104: 'HTTP cookie expiry date at Jan 1 00:00:00 GMT 1970' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1105: 'HTTP with cookie parser and header recording' HTTP, HTTP POST, cookies, cookiejar FAIL 1106: 'FTP URL and with ftp_proxy environment variable set' FTP, CURLOPT_PORT, HTTP proxy FAIL 1107: 'FTP RETR PASV with PRET' FTP, PASV, RETR, PRET FAIL 1108: 'FTP RETR PASV with PRET not supported' FTP, PASV, RETR, PRET FAIL 1109: 'HTTP GET with URL that contains fragment after the path' HTTP, CURLOPT_URL FAIL 1110: 'HTTP GET with URL that contains a fragment after the query part' HTTP, CURLOPT_URL FAIL 1111: 'HTTP GET with URL whose fragment contains a # (which is illegal)' HTTP, CURLOPT_URL FAIL 1114: 'FTP wildcard download - skip/correctness/FNMATCH_FUNCTION (DOS)' FTP, wildcardmatch, ftplistparser FAIL 1115: 'HTTP GET with unexpected 1xx response' HTTP, HTTP 1xx response code FAIL 1116: 'HTTP GET with chunked trailer without Trailer:' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1117: 'HTTP with invalid range then another URL' HTTP, HTTP GET, Range, DELAY FAIL 1118: 'URL without slash and @-letter in query' HTTP, HTTP GET FAIL 1120: 'FTP with 421 timeout response' FTP, PORT, RETR, 421, timeout, FAILURE FAIL 1121: 'HTTP multiple provided Host: headers' HTTP FAIL 1122: 'HTTP GET gzip transfer-encoded content' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1123: 'HTTP GET deflate transfer-encoded content' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1124: 'HTTP GET gzip+chunked transfer-encoded content' HTTP, HTTP GET, compressed, Transfer-Encoding, chunked Transfer-Encoding FAIL 1125: 'HTTP GET transfer-encoding with custom Connection:' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1126: 'HTTP 200 If-Modified-Since with newer document' HTTP, HTTP GET, If-Modified-Since FAIL 1127: 'HTTP 200 If-Modified-Since with older document' HTTP, HTTP GET, If-Modified-Since FAIL 1128: 'HTTP 200 If-Modified-Since with old+new documents' HTTP, HTTP GET, If-Modified-Since FAIL 1129: 'HTTP POST expect 100-continue with a 404' HTTP, HTTP POST, Expect: 100-continue FAIL 1130: 'HTTP POST forced expect 100-continue with a 404' HTTP, HTTP POST, Expect: 100-continue FAIL 1131: 'HTTP PUT expect 100-continue with a 400' HTTP, HTTP PUT, Expect: 100-continue FAIL 1133: 'HTTP RFC1867-type formposting with filename/data contains ',', ';', '"'' HTTP, HTTP FORMPOST FAIL 1134: 'HTTP connection reuse with different credentials' HTTP, HTTP HEAD, -G FAIL 1136: 'Check cookies against PSL' HTTP, HTTP GET, HTTP proxy, cookies, cookiejar, PSL FAIL 1137: 'FTP RETR --ignore-content-length' FTP, PASV, RETR, --ignore-content-length FAIL 1138: 'HTTP redirect with UTF-8 characters' HTTP, HTTP GET, followlocation FAIL 1141: 'HTTP redirect to http:/// (three slashes!)' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 1142: 'HTTP redirect to http://// (four slashes!)' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 1143: 'HTTP URL with http:/ (one slash!)' HTTP, HTTP GET, followlocation FAIL 1144: 'HTTP HEAD, receive no headers only body' HTTP, HTTP HEAD, HTTP/0.9 FAIL 1145: 'file:// bad host' FILE FAIL 1146: '--proto-default file' FILE, --proto-default FAIL 1147: 'Get -H headers from a file' HTTP, HTTP GET, -H FAIL 1148: 'progress-bar' HTTP, progressbar FAIL 1149: 'FTP dir list multicwd then again nocwd' FTP, PASV, LIST FAIL 1150: 'HTTP proxy with URLs using different ports' HTTP, HTTP GET, HTTP proxy FAIL 1151: 'HTTP with too long cookies' HTTP, HTTP GET, cookies FAIL 1152: 'FTP with uneven quote in PWD response' FTP, PASV, LIST FAIL 1153: 'FTP with quoted double quotes' FTP, PASV, LIST FAIL 1154: 'HTTP GET with 100K (too long) response header' HTTP, HTTP GET FAIL 1155: 'HTTP cookie with parameter word as name' HTTP, HTTP GET, cookies FAIL 1156: 'HTTP resume/range fail range-error content-range combinations' HTTP, HTTP GET, Content-Range, Resume, Range FAIL 1157: 'Get -H headers from empty file' HTTP, HTTP GET, -H FAIL 1158: 'HTTP RFC1867-type formposting with filename containing '"'' HTTP, HTTP FORMPOST FAIL 1159: 'HTTP Location: and 'redirect_url' with non-supported scheme' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1160: 'HTTP with long funny format cookie' HTTP, HTTP GET, cookies FAIL 1161: 'HTTP cookie with path set twice' HTTP, HTTP GET, cookies FAIL 1164: 'HTTP/0.9 GET and all zeroes' HTTP, HTTP GET FAIL 1166: 'HTTP response with cookies but not receiving!' HTTP, HTTP GET, followlocation, cookies FAIL 1168: 'HTTP redirect with credentials using # in user and password' HTTP, HTTP GET, followlocation FAIL 1170: 'HTTP GET transfer-encoding with removed Connection:' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1171: 'HTTP GET transfer-encoding with blanked Connection:' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1172: 'HTTP/0.9 GET response denied' HTTP, HTTP/0.9 FAIL 1174: 'HTTP/0.9 GET response denied by default' HTTP, HTTP/0.9 FAIL 1176: '--output using #0' globbing FAIL 1178: 'HTTP proxy auth with credentials longer than 256 bytes' HTTP, HTTP GET, HTTP proxy FAIL 1180: 'HTTP GET request with proxy and -H "Proxy-Connection: keep-alive"' HTTP, HTTP proxy FAIL 1181: 'HTTP GET request with proxy and "Proxy-Connection: Keep-Alive"' HTTP, HTTP proxy FAIL 1183: '%TESTNUMBER used instead of actual test number' HTTP, HTTP GET FAIL 1186: 'Multipart formposting with backslash-escaping filename containing '"'' HTTP, HTTP FORMPOST FAIL 1187: 'SMTP multipart with file name escaping' SMTP, MULTIPART FAIL 1188: '--write-out with %{onerror} and %{urlnum} to stderr' HTTP, HTTP GET, --write-out FAIL 1189: 'Multipart formposting with backslash-escaping of name= and filename=' HTTP, HTTP FORMPOST FAIL 1190: 'MQTT SUBSCRIBE' MQTT, MQTT SUBSCRIBE FAIL 1191: 'MQTT PUBLISH' MQTT, MQTT PUBLISH FAIL 1192: 'MQTT SUBSCRIBE 2k topic' MQTT, MQTT SUBSCRIBE FAIL 1193: 'MQTT PUBLISH 2k payload' MQTT, MQTT PUBLISH FAIL 1194: 'MQTT SUBSCRIBE with PUBLISH before SUBACK' MQTT, MQTT SUBSCRIBE FAIL 1195: 'MQTT SUBSCRIBE with short PUBLISH' MQTT, MQTT SUBSCRIBE FAIL 1196: 'MQTT with error in CONNACK' MQTT, MQTT SUBSCRIBE FAIL 1197: 'HTTP POST redirected to GET and --write-out method' HTTP, HTTP GET, followlocation, --write-out FAIL 1198: 'MQTT PUBLISH empty payload, single space topic' MQTT, MQTT SUBSCRIBE FAIL 1199: 'MQTT PUBLISH empty payload, no topic' MQTT, MQTT SUBSCRIBE FAIL 1200: 'Gopher index' GOPHER, INDEX FAIL 1201: 'Gopher selector' GOPHER, SELECTOR FAIL 1202: 'Gopher query' GOPHER, QUERY FAIL 1203: 'Gopher IPv6 index' GOPHER-ipv6, IPv6, INDEX FAIL 1204: 'HTTP with WWW-Authenticate and multiple auths in a single line' HTTP, HTTP GET, HTTP Basic auth, --anyauth FAIL 1205: 'HTTP GET with 18K HTTP header' HTTP, HTTP GET FAIL 1206: 'FTP PORT and 425 on download' FTP, PORT, RETR, NODATACONN425 FAIL 1207: 'FTP PORT and 421 on download' FTP, PORT, RETR, NODATACONN421 FAIL 1210: 'HTTP GET with -J without Content-Disposition' HTTP, HTTP GET, -J FAIL 1212: 'noproxy setting together with socks proxy' HTTP, SOCKS5, NO_PROXY, noproxy FAIL 1213: 'HTTP with proxy and host-only URL' HTTP, HTTP GET, HTTP proxy FAIL 1214: 'HTTP with proxy and URL with ? and no slash separator' HTTP, HTTP GET, HTTP proxy FAIL 1215: 'HTTP with server NTLM authorization using a proxy' HTTP, HTTP GET, HTTP NTLM auth, HTTP proxy, NTLM FAIL 1216: 'HTTP cookie domains tailmatching the host name' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1217: 'FTP with rubbish before name in 257-response' FTP, PORT, NLST, --data-binary FAIL 1218: 'HTTP cookies and domains with same prefix' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1219: 'FTP with no user+password required (230 response)' FTP, PASV, RETR FAIL 1220: 'file:// URLs with query string' FILE, URL FAIL 1221: '--url-query with --data-urlencode' HTTP, HTTP POST, --data-urlencode, --url-query FAIL 1223: 'HTTP GET -w remote_ip and -w remote_port' HTTP, HTTP GET FAIL 1224: 'FTP fetch a file from the root directory' FTP, PASV, RETR FAIL 1225: 'FTP fetch two files using absolute paths' FTP, PASV, RETR FAIL 1226: 'FTP fetch a file from the root directory with singlecwd' FTP, PASV, RETR FAIL 1227: 'FTP fetch a file from the root directory with nocwd' FTP, PASV, RETR FAIL 1228: 'HTTP cookie path match' HTTP, HTTP GET, HTTP proxy, cookies, cookie path FAIL 1229: 'HTTP with Digest authorization with user name needing escape' HTTP, HTTP GET, HTTP Digest auth FAIL 1230: 'HTTP CONNECT to IPv6 numerical address' HTTP, HTTP CONNECT, HTTP proxy, IPv6 FAIL 1231: 'HTTP URL with dotdot removal from path' HTTP, HTTP GET, dotdot removal FAIL 1232: 'HTTP URL with dotdot removal from path using an HTTP proxy' HTTP, HTTP GET, HTTP proxy, dotdot removal FAIL 1233: 'FTP failing to connect to EPSV port, switching to PASV' FTP, connect to non-listen FAIL 1234: 'abusing {}-globbing' globbing, {} list, FAILURE FAIL 1235: 'multiple requests using {}{} in the URL' HTTP, HTTP GET, globbing, {} list FAIL 1236: '[] globbing overflowing the range counter' globbing, FAILURE FAIL 1237: 'URL with 1000+ letter user name + password' HTTP, HTTP Basic auth FAIL 1238: 'slow TFTP retrieve cancel due to -Y and -y' TFTP, TFTP RRQ, timeout, FAILURE, DELAY FAIL 1239: 'HTTP with -z + -w response_code and simulated 304' HTTP, HTTP GET, -z FAIL 1240: 'glob [0-1] with stuff after range (7.33.0 regression)' globbing, HTTP FAIL 1241: 'HTTP _without_ dotdot removal' HTTP, HTTP GET, HTTP proxy FAIL 1242: 'TFTP retrieve without TFTP options requests' TFTP, TFTP RRQ FAIL 1243: 'TFTP send without TFTP options requests' TFTP, TFTP WRQ FAIL 1245: '--proto deny must override --proto-redir allow' FTP, HTTP, HTTP GET, --proto, --proto-redir, followlocation FAIL 1246: 'URL with '#' at end of host name instead of '/'' HTTP, HTTP GET, HTTP proxy FAIL 1247: '--fail-early' HTTP, --fail-early FAIL 1248: 'Non-proxied host plus --proxy option and --noproxy option' HTTP, HTTP proxy, noproxy FAIL 1249: 'Non-proxied plus --proxy option and NO_PROXY env var' HTTP, HTTP proxy, NO_PROXY FAIL 1250: 'Non-proxied host plus http_proxy env var and --noproxy option' HTTP, HTTP proxy, http_proxy, noproxy FAIL 1251: 'Non-proxied host plus http_proxy env var and NO_PROXY env var' HTTP, HTTP proxy, http_proxy, NO_PROXY FAIL 1252: '--proxy, override NO_PROXY by --noproxy and access target URL directly' HTTP, HTTP proxy, NO_PROXY, noproxy FAIL 1253: '--proxy, override NO_PROXY by --noproxy and access target URL through proxy' HTTP, HTTP proxy, NO_PROXY, noproxy FAIL 1254: 'override NO_PROXY by --noproxy and access target URL through proxy' HTTP, HTTP proxy, NO_PROXY, noproxy FAIL 1255: 'http_proxy, override NO_PROXY by --noproxy and access target URL directly' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy FAIL 1256: 'http_proxy, override NO_PROXY by --noproxy and target URL through proxy' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy FAIL 1257: 'http_proxy, override NO_PROXY by --noproxy and target URL through proxy' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy FAIL 1258: 'HTTP, use cookies with localhost' HTTP, HTTP GET, HTTP replaced headers, cookies, httponly FAIL 1259: 'HTTP URL with semicolon in password' HTTP, HTTP GET FAIL 1260: 'HTTP URL with rubbish after port number' HTTP, HTTP GET FAIL 1261: ''redirect_url' with --location and --max-redirs' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1262: 'FTP request and denied to download an older file with -z' FTP, RETR, -z FAIL 1263: 'HTTP URL with rubbish after IPv6 bracket' HTTP, HTTP GET FAIL 1264: 'HTTP URL with space in host name' HTTP, HTTP GET FAIL 1265: 'NO_PROXY with IPv6 numerical address' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy, IPv6 FAIL 1266: 'HTTP GET with a single-byte HTTP/0.9 response' HTTP/0.9 FAIL 1267: 'HTTP GET with an invalid HTTP/1 response line start' HTTP/0.9 FAIL 1268: 'filename argument looks like a flag' warning FAIL 1269: 'too large --retry-delay value' --retry-delay FAIL 1270: 'Basic 'redirect_url'' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1271: '--write-out from file with empty file' HTTP, HTTP GET, --write-out FAIL 1273: '-f and resume transfer of an entirely-downloaded file' HTTP, HTTP GET, Resume FAIL 1274: 'HTTP header line folding' HTTP, HTTP GET, header line folding FAIL 1277: 'HTTP GET with both content and transfer encoding' HTTP, HTTP GET, compressed, Transfer-Encoding, Content-Encoding FAIL 1278: 'verify extra --no-remote-name' --no-remote-name FAIL 1280: 'simple [a-d] globbing' globbing FAIL 1281: 'reject non-numerical port number in URL' URL FAIL 1282: 'FTP with 633 response before gss initialized' FTP, PASV, RETR FAIL 1283: 'globbing range with same start and stop' HTTP, HTTP GET, globbing, [] range FAIL 1284: 'HTTP POST --digest with user-specified Content-Length header' HTTP, HTTP POST, HTTP Digest auth FAIL 1285: 'HTTP PUT --digest with user-specified Content-Length header' HTTP, HTTP PUT, HTTP Digest auth FAIL 1286: 'HTTP GET --digest increasing nonce-count' HTTP, HTTP GET, HTTP Digest auth, followlocation FAIL 1287: 'HTTP over proxy-tunnel ignore TE and CL in CONNECT 2xx responses' HTTP, HTTP GET, HTTP CONNECT, proxytunnel, verbose logs FAIL 1288: 'Suppress proxy CONNECT response headers' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1289: 'globbing with overflow and bad syntax' HTTP, HTTP GET, globbing FAIL 1290: 'Verify URL globbing ignores []' HTTP, HTTP GET, globbing FAIL 1291: 'Attempt to upload 1000 files but fail immediately' HTTP, HTTP PUT FAIL 1292: 'Replaced internal headers with a blank one' HTTP, HTTP GET, HTTP added headers, HTTP replaced headers FAIL 1293: 'Multipart formpost to two URLs, the first failing' HTTP, HTTP GET, -F FAIL 1296: 'HTTP URL with %0a in name part' HTTP, HTTP Basic FAIL 1297: 'CONNECT to peer that returns nothing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1298: 'HTTP GET special path with --request-target' HTTP, HTTP GET, --request-target FAIL 1299: 'Send "OPTIONS *" with --request-target' HTTP, --request-target FAIL 1300: 'llist unit tests' unittest, llist FAIL 1301: 'curl_strequal tests' curl_strequal FAIL 1302: 'base64 encode/decode unit tests' unittest, base64 FAIL 1303: 'Curl_timeleft unit tests' unittest, Curl_timeleft FAIL 1304: 'netrc parsing unit tests' unittest, netrc FAIL 1305: 'internal hash create/destroy testing' unittest, hash FAIL 1306: 'internal hash create/add/destroy testing' unittest, hash FAIL 1308: 'formpost tests' curl_formadd, curl_formget, FORM FAIL 1309: 'splay unit tests' unittest, splay FAIL 1310: 'HTTP GET with -J + --show-headers' HTTP, HTTP GET, -J, --show-headers FAIL 1311: 'HTTP GET with -J and Content-Disposition' HTTP, HTTP GET, -J FAIL 1312: 'HTTP GET with -J, Content-Disposition and ; in filename' HTTP, HTTP GET, -J FAIL 1313: 'HTTP GET with -J, Content-Disposition, uneven quotes' HTTP, HTTP GET, -J FAIL 1314: 'HTTP Location: following a // prefixed url' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 1315: 'HTTP RFC1867-type formposting - -F with three files, one with explicit type' HTTP, HTTP FORMPOST, HTTP file upload FAIL 1317: 'HTTP with --resolve' HTTP, HTTP GET, --resolve FAIL 1318: 'HTTP with --resolve and same host name using different cases' HTTP, HTTP GET, --resolve FAIL 1319: 'POP3 fetch tunneled through HTTP proxy' POP3, RETR, HTTP, HTTP CONNECT, HTTP proxy FAIL 1320: 'SMTP send tunneled through HTTP proxy' SMTP, HTTP, HTTP CONNECT, HTTP proxy FAIL 1321: 'IMAP FETCH tunneled through HTTP proxy' IMAP, FETCH, HTTP, HTTP CONNECT, HTTP proxy FAIL 1322: 'HTTP with --resolve and hostname with trailing dot' HTTP, HTTP GET, --resolve, trailing-dot FAIL 1323: 'curlx_tvdiff' unittest, curlx_tvdiff FAIL 1324: 'HTTP with --resolve and [ipv6address]' HTTP, HTTP GET, IPv6, --resolve FAIL 1325: 'HTTP 308-redirect with POST' HTTP, HTTP GET, 308, followlocation FAIL 1326: 'TELNET to HTTP server' TELNET, UPLOAD FAIL 1327: 'TELNET check of upload with stdout redirected' TELNET, UPLOAD FAIL 1328: 'HTTP GET a globbed range with -f' HTTP, HTTP GET, globbing, --fail FAIL 1329: '/-prefixed proxy name' HTTP proxy FAIL 1331: 'HTTP --proxy-anyauth and 407 with cookies' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1332: 'HTTP POST with 303 redirect and --post303' HTTP, HTTP POST, followlocation FAIL 1333: 'HTTP POST zero length, chunked-encoded' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1334: 'HTTP GET with -O without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1335: 'HTTP GET with -O without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1336: 'HTTP GET with -O and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1337: 'HTTP GET with -O and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1338: 'HTTP GET with -O -J without Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1339: 'HTTP GET with -O -J without Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1340: 'HTTP GET with -O -J and Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1341: 'HTTP GET with -O -J and Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1342: 'HTTP GET with -O -i without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1343: 'HTTP GET with -O -i without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1344: 'HTTP GET with -O -i and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1345: 'HTTP GET with -O -i and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1346: 'HTTP GET with -O -i without Content-Disposition, without -D' HTTP, HTTP GET FAIL 1347: 'HTTP GET with -O -i and Content-Disposition, without -D' HTTP, HTTP GET FAIL 1348: 'FTP download, file without Content-Disposition inside, using -O' FTP, RETR FAIL 1349: 'FTP download, file without C-D inside, using -O -D file' FTP, RETR FAIL 1350: 'FTP download, file without C-D inside, using -O -D stdout' FTP, RETR FAIL 1351: 'FTP download, file without C-D inside, using -O -J -D file' FTP, RETR, -J FAIL 1352: 'FTP download, file without C-D inside, using -O -J -D stdout' FTP, RETR, -J FAIL 1353: 'FTP download, file without C-D inside, using -O -i -D file' FTP, RETR FAIL 1354: 'FTP download, file without C-D inside, using -O -i -D stdout' FTP, RETR FAIL 1355: 'FTP download, file without C-D inside, using -O -i, without -D' FTP, RETR FAIL 1356: 'FTP download, file with Content-Disposition inside, using -O' FTP, RETR FAIL 1357: 'FTP download, file with C-D inside, using -O -D file' FTP, RETR FAIL 1358: 'FTP download, file with C-D inside, using -O -D stdout' FTP, RETR FAIL 1359: 'FTP download, file with C-D inside, using -O -J -D file' FTP, RETR, -J FAIL 1360: 'FTP download, file with C-D inside, using -O -J -D stdout' FTP, RETR, -J FAIL 1361: 'FTP download, file with C-D inside, using -O -i -D file' FTP, RETR FAIL 1362: 'FTP download, file with C-D inside, using -O -i -D stdout' FTP, RETR FAIL 1363: 'FTP download, file with C-D inside, using -O -i, without -D' FTP, RETR FAIL 1364: 'HTTP GET -o fname without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1365: 'HTTP GET -o fname without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1366: 'HTTP GET -o fname and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1367: 'HTTP GET -o fname and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1368: 'HTTP GET -o fname -J without Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1369: 'HTTP GET -o fname -J without Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1370: 'HTTP GET -o fname -J and Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1371: 'HTTP GET -o fname -J and Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1372: 'HTTP GET -o fname -i without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1373: 'HTTP GET -o fname -i without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1374: 'HTTP GET -o fname -i and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1375: 'HTTP GET -o fname -i and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1376: 'HTTP GET -o fname -i without Content-Disposition, without -D' HTTP, HTTP GET FAIL 1377: 'HTTP GET -o fname -i and Content-Disposition, without -D' HTTP, HTTP GET FAIL 1378: 'FTP DL, file without Content-Disposition inside, using -o fname' FTP, RETR FAIL 1379: 'FTP DL, file without C-D inside, using -o fname -D file' FTP, RETR FAIL 1380: 'FTP DL, file without C-D inside, using -o fname -D stdout' FTP, RETR FAIL 1381: 'FTP DL, file without C-D inside, using -o fname -J -D file' FTP, RETR, -J FAIL 1382: 'FTP DL, file without C-D inside, using -o fname -J -D stdout' FTP, RETR, -J FAIL 1383: 'FTP DL, file without C-D inside, using -o fname -i -D file' FTP, RETR FAIL 1384: 'FTP DL, file without C-D inside, using -o fname -i -D stdout' FTP, RETR FAIL 1385: 'FTP DL, file without C-D inside, using -o fname -i, without -D' FTP, RETR FAIL 1386: 'FTP DL, file with Content-Disposition inside, using -o fname' FTP, RETR FAIL 1387: 'FTP DL, file with C-D inside, using -o fname -D file' FTP, RETR FAIL 1388: 'FTP DL, file with C-D inside, using -o fname -D stdout' FTP, RETR FAIL 1389: 'FTP DL, file with C-D inside, using -o fname -J -D file' FTP, RETR, -J FAIL 1390: 'FTP DL, file with C-D inside, using -o fname -J -D stdout' FTP, RETR, -J FAIL 1391: 'FTP DL, file with C-D inside, using -o fname -i -D file' FTP, RETR FAIL 1392: 'FTP DL, file with C-D inside, using -o fname -i -D stdout' FTP, RETR FAIL 1393: 'FTP DL, file with C-D inside, using -o fname -i, without -D' FTP, RETR FAIL 1394: 'unit test for parse_cert_parameter()' unittest FAIL 1395: 'Curl_dedotdotify' unittest FAIL 1396: 'curl_easy_escape and curl_easy_unescape' unittest, curl_easy_escape, curl_easy_unescape FAIL 1397: 'Curl_cert_hostcheck unit tests' unittest, Curl_cert_hostcheck FAIL 1398: 'curl_msnprintf unit tests' unittest, curl_msnprintf FAIL 1399: 'Curl_pgrsTime unit tests' unittest, Curl_pgrsTime FAIL 1400: '--libcurl for simple HTTP GET' HTTP, HTTP GET, --libcurl FAIL 1401: '--libcurl for GET with various options' HTTP, HTTP GET, HTTP Basic auth, HTTP set cookie, cookies, --libcurl FAIL 1402: '--libcurl for simple POST' HTTP, HTTP POST, --libcurl FAIL 1403: '--libcurl for GET with query' HTTP, HTTP GET, --libcurl FAIL 1404: '--libcurl plus -F with 3 files, one with explicit type & encoder' HTTP, HTTP FORMPOST, HTTP file upload, --libcurl FAIL 1405: '--libcurl for FTP with quote ops' FTP, post-quote, pre-quote, --libcurl FAIL 1406: '--libcurl for SMTP' SMTP, --libcurl FAIL 1407: '--libcurl for POP3 LIST one message' POP3, Clear Text , LIST, --libcurl FAIL 1408: 'HTTP receive cookies over IPV6' HTTP, HTTP GET, IPv6, cookies, cookiejar FAIL 1409: 'Pass in string to -C' cmdline, FAILURE FAIL 1410: 'Pass in negative number to --max-time' cmdline, FAILURE FAIL 1411: 'HTTP with zero size file PUT' HTTP, HTTP PUT FAIL 1412: 'HTTP GET with --anyauth with two URLs (picking Digest)' HTTP, HTTP GET, HTTP Digest auth, --anyauth FAIL 1413: 'HTTP redirect with fragment in new URL' HTTP, HTTP GET, followlocation FAIL 1414: 'FTP PORT without SIZE or EPRT support' FTP, PORT, RETR, no SIZE FAIL 1415: 'Delete expired cookies' HTTP, HTTP GET, HTTP proxy, cookies, cookiejar, delete expired cookie FAIL 1416: 'HTTP GET with chunked Transfer-Encoding overflowed chunked size' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1417: 'HTTP GET with chunked encoding and chunked trailer without CRs' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1418: 'HTTP with --anyauth and connection reuse' HTTP, HTTP GET, HTTP NTLM auth, connection reuse FAIL 1419: 'HTTP with --anyauth (but no auth!) and connection reuse' HTTP, HTTP GET, HTTP NTLM auth, connection reuse FAIL 1420: '--libcurl for IMAP FETCH message' IMAP, Clear Text , FETCH, --libcurl FAIL 1421: 'Re-using HTTP proxy connection for two different host names' HTTP, HTTP GET, HTTP proxy FAIL 1422: 'HTTP GET with -O -J and Content-Disposition (empty file)' HTTP, HTTP GET, -J FAIL 1423: 'HTTP GET -o fname without Content-Disposition (empty file)' HTTP, HTTP GET FAIL 1424: 'HTTP GET -o fname without Content-Disposition (unmet time condition)' HTTP, HTTP GET, If-Modified-Since, -z FAIL 1427: 'too large -m timeout value' integer overflow FAIL 1428: 'HTTP over proxy-tunnel with --proxy-header and --header' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, proxytunnel FAIL 1429: 'HTTP GET with 999 response code' HTTP, HTTP GET, HTTP/0.9 FAIL 1430: 'HTTP GET with negative response code' HTTP, HTTP GET FAIL 1431: 'HTTP GET with single-digit response code' HTTP, HTTP GET FAIL 1432: 'HTTP GET with 100-digit response code and survive' HTTP, HTTP GET FAIL 1433: 'HTTP GET with 100-digit subversion number in response' HTTP, HTTP GET FAIL 1434: 'HTTP GET resume at exactly the existing file size is fine' HTTP, HTTP GET, Resume FAIL 1435: 'simple HTTP GET over Unix socket' HTTP, HTTP GET, UnixSockets FAIL 1436: 'HTTP requests with multiple connections over Unix socket' HTTP, HTTP GET, UnixSockets FAIL 1437: 'HTTP with duplicated WWW-Authenticate parameters' HTTP, HTTP GET, HTTP Digest auth FAIL 1438: 'Check if %{scheme} returns HTTP' HTTP, protocol, --write-out FAIL 1439: 'Check if %{http_version} returns 1.1' HTTP, --write-out FAIL 1440: 'Check --write-out with trailing %{' --write-out, FILE FAIL 1441: 'Check --write-out with trailing %' --write-out, FILE FAIL 1442: 'Check --write-out with trailing \' --write-out, FILE FAIL 1443: 'HTTP GET with -O and --remote-time' HTTP, HTTP GET, -O, --remote-time FAIL 1444: 'FTP with --remote-time' FTP, EPSV, RETR, --remote-time FAIL 1445: 'file:// with --remote-time' FILE, --remote-time FAIL 1447: 'Provide illegal proxy name' HTTP proxy, FAILURE FAIL 1448: 'Redirect following to UTF-8 IDN host name' HTTP, HTTP GET, IDN, followlocation, --resolve, --write-out FAIL 1449: 'FTP download range with integer overflow' FTP, PASV, RETR, Resume FAIL 1453: 'Too long tftp filename' Too long tftp filename, FAILURE FAIL 1455: 'HTTP GET when PROXY Protocol enabled' HTTP, HTTP GET, proxy, haproxy FAIL 1456: 'HTTP-IPv6 GET with PROXY protocol' HTTP, HTTP GET, proxy, haproxy, IPv6 FAIL 1457: 'Check if %{stderr} and %{stdout} switch between stdout and stderr.' HTTP, protocol, --write-out FAIL 1458: 'HTTP with wildcard --resolve' HTTP, HTTP GET, --resolve FAIL 1460: 'HTTP GET with -Ji and Content-Disposition with existing file' HTTP, HTTP GET, -J FAIL 1462: 'curl invalid category --help' --help FAIL 1463: 'curl file category --help' FILE, --help FAIL 1464: 'curl file category --help with lower/upper mix' FILE, --help FAIL 1465: '--libcurl for POST with binary content' HTTP, HTTP POST, --libcurl FAIL 1466: 'HTTP GET with 3-digit response and only digits in reason' HTTP, HTTP GET FAIL 1467: 'HTTP GET via SOCKS5 proxy via Unix sockets' HTTP, HTTP GET, SOCKS5, UnixSockets FAIL 1468: 'HTTP GET with host name using SOCKS5h via Unix sockets' HTTP, HTTP GET, SOCKS5, SOCKS5h, UnixSockets FAIL 1469: 'Space in FTP upload URL' FTP, URL, FAILURE FAIL 1471: 'Fail to resolve .onion TLD' Onion, Tor, FAILURE FAIL 1472: 'Fail to resolve .onion. TLD' Onion, Tor, FAILURE FAIL 1473: 'first HTTP header starts with white space' HTTP, HTTP GET, header line folding FAIL 1474: '--proto -all disables all protocols' HTTP, HTTP GET, --proto FAIL 1475: '-f and 416 with Content-Range: */size' HTTP, HTTP GET, Resume FAIL 1476: 'PSL violating cookie with mixed case domain and cookie domain property' HTTP, HTTP GET, cookies FAIL 1479: 'HTTP/1.1 response followed by an HTTP/0.9 response over the same connection' HTTP, HTTP/0.9 FAIL 1480: 'HTTP Continue response without final response' HTTP FAIL 1481: '--libcurl with TLS version options' HTTP, HTTP GET, --libcurl FAIL 1482: 'HTTP GET with double chunked in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1483: 'HTTP GET with double chunked in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1484: 'HTTP HEAD with response body to ignore' HTTP, HTTP HEAD FAIL 1485: 'get curlinfo on last header in callback' HTTP, HTTP GET FAIL 1487: 'HTTP GET with -J and Content-Disposition on 301' HTTP, HTTP GET, -J FAIL 1489: '-D sent to stderr' HTTP, HTTP GET FAIL 1490: '"upload" with file:// overwriting existing' FILE FAIL 1491: 'file:// don't overwrite self with --skip-existing' FILE FAIL 1492: 'HTTP GET with -J + --show-headers but no Content-Disposition:' HTTP, HTTP GET, -J, --show-headers FAIL 1493: 'HTTP GET with identity + chunked in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1494: 'HTTP GET with identity twice in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1495: 'HTTP GET with chunked + identity in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1496: 'HTTP GET with gzip + chunked transfer-encoding without being asked' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1497: 'HTTP GET --retry on 503 error with output to /dev/null' HTTP, HTTP GET, retry FAIL 1498: 'HTTP PUT from stdin using period' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 1499: 'HTTP chunked encoding and chunked trailer, twice' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1500: 'curl_multi_wait' HTTP, HTTP GET, multi FAIL 1501: 'FTP with multi interface and slow LIST response' FTP, RETR, multi, LIST, DELAY FAIL 1502: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence UA' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1503: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence PA' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1504: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence UB' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1505: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence PB' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1506: 'HTTP GET connection cache limit (CURLMOPT_MAXCONNECTS)' HTTP, multi, verbose logs FAIL 1507: 'SMTP with multi interface and CURLE_ABORTED_BY_CALLBACK' SMTP, multi FAIL 1508: 'Close a multi handle without using it' HTTP, multi FAIL 1509: 'simple multi http:// through proxytunnel with authentication info' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1511: 'HTTP GET time conditions in repeated requests' HTTP, CURLOPT_TIMECONDITION FAIL 1513: 'return failure immediately from progress callback' PROGRESSFUNCTION, DELAY FAIL 1514: 'HTTP POST with read callback and unknown data size' HTTP, HTTP POST, Content-Length, chunked Transfer-Encoding FAIL 1515: 'caching of manual libcurl DNS entries after DNS cache timeout' HTTP, multi, FAILURE, resolve FAIL 1516: 'caching of manual libcurl DNS entries after dead connection' HTTP, multi, FAILURE, resolve FAIL 1518: 'Extract Location: with broken URL' HTTP FAIL 1519: 'Extract Location: with broken absolute URL' HTTP FAIL 1520: 'SMTP with CRLF-dot-CRLF in data' SMTP FAIL 1521: 'Test all curl_easy_setopt and curl_easy_getinfo options' curl_easy_setopt FAIL 1522: 'CURLINFO_SIZE_UPLOAD with small SO_SNDBUF' CURLINFO_SIZE_UPLOAD FAIL 1523: 'CURLINFO_LOW_SPEED_LIMIT' CURLINFO_LOW_SPEED_LIMIT, DELAY FAIL 1524: 'HTTP PUT with 303 redirect' HTTP, HTTP PUT, followlocation FAIL 1525: 'CURLOPT_PROXYHEADER is ignored CURLHEADER_UNIFIED' HTTP, HTTP PUT, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_PROXYHEADER FAIL 1526: 'CURLOPT_PROXYHEADER: separate host/proxy headers' HTTP, HTTP PUT, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_PROXYHEADER FAIL 1527: 'Same headers with CURLOPT_HEADEROPT == CURLHEADER_UNIFIED' HTTP, HTTP PUT, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1528: 'Separately specified proxy/server headers sent in a proxy GET' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1529: 'HTTP request-injection in URL sent over proxy' HTTP, HTTP GET, HTTP proxy FAIL 1530: 'CURLOPT_OPENSOCKETFUNCTION returns bad socket' CURLOPT_OPENSOCKETFUNCTION FAIL 1531: 'CURLOPT_POSTFIELDS with binary data set after multi_add_handle' CURLOPT_POSTFIELDS FAIL 1532: 'Test CURLINFO_RESPONSE_CODE' HTTP, HTTP GET FAIL 1533: 'HTTP with CURLOPT_KEEP_SENDING_ON_ERROR and an early error response' HTTP, HTTP POST, CURLOPT_KEEP_SENDING_ON_ERROR FAIL 1534: 'CURLINFO_FILETIME init and reset' HTTP, HTTP GET, CURLINFO_FILETIME FAIL 1535: 'Test CURLINFO_RESPONSE_CODE CURLINFO_PROTOCOL' HTTP, HTTP GET FAIL 1536: 'Test CURLINFO_RESPONSE_CODE CURLINFO_SCHEME' HTTP, HTTP GET FAIL 1537: 'libcurl URL escape/unescape tests' URL escape FAIL 1538: 'libcurl strerror API call tests' strerror, verbose logs FAIL 1539: 'HTTP 1.0 POST with read callback and unknown data size' HTTP, HTTP POST, Content-Length, chunked Transfer-Encoding FAIL 1540: 'chunked with trailers and pausing the receive' HTTP, HTTP GET, CURLPAUSE_RECV, chunked Transfer-Encoding, Trailer:, DELAY FAIL 1541: 'chunked with trailers and pausing the receive' HTTP, HTTP GET, chunked Transfer-Encoding, Trailer:, DELAY FAIL 1542: 'connection reuse with CURLOPT_MAXLIFETIME_CONN' HTTP, connection reuse, persistent connection, CURLOPT_MAXLIFETIME_CONN, verbose logs FAIL 1543: 'CURLOPT_CURLU, URL with space and CURLINFO_EFFECTIVE_URL' HTTP, CURLOPT_CURLU FAIL 1545: 'use curl_formadd() data twice with unreadable file' HTTP, HTTP GET FAIL 1546: 'HTTP transfer-encoding wrong order' HTTP, HTTP GET, Transfer-Encoding FAIL 1547: 'FTP dir list PASV overriding PORT' FTP, PASV, LIST FAIL 1550: 'verify setting pipelining blocklisting options' multi FAIL 1551: 're-run redirected transfer without setting URL again' multi FAIL 1552: 'IMAP multi transfer error without curl_multi_remove_handle' IMAP, Clear Text, FETCH FAIL 1553: 'IMAP cleanup before a connection was created' IMAP, Clear Text, FETCH FAIL 1554: 'HTTP with shared connection cache' HTTP, HTTP GET, shared connections FAIL 1555: 'verify api is protected against calls from callbacks' RECURSIVE_API_CALL, DELAY FAIL 1556: 'send long HTTP headers to header callback' HTTP, HTTP GET FAIL 1557: 'Remove easy handle in pending connections doesn't leave dangling entry' multi, crash FAIL 1558: 'CURLINFO_PROTOCOL for file:// transfer' curl_easy_getinfo, CURLINFO_PROTOCOL FAIL 1559: 'Set excessive URL lengths' CURLOPT_URL, verbose logs FAIL 1563: 'Make sure redirects to CURLPROTO_GOPHER are forbidden by default' GOPHER, HTTP GET, followlocation FAIL 1564: 'wakeup before poll with no easy handles' multi, wakeup FAIL 1565: 'wakeup from another thread' HTTP, HTTP GET, multi, multi-threaded, wakeup FAIL 1566: '--etag-compare that gets a 304 back shouldn't overwrite the file' HTTP, HTTP GET, --etag-compare FAIL 1567: 're-run redirected transfer without setting CURLU URL again' HTTP, URL API, CURLOPT_CURLU, CURLOPT_FOLLOWLOCATION FAIL 1568: 'HTTP with Digest authorization on custom CURLOPT_PORT' HTTP, HTTP GET, HTTP Digest auth FAIL 1569: 'FTP first type=A then regular URL' FTP, PASV, RETR FAIL 1570: 'FTP first type=D then regular URL' FTP, PASV, RETR FAIL 1571: 'CURLFOLLOW_OBEYCODE with custom POST method, 302 => GET' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1572: 'CURLFOLLOW_OBEYCODE with custom POST method, 308 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1573: 'CURLFOLLOW_OBEYCODE with custom GET method, 301 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1574: 'CURLFOLLOW_FIRSTONLY with custom GET method, 301 => GET' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1575: 'CURLFOLLOW_FIRSTONLY with custom POST method, 308 => POST' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1576: 'CURLFOLLOW_OBEYCODE with custom PUT method, 302 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1577: 'CURLFOLLOW_OBEYCODE with custom PUT method, 308 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1578: 'CURLFOLLOW_FIRSTONLY with custom PUT method, 302 => PUT' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1579: 'CURLFOLLOW_OBEYCODE with custom PUT method, 303 => GET' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1580: 'CURLFOLLOW_FIRSTONLY with custom PUT method, 308 => PUT' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1581: 'CURLFOLLOW_OBEYCODE with custom POST301 method, 301 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1590: 'IMAP cleanup before a connection was created' IMAP, Clear Text, FETCH FAIL 1591: 'HTTP PUT with trailers at the end' HTTP, HTTP PUT, CURLOPT_HTTPTRAILER_FUNCTION, CURLOPT_HTTPTRAILER_DATA FAIL 1593: 'HTTP custom header overrides CURLOPT_TIMECONDITION' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1594: 'HTTP Retry-After header parsing and extraction' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1595: 'HTTP Retry-After header extraction (without header)' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1596: 'HTTP Retry-After header parsing using a date' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1597: 'CURLOPT_PROTOCOLS_STR' CURLOPT_PROTOCOLS_STR FAIL 1598: 'HTTP POST with trailers at the end' HTTP, HTTP POST, CURLOPT_HTTPTRAILER_FUNCTION, CURLOPT_HTTPTRAILER_DATA FAIL 1599: 'FTP with netrc using no user but control code in password' FTP, netrc FAIL 1600: 'NTLM unit tests' unittest, NTLM FAIL 1601: 'MD5 unit tests' unittest, MD5 FAIL 1602: 'Internal hash create/add/destroy testing, exercising clean functions' unittest, hash FAIL 1603: 'Internal hash add, retrieval, deletion testing' unittest, hash FAIL 1604: 'Test Windows/MS-DOS filename sanitization' unittest FAIL 1605: 'Test negative data lengths as input to libcurl functions' unittest FAIL 1606: 'verify speedcheck' unittest, speedcheck FAIL 1607: 'CURLOPT_RESOLVE parsing' unittest, CURLOPT_RESOLVE FAIL 1608: 'verify DNS shuffling' unittest, curlopt_dns_shuffle_addresses FAIL 1609: 'CURLOPT_RESOLVE parsing' unittest, CURLOPT_RESOLVE FAIL 1610: 'SHA256 unit tests' unittest, SHA256 FAIL 1611: 'MD4 unit tests' unittest, MD4 FAIL 1612: 'HMAC unit tests' unittest, HMAC FAIL 1613: 'Send "OPTIONS *" with --request-target to a proxy' HTTP, HTTP proxy, --request-target FAIL 1614: 'noproxy and cidr comparisons' unittest FAIL 1615: 'SHA-512/256 unit tests' unittest, SHA-512/256 FAIL 1616: 'Internal uint_hash create/add/destroy testing, exercising clean functions' unittest, uint_hash FAIL 1620: 'unit tests for url.c' unittest, URL FAIL 1621: 'unit tests for stripcredentials from URL' unittest, stripcredentials FAIL 1633: '--retry with a 429 response and Retry-After:' HTTP, HTTP GET, RETRY-AFTER FAIL 1634: '--retry with a 429 response and Retry-After: and --fail' HTTP, HTTP GET, RETRY-AFTER FAIL 1635: '--retry with a 429 response and Retry-After: and --fail-with-body' HTTP, HTTP GET, RETRY-AFTER FAIL 1650: 'DoH parsing' unittest, DOH FAIL 1651: 'x509 parsing' unittest, x509 FAIL 1652: 'infof' unittest, infof FAIL 1653: 'urlapi port number parsing' unittest, urlapi FAIL 1654: 'alt-svc' unittest, Alt-Svc FAIL 1655: 'unit test for doh_req_encode' unittest, DOH FAIL 1656: 'Curl_x509_GTime2str unit tests' unittest, Curl_x509_GTime2str FAIL 1657: 'Curl_x509_getASN1Element unit tests' unittest, Curl_x509_getASN1Element FAIL 1658: 'unit test for doh_resp_decode_httpsrr' unittest, doh, httpsrr FAIL 1660: 'HSTS' unittest, HSTS FAIL 1661: 'bufref unit tests' unittest, bufref FAIL 1663: 'unit tests for interface option parsing' unittest, interface, bind FAIL 1664: 'unit tests for strparse.c string parsing functions' unittest, strparse FAIL 1670: '-w individual header output' HTTP, HTTP GET, -w, %header FAIL 1671: '-w header JSON output' HTTP, HTTP GET, -w, %header FAIL 1680: 'HTTP GET with explicit clobber' HTTP, HTTP GET, --clobber FAIL 1681: 'HTTP GET without clobber' HTTP, HTTP GET, --no-clobber FAIL 1682: 'HTTP GET without clobber and --output-dir' HTTP, HTTP GET, --no-clobber FAIL 1683: 'HTTP GET without clobber when 100 files already exist' HTTP, HTTP GET, --no-clobber FAIL 1704: 'HTTP/1 doing HTTP/2 Upgrade: getting an HTTP/2 101 response' HTTP, HTTP GET, HTTP/2 FAIL 1800: 'HTTP/2 upgrade refused' HTTP, HTTP/2 FAIL 1900: 'HSTS curl_easy_duphandle' HTTP, HSTS FAIL 1901: 'Chunked HTTP POST from callback with CURLOPT_POSTFIELDSIZE set' HTTP, HTTP POST, CURLOPT_READFUNCTION FAIL 1903: 'CURLOPT_COOKIEFILE then reset then set again' HTTP, cookies, CURLOPT_COOKIEFILE FAIL 1904: 'HTTP CONNECT with 204 response' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1905: 'CURLOPT_COOKIELIST set to "FLUSH" of a shared cookie object' HTTP, cookies, FLUSH FAIL 1906: 'CURLOPT_CURLU and CURLOPT_PORT' CURLOPT_CURLU, CURLOPT_PORT FAIL 1907: 'CURLINFO_EFFECTIVE_URL with non-scheme URL' CURLINFO_EFFECTIVE_URL FAIL 1909: 'HTTP GET --retry-all-errors to overcome partial transfer' HTTP, HTTP GET, retry FAIL 1910: 'HTTP credentials with newline and redirect' HTTP, HTTP Basic, CURLOPT_FOLLOWLOCATION FAIL 1911: 'verify that curl_easy_setopt() rejects too long string inputs' curl_easy_option FAIL 1912: 'Cross validate that gcc-typecheck macros match the option types.' curl_easy_option, typecheck FAIL 1913: 'FTP with NOBODY set, getting a missing file' FTP, CURLOPT_NOBODY FAIL 1914: 'FTP with NOBODY and FILETIME set, getting a missing file' FTP, CURLOPT_NOBODY, CURLOPT_FILETIME FAIL 1915: 'HSTS read/write callbacks' HTTP, HSTS, CURLOPT_HSTSREADFUNCTION FAIL 1916: 'MQTT PUBLISH with no POSTFIELDSIZE set' MQTT, MQTT PUBLISH FAIL 1917: 'MQTT PUBLISH with CURLOPT_POST set (no payload)' MQTT, MQTT PUBLISH FAIL 1918: 'curl_easy_option_by_name() and curl_easy_option_by_id()' curl_easy_option, curl_easy_option_by_name, curl_easy_option_by_id FAIL 1919: 'set CURLOPT_XOAUTH2_BEARER and do connection reuse' connection reuse FAIL 1940: 'curl_easy_header' curl_easy_header FAIL 1941: 'curl_easy_header with CONNECT' curl_easy_header, CONNECT FAIL 1942: 'curl_easy_header with 1xx response' curl_easy_header, CONNECT FAIL 1943: 'curl_easy_header with trailers' curl_easy_header, CONNECT FAIL 1944: 'curl_easy_header with redirect' curl_easy_header FAIL 1945: 'curl_easy_nextheader with server + CONNECT' curl_easy_header, CONNECT FAIL 1946: 'curl_easy_header with redirect but get headers from first request' curl_easy_header FAIL 1947: 'curl_easy_nextheader on second request after first did redirects' curl_easy_nextheader FAIL 1948: 'CURLOPT_POST after CURLOPT_UPLOAD reusing handle' HTTP, HTTP POST, HTTP PUT FAIL 1964: 'HTTP AWS_SIGV4 with X-Xxx-Date header set manually' HTTP, CURLOPT_AWS_SIGV4 FAIL 1977: 'CURLOPT_CURLU and CURLINFO_EFFECTIVE_URL' CURLOPT_CURLU, CURLINFO_EFFECTIVE_URL FAIL 1979: 'sigv4 canon_string unit tests' unittest, canon_string, aws-sigv4 FAIL 1980: 'sigv4 canon_query unit tests' unittest, canon_query, aws-sigv4 FAIL 2000: 'FTP RETR followed by FILE' FTP, PASV, FILE, multiprotocol FAIL 2001: 'HTTP GET followed by FTP RETR followed by FILE' HTTP, HTTP GET, FTP, PASV, FILE, multiprotocol FAIL 2002: 'HTTP GET followed by FTP RETR followed by FILE followed by TFTP RRQ' HTTP, HTTP GET, FTP, PASV, FILE, TFTP, TFTP RRQ, multiprotocol FAIL 2003: 'HTTP GET, FTP RETR, FILE, TFTP RRQ then again in rev order' HTTP, HTTP GET, FTP, PASV, FILE, TFTP, TFTP RRQ, multiprotocol FAIL 2005: 'netrc match with password only in file, no username. machine follows' HTTP, netrc FAIL 2023: 'HTTP authorization retry (Basic)' HTTP, HTTP GET, HTTP Basic auth FAIL 2024: 'HTTP authorization retry (Basic switching to Digest)' HTTP, HTTP GET, HTTP Basic auth, HTTP Digest auth FAIL 2025: 'HTTP authorization retry (Basic switching to NTLM)' HTTP, HTTP GET, HTTP Basic auth, HTTP NTLM auth, NTLM FAIL 2026: 'HTTP authorization retry (Digest switching to Basic)' HTTP, HTTP GET, HTTP Basic auth, HTTP Digest auth FAIL 2027: 'HTTP authorization retry (Digest)' HTTP, HTTP GET, HTTP Digest auth FAIL 2028: 'HTTP authorization retry (Digest switching to NTLM)' HTTP, HTTP GET, HTTP Digest auth, HTTP NTLM auth, NTLM FAIL 2029: 'HTTP authorization retry (NTLM switching to Basic)' HTTP, HTTP GET, HTTP Basic auth, HTTP NTLM auth, NTLM FAIL 2030: 'HTTP authorization retry (NTLM switching to Digest)' HTTP, HTTP GET, HTTP Digest auth, HTTP NTLM auth, NTLM FAIL 2031: 'HTTP authorization retry (NTLM)' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 2039: 'FTP (optional .netrc with 'default' override; no user/pass) dir list PASV' FTP, EPSV, LIST, netrc FAIL 2040: 'HTTP Basic authorization, then without authorization' HTTP, HTTP GET, HTTP Basic auth FAIL 2044: 'Attempt to set a default protocol that does not exist' --proto-default FAIL 2045: 'Set the default protocol to ftp for a schemeless URL' FTP, --proto-default FAIL 2046: 'Connection reuse with IDN host name' HTTP, HTTP GET, IDN, followlocation, --resolve, --write-out FAIL 2047: 'Connection reuse with IDN host name over HTTP proxy' HTTP, HTTP GET, HTTP proxy, IDN, followlocation, --write-out FAIL 2049: 'Connect to specific host' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2050: '--connect-to via HTTP proxy (tunnel mode automatically)' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_CONNECT_TO FAIL 2051: 'Connect to specific host: Reuse existing connections if possible' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2052: '--connect-to: do not mix connections with and without a "connect to host"' HTTP, HTTP GET, CURLOPT_CONNECT_TO, --resolve FAIL 2053: 'Connect to specific host with IP addresses' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2054: 'Connect to specific host: use the first "connect-to" string that matches' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2055: '--connect-to via SOCKS proxy and HTTP proxy (tunnel mode automatically)' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_CONNECT_TO, SOCKS5 FAIL 2058: 'HTTP Digest with PUT, resumed upload, modified method and SHA-256' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 2059: 'HTTP Digest with PUT, resumed upload, modified method, SHA-256 and userhash' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 2060: 'HTTP Digest with PUT, resumed upload, SHA-512-256, userhash' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 2061: 'HTTP with RFC7616 SHA256 Digest authorization' HTTP, HTTP GET, HTTP Digest auth FAIL 2062: 'HTTP with RFC7616 SHA-512-256 Digest authorization and userhash=false' HTTP, HTTP GET, HTTP Digest auth FAIL 2063: 'HTTP with RFC7616 SHA-256 Digest authorization and userhash=true' HTTP, HTTP GET, HTTP Digest auth FAIL 2064: 'HTTP with RFC7616 Digest authorization with bad password and SHA256' HTTP, HTTP GET, HTTP Digest auth FAIL 2065: 'HTTP with RFC7616 Digest, bad password, SHA-512-256 and userhash' HTTP, HTTP GET, HTTP Digest auth FAIL 2066: 'HTTP with RFC7616 Digest, bad password, SHA-256 and userhash' HTTP, HTTP GET, HTTP Digest auth FAIL 2067: 'HTTP POST --digest with SHA256 and user-specified Content-Length header' HTTP, HTTP POST, HTTP Digest auth FAIL 2068: 'HTTP POST Digest with SHA-512-256, userhash and set Content-Length' HTTP, HTTP POST, HTTP Digest auth FAIL 2069: 'HTTP POST Digest with SHA-256, userhash and set Content-Length header' HTTP, HTTP POST, HTTP Digest auth FAIL 2071: 'basic file:// file with "127.0.0.1" hostname' FILE FAIL 2072: 'file:// with Unix path resolution behavior for the case of extra slashes' FILE FAIL 2073: 'HTTP form posts with handle reset' HTTP, HTTP FORMPOST FAIL 2074: 'HTTP GET' HTTP, HTTP GET, AUTH OAUTHBEARER FAIL 2075: 'Verify usernames are not allowed in url' --disallow-username-in-url, HTTP FAIL 2076: 'HTTP with digest auth and URI contains query' HTTP, HTTP GET, HTTP Digest auth FAIL 2077: 'curl --fail --negotiate to unauthenticated service fails' HTTP, HTTP GET, GSS-API FAIL 2078: 'curl --negotiate should not send empty POST request only' HTTP, HTTP GET, GSS-API FAIL 2080: 'config file with overly long option' FILE, config FAIL 2081: 'Automatic referrer credential and anchor stripping check' HTTP, HTTP GET, referer, followlocation, --write-out FAIL 2082: 'Pre-request callback for HTTP' HTTP FAIL 2083: 'Pre-request callback for FTP' FTP FAIL 2084: 'Pre-request callback for HTTP with callback terminating transfer' HTTP FAIL 2085: 'Pre-request callback for HTTP with location following' HTTP, followlocation FAIL 2086: 'Pre-request callback for HTTP IPv6' HTTP, IPv6 FAIL 2200: 'MQTT SUBSCRIBE with user and password' MQTT, MQTT SUBSCRIBE FAIL 2201: 'MQTT PUBLISH with user and password valid' MQTT, MQTT PUBLISH FAIL 2202: 'MQTT PUBLISH with invalid user and password' MQTT, MQTT PUBLISH FAIL 2203: 'MQTT with error in CONNACK' MQTT, MQTT SUBSCRIBE FAIL 2204: 'MQTT SUBSCRIBE with user and password' MQTT, MQTT SUBSCRIBE FAIL 2205: 'MQTT with very long user name' MQTT, MQTT SUBSCRIBE FAIL 2306: 'HTTP GET reused handle with first header folded' HTTP, HTTP GET FAIL 2308: 'verify return code when write callback returns error' HTTP, HTTP GET FAIL 2309: 'HTTP with .netrc using duped easy handle' netrc, HTTP FAIL 2601: 'bufq unit tests' unittest, bufq FAIL 2602: 'dynhds unit tests' unittest, dynhds FAIL 2603: 'http1 parser unit tests' unittest, http1 FAIL 2604: 'Curl_get_pathname unit test' unittest FAIL 3002: 'SMTP multiple and invalid (first) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3003: 'SMTP multiple and invalid (last) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3004: 'SMTP multiple and invalid (middle) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3005: 'SMTP multiple invalid (all but one) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3006: 'SMTP with multiple invalid (all) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3007: 'SMTP with invalid --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3008: '--output-dir' -O FAIL 3009: '--output-dir a non-existing directory' -O FAIL 3010: 'HTTP retry-after reset' HTTP, HTTP Basic, RETRY-AFTER FAIL 3011: '--output-dir with --create-dirs' -O FAIL 3012: '--output-dir with -J and -R' -O, -J, --output-dir, --remote-time FAIL 3013: 'Two --output-dir with --next in between' -O, -J, --output-dir FAIL 3014: 'Check if %{num_headers} returns correct number of headers' HTTP, --write-out FAIL 3015: 'HTTP GET -w num_headers with redirected fetch (2 connects)' HTTP, HTTP GET, followlocation, chunked Transfer-Encoding, --write-out FAIL 3016: 'GET a directory using file://' HTTP, HTTP GET, FILE FAIL 3017: 'MQTT SUBSCRIBE with pathological PUBLISH length' MQTT, MQTT SUBSCRIBE FAIL 3018: 'MQTT SUBSCRIBE with PUBLISH larger than --max-filesize' MQTT, MQTT SUBSCRIBE, --max-filesize FAIL 3019: 'HTTP with invalid --resolve syntax' HTTP, HTTP GET, --resolve FAIL 3020: 'HTTP with invalid --connect-to syntax' HTTP, HTTP GET, --connect-to FAIL 3025: 'CURLOPT_HTTP200ALIASES' HTTP, HTTP GET FAIL 3026: 'curl_global_init thread-safety' curl_global_init, thread-safe, slow FAIL 3027: 'Get a file via FTP but 550 after MDTM command' FTP, CURLOPT_FILETIME, MDTM fail FAIL 3028: 'HTTP GET when PROXY Protocol enabled behind a proxy' HTTP, HTTP CONNECT FAIL 3029: 'HTTP with multiple -D' HTTP FAIL 3030: 'HTTP with multiple transfers in one -D' HTTP FAIL 3031: '--output-dir with --create-dirs' --dump-header FAIL 3032: 'HTTP redirect loop 3x swsbounce test' HTTP, --location FAIL 3100: 'RTSP Authentication check' RTSP, RTSP Basic auth FAIL 3101: 'HTTP auth without redirection protocols' HTTP, HTTP Basic auth FAIL 3103: 'CURLOPT_COOKIELIST without expiry' cookies FAIL 3104: 'CURLOPT_COOKIELIST with Netscape format' cookies FAIL 3105: 'curl_multi_remove_handle twice' curl_multi_remove_handle FAIL 3200: 'curl_get_line unit tests' unittest, curl_get_line FAIL 3201: 'HTTP GET when PROXY Protocol enabled and spoofed client IP' HTTP, HTTP GET, proxy, haproxy FAIL 3202: 'HTTP-IPv6 GET with PROXY protocol with spoofed client IP' HTTP, HTTP GET, proxy, haproxy, IPv6 FAIL 3203: 'GET a directory using file://' HTTP, HTTP GET, FILE FAIL 3204: 'Use --etag-compare and --etag-save on an existing file' HTTP, HTTP GET FAIL 3205: 'cipher suite name lookup' unittest, cipher_suite FAIL 3209: 'Upload message via IMAP with upload flags' IMAP, Clear Text, APPEND, UPLOAD FAIL 3210: 'Upload message unread via IMAP' IMAP, Clear Text, APPEND, UPLOAD FAIL 3211: 'uint_bset unit tests' unittest, uint_bset FAIL 3212: 'uint_bset unit tests' unittest, uint_bset FAIL 3213: 'uint_spbset unit tests' unittest, uint_spbset FAIL 3214: 'struct size checks' unittest, size TESTFAIL: These test cases failed: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 314 315 316 317 318 319 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 357 360 361 362 365 366 367 368 369 370 371 372 373 374 376 378 379 380 381 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 402 405 411 415 416 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 434 435 436 440 441 442 443 444 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 467 468 469 470 471 473 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 507 508 509 510 511 512 513 514 515 516 517 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 559 561 562 563 564 565 566 567 568 569 570 571 572 574 575 576 577 578 579 580 581 584 585 586 588 589 590 591 592 593 595 596 597 598 599 632 643 645 646 647 648 649 650 651 652 653 654 655 658 659 660 661 662 663 666 667 668 669 670 671 672 673 674 675 676 677 679 680 681 682 683 684 685 686 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 746 747 748 749 750 751 752 754 784 785 786 787 788 789 790 791 792 793 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 824 825 826 827 828 829 830 831 833 834 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 870 871 872 873 874 875 876 877 879 880 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 935 936 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 962 963 964 965 966 967 968 969 973 974 975 976 977 978 979 980 981 982 983 984 985 986 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1084 1085 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1098 1099 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1114 1115 1116 1117 1118 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1133 1134 1136 1137 1138 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1164 1166 1168 1170 1171 1172 1174 1176 1178 1180 1181 1183 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1210 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1273 1274 1277 1278 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1308 1309 1310 1311 1312 1313 1314 1315 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1447 1448 1449 1453 1455 1456 1457 1458 1460 1462 1463 1464 1465 1466 1467 1468 1469 1471 1472 1473 1474 1475 1476 1479 1480 1481 1482 1483 1484 1485 1487 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1511 1513 1514 1515 1516 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1545 1546 1547 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1590 1591 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1620 1621 1633 1634 1635 1650 1651 1652 1653 1654 1655 1656 1657 1658 1660 1661 1663 1664 1670 1671 1680 1681 1682 1683 1704 1800 1900 1901 1903 1904 1905 1906 1907 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1940 1941 1942 1943 1944 1945 1946 1947 1948 1964 1977 1979 1980 2000 2001 2002 2003 2005 2023 2024 2025 2026 2027 2028 2029 2030 2031 2039 2040 2044 2045 2046 2047 2049 2050 2051 2052 2053 2054 2055 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2071 2072 2073 2074 2075 2076 2077 2078 2080 2081 2082 2083 2084 2085 2086 2200 2201 2202 2203 2204 2205 2306 2308 2309 2601 2602 2603 2604 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3025 3026 3027 3028 3029 3030 3031 3032 3100 3101 3103 3104 3105 3200 3201 3202 3203 3204 3205 3209 3210 3211 3212 3213 3214 make[1]: *** [Makefile:830: nonflaky-test] Error 1 make[1]: Leaving directory '/build/curl/src/build-curl/tests' make: *** [Makefile:1096: test-nonflaky] Error 2 ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list curl-8.15.0-1-riscv64-build.log curl-8.15.0-1-riscv64-check.log curl-8.15.0-1-riscv64-prepare.log sent 81 bytes received 748,959 bytes 499,360.00 bytes/sec total size is 10,604,031 speedup is 14.16